Home
last modified time | relevance | path

Searched refs:isExact (Results 1 – 25 of 48) sorted by relevance

12

/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DInstructionSimplify.h86 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 Dsuspicious-call-argument.cpp384 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 DInstCombineShifts.cpp154 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 DInstCombineMulDivRem.cpp75 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 DInstCombineSimplifyDemanded.cpp668 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 DInstCombineNegator.cpp276 NewInstr->setIsExact(I->isExact()); in visitImpl()
/llvm-project-15.0.7/llvm/include/llvm/IR/
H A DIRBuilder.h1252 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 DOperator.h142 bool isExact() const { in isExact() function
H A DInstruction.h388 bool isExact() const;
H A DConstants.h1030 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 DInstruction.cpp195 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 DOperator.cpp34 return cast<PossiblyExactOperator>(this)->isExact(); in hasPoisonGeneratingFlags()
/llvm-project-15.0.7/llvm/lib/Transforms/Instrumentation/
H A DPoisonChecking.cpp148 if (I.isExact()) { in generateCreationChecksForBinOp()
157 if (I.isExact()) { in generateCreationChecksForBinOp()
/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DCorrelatedValuePropagation.cpp766 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 DIndVarSimplify.cpp196 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 DDemandedBits.cpp226 if (cast<LShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
246 if (cast<AShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
H A DInstructionSimplify.cpp1346 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 DScalar.cpp280 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 DAPFloat.cpp2306 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 DInstructionsTest.cpp811 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 DAPFloatTest.cpp1179 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 DTruncInstCombine.cpp443 ResI->setIsExact(PEO->isExact()); in ReduceExpressionGraph()
/llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/
H A DFastISel.cpp304 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 DSimplifyIndVar.cpp169 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 DCloningTest.cpp157 EXPECT_FALSE(this->clone(SDiv)->isExact()); in TEST_F()
160 EXPECT_TRUE(this->clone(SDiv)->isExact()); in TEST_F()

12