/openbsd/gnu/llvm/llvm/lib/Support/ |
H A D | ScaledNumber.cpp | 60 assert(Divisor && "expected non-zero divisor"); in divide32() 69 uint64_t Quotient = Dividend64 / Divisor; in divide32() 70 uint64_t Remainder = Dividend64 % Divisor; in divide32() 83 assert(Divisor && "expected non-zero divisor"); in divide64() 87 if (int Zeros = countTrailingZeros(Divisor)) { in divide64() 89 Divisor >>= Zeros; in divide64() 93 if (Divisor == 1) in divide64() 103 uint64_t Quotient = Dividend / Divisor; in divide64() 104 Dividend %= Divisor; in divide64() 115 if (IsOverflow || Divisor <= Dividend) { in divide64() [all …]
|
/openbsd/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
H A D | BypassSlowDivision.h | 33 AssertingVH<Value> Divisor; member 38 : SignedOp(InSignedOp), Dividend(InDividend), Divisor(InDivisor) {} in DivRemMapKey() 44 Val1.Divisor == Val2.Divisor; 59 static_cast<Value *>(Val.Divisor))) ^
|
/openbsd/gnu/llvm/llvm/lib/Transforms/Utils/ |
H A D | IntegerDivision.cpp | 50 Divisor = Builder.CreateFreeze(Divisor); in generateSignedRemainderCode() 52 Value *DivisorSign = Builder.CreateAShr(Divisor, Shift); in generateSignedRemainderCode() 83 Divisor = Builder.CreateFreeze(Divisor); in generatedUnsignedRemainderCode() 84 Value *Quotient = Builder.CreateUDiv(Dividend, Divisor); in generatedUnsignedRemainderCode() 85 Value *Product = Builder.CreateMul(Divisor, Quotient); in generatedUnsignedRemainderCode() 120 Divisor = Builder.CreateFreeze(Divisor); in generateSignedDivisionCode() 122 Value *Tmp1 = Builder.CreateAShr(Divisor, Shift); in generateSignedDivisionCode() 125 Value *Tmp3 = Builder.CreateXor(Tmp1, Divisor); in generateSignedDivisionCode() 229 Divisor = Builder.CreateFreeze(Divisor); in generateUnsignedDivisionCode() 263 Value *Tmp4 = Builder.CreateAdd(Divisor, NegOne); in generateUnsignedDivisionCode() [all …]
|
H A D | BypassSlowDivision.cpp | 156 Value *Divisor = SlowDivOrRem->getOperand(1); in getReplacement() local 157 DivRemMapKey Key(isSignedOp(), Dividend, Divisor); in getReplacement() 267 Value *Divisor = SlowDivOrRem->getOperand(1); in createSlowBB() local 270 DivRemPair.Quotient = Builder.CreateSDiv(Dividend, Divisor); in createSlowBB() 273 DivRemPair.Quotient = Builder.CreateUDiv(Dividend, Divisor); in createSlowBB() 291 Value *Divisor = SlowDivOrRem->getOperand(1); in createFastBB() local 353 Value *Divisor = SlowDivOrRem->getOperand(1); in insertFastDivAndRem() local 361 ValueRange DivisorRange = getValueRange(Divisor, SetR); in insertFastDivAndRem() 384 if (isa<ConstantInt>(Divisor)) { in insertFastDivAndRem() 395 if (auto *BCI = dyn_cast<BitCastInst>(Divisor)) in insertFastDivAndRem() [all …]
|
/openbsd/gnu/llvm/llvm/include/llvm/Support/ |
H A D | ScaledNumber.h | 138 std::pair<uint64_t, int16_t> divide64(uint64_t Dividend, uint64_t Divisor); 145 std::pair<uint32_t, int16_t> divide32(uint32_t Dividend, uint32_t Divisor); 153 std::pair<DigitsT, int16_t> getQuotient(DigitsT Dividend, DigitsT Divisor) { in getQuotient() argument 161 if (!Divisor) in getQuotient() 165 return divide64(Dividend, Divisor); in getQuotient() 166 return divide32(Dividend, Divisor); in getQuotient() 171 uint32_t Divisor) { in getQuotient32() argument 172 return getQuotient(Dividend, Divisor); in getQuotient32() 177 uint64_t Divisor) { in getQuotient64() argument 178 return getQuotient(Dividend, Divisor); in getQuotient64() [all …]
|
/openbsd/gnu/llvm/libcxx/include/__support/ibm/ |
H A D | gettod_zos.h | 46 uint64_t Divisor = 1000000; in gettimeofdayMonotonic() local 47 asm(" dlgr %0,%2" : "+r"(DivPair0), "+r"(DivPair1) : "r"(Divisor) :); in gettimeofdayMonotonic()
|
/openbsd/gnu/llvm/llvm/lib/Transforms/Scalar/ |
H A D | DivRemPairs.cpp | 58 Value *Divisor; in matchExpandedRem() local 63 m_c_Mul(m_CombineAnd(m_IDiv(m_Specific(Dividend), m_Value(Divisor)), in matchExpandedRem() 65 m_Deferred(Divisor)))) in matchExpandedRem() 71 M.Key.Divisor = Divisor; in matchExpandedRem()
|
H A D | LICM.cpp | 930 auto Divisor = I.getOperand(1); in hoistRegion() local 931 auto One = llvm::ConstantFP::get(Divisor->getType(), 1.0); in hoistRegion() 932 auto ReciprocalDivisor = BinaryOperator::CreateFDiv(One, Divisor); in hoistRegion()
|
/openbsd/gnu/llvm/llvm/include/llvm/CodeGen/ |
H A D | MachinePipeliner.h | 482 int positiveModulo(int Dividend, int Divisor) const { in positiveModulo() argument 483 assert(Divisor > 0); in positiveModulo() 484 int R = Dividend % Divisor; in positiveModulo() 486 R += Divisor; in positiveModulo()
|
H A D | TargetLowering.h | 4736 virtual SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, 4744 virtual SDValue BuildSREMPow2(SDNode *N, const APInt &Divisor,
|
/openbsd/gnu/llvm/llvm/lib/ProfileData/ |
H A D | GCOV.cpp | 533 static uint32_t branchDiv(uint64_t Numerator, uint64_t Divisor) { in branchDiv() argument 536 if (Numerator == Divisor) in branchDiv() 539 uint8_t Res = (Numerator * 100 + Divisor / 2) / Divisor; in branchDiv()
|
/openbsd/gnu/llvm/llvm/lib/CodeGen/SelectionDAG/ |
H A D | TargetLowering.cpp | 5781 APInt Divisor = C->getAPIntValue(); in BuildExactSDIV() local 5784 Divisor.ashrInPlace(Shift); in BuildExactSDIV() 5789 APInt Factor = Divisor; in BuildExactSDIV() 5790 while ((t = Divisor * Factor) != 1) in BuildExactSDIV() 5900 if (Divisor.isOne() || Divisor.isAllOnes()) { in BuildSDIV() 6062 if (Divisor.isOne()) { in BuildUDIV() 7302 APInt Divisor = CN->getAPIntValue(); in expandDIVREMByConstant() local 7310 if (Divisor.uge(HalfMaxPlus1)) in expandDIVREMByConstant() 7324 if (Divisor.ule(1)) in expandDIVREMByConstant() 7329 if (!Divisor[0]) { in expandDIVREMByConstant() [all …]
|
H A D | LegalizeVectorOps.cpp | 1369 SDValue Divisor = Node->getOperand(1); in ExpandVP_REM() local 1374 SDValue Div = DAG.getNode(DivOpc, DL, VT, Dividend, Divisor, Mask, EVL); in ExpandVP_REM() 1375 SDValue Mul = DAG.getNode(ISD::VP_MUL, DL, VT, Divisor, Div, Mask, EVL); in ExpandVP_REM()
|
H A D | SelectionDAG.cpp | 5762 SDValue Divisor = Ops[1]; in isUndef() local 5763 if (Divisor.isUndef() || isNullConstant(Divisor)) in isUndef() 5766 return ISD::isBuildVectorOfConstantSDNodes(Divisor.getNode()) && in isUndef() 5767 llvm::any_of(Divisor->op_values(), in isUndef()
|
/openbsd/gnu/llvm/llvm/lib/CodeGen/GlobalISel/ |
H A D | CombinerHelper.cpp | 4950 const APInt &Divisor = CI->getValue(); in buildUDivUsingMul() local 4953 APInt Magic(Divisor.getBitWidth(), 0); in buildUDivUsingMul() 4959 if (!Divisor.isOneValue()) { in buildUDivUsingMul() 4961 UnsignedDivisionByConstantInfo::get(Divisor); in buildUDivUsingMul() 4965 assert(magics.PreShift < Divisor.getBitWidth() && in buildUDivUsingMul() 4967 assert(magics.PostShift < Divisor.getBitWidth() && in buildUDivUsingMul() 5146 APInt Divisor = CI->getValue(); in buildSDivUsingMul() local 5147 unsigned Shift = Divisor.countTrailingZeros(); in buildSDivUsingMul() 5149 Divisor.ashrInPlace(Shift); in buildSDivUsingMul() 5155 unsigned W = Divisor.getBitWidth(); in buildSDivUsingMul() [all …]
|
/openbsd/gnu/llvm/llvm/lib/Target/AArch64/ |
H A D | AArch64ISelLowering.h | 1115 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG, 1117 SDValue BuildSREMPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
|
H A D | AArch64TargetTransformInfo.cpp | 1418 APInt Divisor = SplatConstantInt->getValue(); in instCombineSVESDIV() local 1420 if (Divisor.isPowerOf2()) { in instCombineSVESDIV() 1421 Constant *DivisorLog2 = ConstantInt::get(Int32Ty, Divisor.logBase2()); in instCombineSVESDIV() 1426 if (Divisor.isNegatedPowerOf2()) { in instCombineSVESDIV() 1427 Divisor.negate(); in instCombineSVESDIV() 1428 Constant *DivisorLog2 = ConstantInt::get(Int32Ty, Divisor.logBase2()); in instCombineSVESDIV()
|
H A D | AArch64ISelLowering.cpp | 15267 AArch64TargetLowering::BuildSDIVPow2(SDNode *N, const APInt &Divisor, in BuildSDIVPow2() argument 15283 !(Divisor.isPowerOf2() || Divisor.isNegatedPowerOf2())) in BuildSDIVPow2() 15288 unsigned Lg2 = Divisor.countTrailingZeros(); in BuildSDIVPow2() 15308 if (Divisor.isNonNegative()) in BuildSDIVPow2() 15316 AArch64TargetLowering::BuildSREMPow2(SDNode *N, const APInt &Divisor, in BuildSREMPow2() argument 15332 !(Divisor.isPowerOf2() || Divisor.isNegatedPowerOf2())) in BuildSREMPow2() 15335 unsigned Lg2 = Divisor.countTrailingZeros(); in BuildSREMPow2()
|
/openbsd/gnu/llvm/llvm/lib/Target/LoongArch/ |
H A D | LoongArchISelLowering.cpp | 1708 MachineOperand &Divisor = MI.getOperand(2); in insertDivByZeroTrap() local 1709 Register DivisorReg = Divisor.getReg(); in insertDivByZeroTrap() 1713 .addReg(DivisorReg, getKillRegState(Divisor.isKill())) in insertDivByZeroTrap() 1725 Divisor.setIsKill(false); in insertDivByZeroTrap()
|
/openbsd/gnu/llvm/llvm/lib/Target/ARM/ |
H A D | ARMISelLowering.h | 864 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
|
/openbsd/gnu/llvm/llvm/lib/Target/PowerPC/ |
H A D | PPCISelLowering.h | 897 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
|
H A D | PPCISelLowering.cpp | 16021 PPCTargetLowering::BuildSDIVPow2(SDNode *N, const APInt &Divisor, in BuildSDIVPow2() argument 16029 !(Divisor.isPowerOf2() || Divisor.isNegatedPowerOf2())) in BuildSDIVPow2() 16035 bool IsNegPow2 = Divisor.isNegatedPowerOf2(); in BuildSDIVPow2() 16036 unsigned Lg2 = (IsNegPow2 ? -Divisor : Divisor).countTrailingZeros(); in BuildSDIVPow2()
|
/openbsd/gnu/llvm/llvm/lib/Target/X86/ |
H A D | X86ISelLowering.h | 1802 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
|
/openbsd/gnu/llvm/llvm/lib/Target/Mips/ |
H A D | MipsISelLowering.cpp | 1270 MachineOperand &Divisor = MI.getOperand(2); in insertDivByZeroTrap() local 1273 .addReg(Divisor.getReg(), getKillRegState(Divisor.isKill())) in insertDivByZeroTrap() 1282 Divisor.setIsKill(false); in insertDivByZeroTrap()
|
/openbsd/gnu/llvm/llvm/lib/Analysis/ |
H A D | DependenceAnalysis.cpp | 1721 const SCEVConstant *Divisor) { in isRemainderZero() argument 1723 const APInt &ConstDivisor = Divisor->getAPInt(); in isRemainderZero()
|