| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | InstructionSimplify.h | 86 bool isExact(const BinaryOperator *Op) const { in isExact() function 88 return cast<PossiblyExactOperator>(Op)->isExact(); in isExact() 221 Value *simplifyLShrInst(Value *Op0, Value *Op1, bool isExact, 225 Value *simplifyAShrInst(Value *Op0, Value *Op1, bool isExact,
|
| /llvm-project-15.0.7/clang-tools-extra/test/clang-tidy/checkers/readability/ |
| H A D | suspicious-call-argument.cpp | 384 opcode Opcode, value *Op0, value *Op1, bool isExact, in SimplifyRightShift() argument 386 static value *SimplifyLShrInst(value *Op0, value *Op1, bool isExact, in SimplifyLShrInst() argument 388 if (value *V = SimplifyRightShift(Foo, Op0, Op1, isExact, Q, MaxRecurse)) in SimplifyLShrInst()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineShifts.cpp | 154 NewShift->setIsExact(Sh0->isExact() && Sh1->isExact()); in reassociateShiftAmtsOfTwoSameDirectionShifts() 434 return I.isExact() && AC->eq(AC->shl(PosOffset).lshr(PosOffset)); in commonShiftTransforms() 436 return I.isExact() && AC->eq(AC->shl(PosOffset).ashr(PosOffset)); in commonShiftTransforms() 910 NewShr->setIsExact(OldShr->isExact()); in visitShl() 1059 if (Value *V = simplifyLShrInst(I.getOperand(0), I.getOperand(1), I.isExact(), in visitLShr() 1098 NewLShr->setIsExact(I.isExact()); in visitLShr() 1103 Value *NewLShr = Builder.CreateLShr(X, ShiftDiff, "", I.isExact()); in visitLShr() 1280 if (!I.isExact() && in visitLShr() 1368 if (Value *V = simplifyAShrInst(I.getOperand(0), I.getOperand(1), I.isExact(), in visitAShr() 1403 NewAShr->setIsExact(I.isExact()); in visitAShr() [all …]
|
| H A D | InstCombineMulDivRem.cpp | 75 if (I->getOpcode() == Instruction::LShr && !I->isExact()) { in simplifyValueKnownNonZero() 287 if (Div->isExact()) { in visitMul() 829 NewDiv->setIsExact(I.isExact()); in commonIDivTransforms() 856 BO->setIsExact(I.isExact()); in commonIDivTransforms() 1049 bool IsExact = I.isExact() && match(Op0, m_Exact(m_Value())); in visitUDiv() 1093 I, Builder.CreateLShr(Op0, Res, I.getName(), I.isExact())); in visitUDiv() 1166 BO->setIsExact(I.isExact()); in visitSDiv() 1175 Builder.CreateSDiv(X, Y, I.getName(), I.isExact())); in visitSDiv() 1194 BO->setIsExact(I.isExact()); in visitSDiv() 1203 Value *Shr = Builder.CreateLShr(Op0, CNegLog2, I.getName(), I.isExact()); in visitSDiv() [all …]
|
| H A D | InstCombineSimplifyDemanded.cpp | 668 if (cast<LShrOperator>(I)->isExact()) in SimplifyDemandedUseBits() 716 if (cast<AShrOperator>(I)->isExact()) in SimplifyDemandedUseBits() 736 LShr->setIsExact(cast<BinaryOperator>(I)->isExact()); in SimplifyDemandedUseBits() 751 if (cast<UDivOperator>(I)->isExact()) in SimplifyDemandedUseBits() 1148 if (cast<BinaryOperator>(Shr)->isExact()) in simplifyShrShlDemandedBits()
|
| H A D | InstCombineNegator.cpp | 276 NewInstr->setIsExact(I->isExact()); in visitImpl()
|
| /llvm-project-15.0.7/llvm/include/llvm/IR/ |
| H A D | IRBuilder.h | 1252 bool isExact = false) { 1255 if (!isExact) 1265 bool isExact = false) { 1268 if (!isExact) 1311 bool isExact = false) { 1314 if (!isExact) 1320 bool isExact = false) { 1325 bool isExact = false) { 1330 bool isExact = false) { 1333 if (!isExact) [all …]
|
| H A D | Operator.h | 142 bool isExact() const { in isExact() function
|
| H A D | Instruction.h | 388 bool isExact() const;
|
| H A D | Constants.h | 1030 static Constant *getLShr(Constant *C1, Constant *C2, bool isExact = false); 1031 static Constant *getAShr(Constant *C1, Constant *C2, bool isExact = false);
|
| /llvm-project-15.0.7/llvm/lib/IR/ |
| H A D | Instruction.cpp | 195 bool Instruction::isExact() const { in isExact() function in Instruction 196 return cast<PossiblyExactOperator>(this)->isExact(); in isExact() 310 setIsExact(PE->isExact()); in copyIRFlags() 332 setIsExact(isExact() && PE->isExact()); in andIRFlags()
|
| H A D | Operator.cpp | 34 return cast<PossiblyExactOperator>(this)->isExact(); in hasPoisonGeneratingFlags()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Instrumentation/ |
| H A D | PoisonChecking.cpp | 148 if (I.isExact()) { in generateCreationChecksForBinOp() 157 if (I.isExact()) { in generateCreationChecksForBinOp()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | CorrelatedValuePropagation.cpp | 766 BinOp->setIsExact(Instr->isExact()); in narrowSDivOrSRem() 810 BinOp->setIsExact(Instr->isExact()); in processUDivOrURem() 908 UDiv->setIsExact(SDI->isExact()); in processSDiv() 966 BO->setIsExact(SDI->isExact()); in processAShr()
|
| H A D | IndVarSimplify.cpp | 196 bool isExact = false; in ConvertToSInt() local 200 APFloat::rmTowardZero, &isExact) != APFloat::opOK || in ConvertToSInt() 201 !isExact) in ConvertToSInt()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | DemandedBits.cpp | 226 if (cast<LShrOperator>(UserI)->isExact()) in determineLiveOperandBits() 246 if (cast<AShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
|
| H A D | InstructionSimplify.cpp | 1346 Value *Op1, bool isExact, in simplifyRightShift() argument 1359 return isExact ? Op0 : Constant::getNullValue(Op0->getType()); in simplifyRightShift() 1362 if (isExact) { in simplifyRightShift() 1437 Value *llvm::simplifyLShrInst(Value *Op0, Value *Op1, bool isExact, in simplifyLShrInst() argument 1439 return ::simplifyLShrInst(Op0, Op1, isExact, Q, RecursionLimit); in simplifyLShrInst() 1472 return ::simplifyAShrInst(Op0, Op1, isExact, Q, RecursionLimit); in simplifyAShrInst() 3334 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp() 3335 !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp() 3342 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp() 3343 !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp() [all …]
|
| /llvm-project-15.0.7/lldb/source/Utility/ |
| H A D | Scalar.cpp | 280 bool isExact; in ToAPInt() local 281 f.convertToInteger(result, llvm::APFloat::rmTowardZero, &isExact); in ToAPInt()
|
| /llvm-project-15.0.7/llvm/lib/Support/ |
| H A D | APFloat.cpp | 2306 roundingMode rounding_mode, bool *isExact) const { in convertToSignExtendedInteger() 2311 *isExact = false; in convertToSignExtendedInteger() 2323 *isExact = !sign; in convertToSignExtendedInteger() 2402 *isExact = true; in convertToSignExtendedInteger() 2420 roundingMode rounding_mode, bool *isExact) const { in convertToInteger() 2424 isExact); in convertToInteger() 4892 bool *isExact) const { in convertToInteger() 4896 rounding_mode, isExact); in convertToInteger()
|
| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | InstructionsTest.cpp | 811 ASSERT_TRUE(UI->isExact()); in TEST_F() 813 ASSERT_FALSE(UI->isExact()); in TEST_F() 819 ASSERT_TRUE(ShrI->isExact()); in TEST_F() 821 ASSERT_FALSE(ShrI->isExact()); in TEST_F()
|
| /llvm-project-15.0.7/llvm/unittests/ADT/ |
| H A D | APFloatTest.cpp | 1179 bool isExact = false; in TEST() local 1184 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST() 1185 EXPECT_TRUE(isExact); in TEST() 1190 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST() 1191 EXPECT_FALSE(isExact); in TEST() 1196 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST() 1197 EXPECT_FALSE(isExact); in TEST() 1203 EXPECT_FALSE(isExact); in TEST() 1210 EXPECT_TRUE(isExact); in TEST() 1216 EXPECT_FALSE(isExact); in TEST() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/AggressiveInstCombine/ |
| H A D | TruncInstCombine.cpp | 443 ResI->setIsExact(PEO->isExact()); in ReduceExpressionGraph()
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | FastISel.cpp | 304 bool isExact; in materializeConstant() local 305 (void)Flt.convertToInteger(SIntVal, APFloat::rmTowardZero, &isExact); in materializeConstant() 306 if (isExact) { in materializeConstant() 498 cast<BinaryOperator>(I)->isExact() && isPowerOf2_64(Imm)) { in selectBinaryOp()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | SimplifyIndVar.cpp | 169 if (UseInst->isExact() && LHS != SE->getMulExpr(FoldedExpr, RHS)) in foldIVUser() 329 UDiv->setIsExact(SDiv->isExact()); in eliminateSDiv() 801 if (!Shr->isExact() && IVRange.getUnsignedMin().uge(*C)) { in strengthenRightShift()
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Utils/ |
| H A D | CloningTest.cpp | 157 EXPECT_FALSE(this->clone(SDiv)->isExact()); in TEST_F() 160 EXPECT_TRUE(this->clone(SDiv)->isExact()); in TEST_F()
|