Home
last modified time | relevance | path

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

12

/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineShifts.cpp159 NewShift->setIsExact(Sh0->isExact() && Sh1->isExact()); in reassociateShiftAmtsOfTwoSameDirectionShifts()
450 NewShiftOp->setIsExact(I.isExact()); in commonShiftTransforms()
476 return I.isExact() && AC->eq(AC->shl(PosOffset).lshr(PosOffset)); in commonShiftTransforms()
478 return I.isExact() && AC->eq(AC->shl(PosOffset).ashr(PosOffset)); in commonShiftTransforms()
783 R->setIsExact(I.isExact() && BO0->isExact()); in FoldShiftByConstant()
973 if (I.isExact()) in setShiftFlags()
1108 NewShr->setIsExact(OldShr->isExact()); in visitShl()
1257 if (Value *V = simplifyLShrInst(I.getOperand(0), I.getOperand(1), I.isExact(), in visitLShr()
1280 if (I.isExact() && in visitLShr()
1297 if (I.isExact() && in visitLShr()
[all …]
H A DInstCombineMulDivRem.cpp76 if (I->getOpcode() == Instruction::LShr && !I->isExact()) { in simplifyValueKnownNonZero()
412 if (Div->isExact()) { in visitMul()
1104 return Builder.CreateLShr(Y, Z, "", I.isExact()); in foldIDivShl()
1109 return Builder.CreateSDiv(Y, Shl, "", I.isExact()); in foldIDivShl()
1127 return Builder.CreateUDiv(X, Y, "", I.isExact()); in foldIDivShl()
1133 return Builder.CreateSDiv(X, Y, "", I.isExact()); in foldIDivShl()
1154 return Builder.CreateLShr(Dividend, Z, "", I.isExact()); in foldIDivShl()
1214 NewDiv->setIsExact(I.isExact()); in commonIDivTransforms()
1240 BO->setIsExact(I.isExact()); in commonIDivTransforms()
1333 NewDiv->setIsExact(I.isExact()); in commonIDivTransforms()
[all …]
H A DInstCombineSimplifyDemanded.cpp825 LShr->setIsExact(cast<BinaryOperator>(I)->isExact()); in SimplifyDemandedUseBits()
832 ShiftAmt != 0, I->isExact()); in SimplifyDemandedUseBits()
854 cast<BinaryOperator>(I)->isExact()); in SimplifyDemandedUseBits()
1370 if (cast<BinaryOperator>(Shr)->isExact()) in simplifyShrShlDemandedBits()
H A DInstCombineNegator.cpp288 NewInstr->setIsExact(I->isExact()); in visitImpl()
H A DInstCombineCompares.cpp2462 if (Cmp.isEquality() && Shr->isExact() && C.isZero()) in foldICmpShrConstant()
2508 bool IsExact = Shr->isExact(); in foldICmpShrConstant()
2594 if (Shr->isExact()) in foldICmpShrConstant()
2769 APInt RangeSize = Div->isExact() ? APInt(C2->getBitWidth(), 1) : *C2; in foldICmpDivConstant()
2810 if (Div->isExact()) in foldICmpDivConstant()
3536 if (BO->isExact()) { in foldICmpBinOpEqualityWithConstant()
5308 if (I.isSigned() || !BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
5314 !BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
5319 if (!BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DSimplifyQuery.h48 bool isExact(const BinaryOperator *Op) const { in isExact() function
50 return cast<PossiblyExactOperator>(Op)->isExact(); in isExact()
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DIRBuilder.h1384 bool isExact = false) {
1385 if (Value *V = Folder.FoldExactBinOp(Instruction::UDiv, LHS, RHS, isExact))
1387 if (!isExact)
1397 bool isExact = false) {
1398 if (Value *V = Folder.FoldExactBinOp(Instruction::SDiv, LHS, RHS, isExact))
1400 if (!isExact)
1443 bool isExact = false) {
1444 if (Value *V = Folder.FoldExactBinOp(Instruction::LShr, LHS, RHS, isExact))
1446 if (!isExact)
1452 bool isExact = false) {
[all …]
H A DOperator.h171 bool isExact() const {
H A DInstruction.h544 bool isExact() const LLVM_READONLY;
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DPoisonChecking.cpp149 if (I.isExact()) { in generateCreationChecksForBinOp()
158 if (I.isExact()) { in generateCreationChecksForBinOp()
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp516 bool Instruction::isExact() const { in isExact() function in Instruction
517 return cast<PossiblyExactOperator>(this)->isExact(); in isExact()
638 setIsExact(PE->isExact()); in copyIRFlags()
676 setIsExact(isExact() && PE->isExact()); in andIRFlags()
H A DOperator.cpp39 return cast<PossiblyExactOperator>(this)->isExact(); in hasPoisonGeneratingFlags()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DDemandedBits.cpp200 if (cast<LShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
220 if (cast<AShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
H A DValueTracking.cpp1103 KnownBits::udiv(Known, Known2, Q.IIQ.isExact(cast<BinaryOperator>(I))); in computeKnownBitsFromOperator()
1110 KnownBits::sdiv(Known, Known2, Q.IIQ.isExact(cast<BinaryOperator>(I))); in computeKnownBitsFromOperator()
1277 bool Exact = Q.IIQ.isExact(cast<BinaryOperator>(I)); in computeKnownBitsFromOperator()
1291 bool Exact = Q.IIQ.isExact(cast<BinaryOperator>(I)); in computeKnownBitsFromOperator()
2201 return (OrZero || Q.IIQ.isExact(BO)) && in isPowerOfTwoRecurrence()
2210 return OrZero || Q.IIQ.isExact(BO); in isPowerOfTwoRecurrence()
2265 if (OrZero || Q.IIQ.isExact(cast<BinaryOperator>(I))) in isKnownToBeAPowerOfTwo()
2269 if (Q.IIQ.isExact(cast<BinaryOperator>(I))) in isKnownToBeAPowerOfTwo()
2590 return BO->isExact(); in isNonZeroRecurrence()
2853 if (BO->isExact()) in isKnownNonZeroFromOperator()
[all …]
H A DInstructionSimplify.cpp3456 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3457 !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
3464 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3465 !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
3472 if (!Q.IIQ.isExact(LBO) || !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
7101 Q.IIQ.isExact(cast<BinaryOperator>(I)), Q, in simplifyInstructionWithOperands()
7105 Q.IIQ.isExact(cast<BinaryOperator>(I)), Q, in simplifyInstructionWithOperands()
7123 Q.IIQ.isExact(cast<BinaryOperator>(I)), Q, in simplifyInstructionWithOperands()
7127 Q.IIQ.isExact(cast<BinaryOperator>(I)), Q, in simplifyInstructionWithOperands()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DCorrelatedValuePropagation.cpp785 BinOp->setIsExact(Instr->isExact()); in narrowSDivOrSRem()
905 BinOp->setIsExact(Instr->isExact()); in narrowUDivOrURem()
1022 UDiv->setIsExact(SDI->isExact()); in processSDiv()
1084 BO->setIsExact(SDI->isExact()); in processAShr()
H A DIndVarSimplify.cpp188 bool isExact = false; in ConvertToSInt() local
192 APFloat::rmTowardZero, &isExact) != APFloat::opOK || in ConvertToSInt()
193 !isExact) in ConvertToSInt()
/freebsd/contrib/llvm-project/lldb/source/Utility/
H A DScalar.cpp281 bool isExact; in ToAPInt() local
282 f.convertToInteger(result, llvm::APFloat::rmTowardZero, &isExact); in ToAPInt()
/freebsd/contrib/llvm-project/llvm/lib/Support/
H A DAPFloat.cpp2618 roundingMode rounding_mode, bool *isExact) const { in convertToSignExtendedInteger()
2623 *isExact = false; in convertToSignExtendedInteger()
2635 *isExact = !sign; in convertToSignExtendedInteger()
2714 *isExact = true; in convertToSignExtendedInteger()
2732 roundingMode rounding_mode, bool *isExact) const { in convertToInteger()
2736 isExact); in convertToInteger()
5366 bool *isExact) const { in convertToInteger()
5370 rounding_mode, isExact); in convertToInteger()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DTruncInstCombine.cpp443 ResI->setIsExact(PEO->isExact()); in ReduceExpressionGraph()
/freebsd/contrib/llvm-project/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()
495 cast<BinaryOperator>(I)->isExact() && isPowerOf2_64(Imm)) { in selectBinaryOp()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DSimplifyIndVar.cpp175 if (UseInst->isExact() && LHS != SE->getMulExpr(FoldedExpr, RHS)) in foldIVUser()
313 UDiv->setIsExact(SDiv->isExact()); in eliminateSDiv()
839 if (!Shr->isExact() && IVRange.getUnsignedMin().uge(*C)) { in strengthenRightShift()
H A DSCCPSolver.cpp205 NewInst->setIsExact(Inst.isExact()); in replaceSignedInst()
219 NewInst->setIsExact(Inst.isExact()); in replaceSignedInst()
H A DScalarEvolutionExpander.cpp57 Exact = PEO->isExact(); in PoisonFlags()
283 if (isa<PossiblyExactOperator>(I) && I->isExact()) in InsertBinop()
/freebsd/contrib/llvm-project/llvm/lib/FuzzMutate/
H A DIRMutator.cpp259 Modifications.push_back([&Inst] { Inst.setIsExact(!Inst.isExact()); }); in mutate()

12