/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineShifts.cpp | 159 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 D | InstCombineMulDivRem.cpp | 76 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 D | InstCombineSimplifyDemanded.cpp | 825 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 D | InstCombineNegator.cpp | 288 NewInstr->setIsExact(I->isExact()); in visitImpl()
|
H A D | InstCombineCompares.cpp | 2462 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 D | SimplifyQuery.h | 48 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 D | IRBuilder.h | 1384 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 D | Operator.h | 171 bool isExact() const {
|
H A D | Instruction.h | 544 bool isExact() const LLVM_READONLY;
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
H A D | PoisonChecking.cpp | 149 if (I.isExact()) { in generateCreationChecksForBinOp() 158 if (I.isExact()) { in generateCreationChecksForBinOp()
|
/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | Instruction.cpp | 516 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 D | Operator.cpp | 39 return cast<PossiblyExactOperator>(this)->isExact(); in hasPoisonGeneratingFlags()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | DemandedBits.cpp | 200 if (cast<LShrOperator>(UserI)->isExact()) in determineLiveOperandBits() 220 if (cast<AShrOperator>(UserI)->isExact()) in determineLiveOperandBits()
|
H A D | ValueTracking.cpp | 1103 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 D | InstructionSimplify.cpp | 3456 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 D | CorrelatedValuePropagation.cpp | 785 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 D | IndVarSimplify.cpp | 188 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 D | Scalar.cpp | 281 bool isExact; in ToAPInt() local 282 f.convertToInteger(result, llvm::APFloat::rmTowardZero, &isExact); in ToAPInt()
|
/freebsd/contrib/llvm-project/llvm/lib/Support/ |
H A D | APFloat.cpp | 2618 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 D | TruncInstCombine.cpp | 443 ResI->setIsExact(PEO->isExact()); in ReduceExpressionGraph()
|
/freebsd/contrib/llvm-project/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() 495 cast<BinaryOperator>(I)->isExact() && isPowerOf2_64(Imm)) { in selectBinaryOp()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | SimplifyIndVar.cpp | 175 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 D | SCCPSolver.cpp | 205 NewInst->setIsExact(Inst.isExact()); in replaceSignedInst() 219 NewInst->setIsExact(Inst.isExact()); in replaceSignedInst()
|
H A D | ScalarEvolutionExpander.cpp | 57 Exact = PEO->isExact(); in PoisonFlags() 283 if (isa<PossiblyExactOperator>(I) && I->isExact()) in InsertBinop()
|
/freebsd/contrib/llvm-project/llvm/lib/FuzzMutate/ |
H A D | IRMutator.cpp | 259 Modifications.push_back([&Inst] { Inst.setIsExact(!Inst.isExact()); }); in mutate()
|