reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/IR/Instruction.h
  356   bool isExact() const;

References

lib/Analysis/ScalarEvolution.cpp
 3891     } else if (isa<PossiblyExactOperator>(I) && I->isExact())
lib/Analysis/ScalarEvolutionExpander.cpp
  200         if (isa<PossiblyExactOperator>(I) && I->isExact())
lib/CodeGen/SelectionDAG/FastISel.cpp
  635         cast<BinaryOperator>(I)->isExact() && isPowerOf2_64(Imm)) {
lib/IR/Instruction.cpp
  277       setIsExact(isExact() & PE->isExact());
lib/Target/AArch64/AArch64FastISel.cpp
 4938   if (cast<BinaryOperator>(I)->isExact()) {
lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1905       BO->setIsExact(cast<BinaryOperator>(Op1)->isExact());
lib/Transforms/InstCombine/InstCombineCompares.cpp
 2170   if (Cmp.isEquality() && Shr->isExact() && Shr->hasOneUse() &&
 2190   bool IsExact = Shr->isExact();
 2241   if (Shr->isExact())
 2372   APInt RangeSize = Div->isExact() ? APInt(C2->getBitWidth(), 1) : *C2;
 2413     if (Div->isExact())
 3982       if (I.isSigned() || !BO0->isExact() || !BO1->isExact())
 3982       if (I.isSigned() || !BO0->isExact() || !BO1->isExact())
 3987       if (!I.isEquality() || !BO0->isExact() || !BO1->isExact())
 3987       if (!I.isEquality() || !BO0->isExact() || !BO1->isExact())
 3992       if (!BO0->isExact() || !BO1->isExact())
 3992       if (!BO0->isExact() || !BO1->isExact())
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
   79     if (I->getOpcode() == Instruction::LShr && !I->isExact()) {
  316       if (Div->isExact()) {
  718         NewDiv->setIsExact(I.isExact());
  744         BO->setIsExact(I.isExact());
  852   if (I.isExact())
  876   if (I.isExact())
  974       bool IsExact = I.isExact() && match(Op0, m_Exact(m_Value()));
 1075     if (I.isExact() && Op1C->isNonNegative() && Op1C->isPowerOf2()) {
 1104       BO->setIsExact(I.isExact());
 1113         Builder.CreateSDiv(X, Y, I.getName(), I.isExact()));
 1122       BO->setIsExact(I.isExact());
 1132       BO->setIsExact(I.isExact());
lib/Transforms/InstCombine/InstCombineSelect.cpp
  567     bool IsExact = Ashr->isExact() && cast<Instruction>(TrueVal)->isExact();
  567     bool IsExact = Ashr->isExact() && cast<Instruction>(TrueVal)->isExact();
lib/Transforms/InstCombine/InstCombineShifts.cpp
  128       NewShift->setIsExact(Sh0->isExact() && Sh1->isExact());
  128       NewShift->setIsExact(Sh0->isExact() && Sh1->isExact());
  968   if (Value *V = SimplifyLShrInst(I.getOperand(0), I.getOperand(1), I.isExact(),
 1007           NewLShr->setIsExact(I.isExact());
 1011         Value *NewLShr = Builder.CreateLShr(X, ShiftDiff, "", I.isExact());
 1078     if (!I.isExact() &&
 1166   if (Value *V = SimplifyAShrInst(I.getOperand(0), I.getOperand(1), I.isExact(),
 1201         NewAShr->setIsExact(I.isExact());
 1232     if (!I.isExact() &&
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  571         LShr->setIsExact(cast<BinaryOperator>(I)->isExact());
  957       if (cast<BinaryOperator>(Shr)->isExact())
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
 1245         New->setIsExact(BO->isExact());
lib/Transforms/Instrumentation/PoisonChecking.cpp
  155     if (I.isExact()) {
  164     if (I.isExact()) {
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  652       BinOp->setIsExact(Instr->isExact());
  689   BO->setIsExact(SDI->isExact());
  712   BO->setIsExact(SDI->isExact());
lib/Transforms/Utils/SimplifyIndVar.cpp
  147     if (UseInst->isExact() &&
  307     UDiv->setIsExact(SDiv->isExact());
  778         if (!Shr->isExact() && IVRange.getUnsignedMin().uge(*C)) {
unittests/IR/InstructionsTest.cpp
  607     ASSERT_TRUE(UI->isExact());
  609     ASSERT_FALSE(UI->isExact());
  615     ASSERT_TRUE(ShrI->isExact());
  617     ASSERT_FALSE(ShrI->isExact());
unittests/Transforms/Utils/CloningTest.cpp
  155   EXPECT_FALSE(this->clone(SDiv)->isExact());
  158   EXPECT_TRUE(this->clone(SDiv)->isExact());