Home
last modified time | relevance | path

Searched refs:Divisor (Results 1 – 25 of 30) sorted by relevance

12

/openbsd/gnu/llvm/llvm/lib/Support/
H A DScaledNumber.cpp60 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 DBypassSlowDivision.h33 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 DIntegerDivision.cpp50 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 DBypassSlowDivision.cpp156 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 DScaledNumber.h138 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 Dgettod_zos.h46 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 DDivRemPairs.cpp58 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 DLICM.cpp930 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 DMachinePipeliner.h482 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 DTargetLowering.h4736 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 DGCOV.cpp533 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 DTargetLowering.cpp5781 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 DLegalizeVectorOps.cpp1369 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 DSelectionDAG.cpp5762 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 DCombinerHelper.cpp4950 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 DAArch64ISelLowering.h1115 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
1117 SDValue BuildSREMPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
H A DAArch64TargetTransformInfo.cpp1418 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 DAArch64ISelLowering.cpp15267 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 DLoongArchISelLowering.cpp1708 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 DARMISelLowering.h864 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/openbsd/gnu/llvm/llvm/lib/Target/PowerPC/
H A DPPCISelLowering.h897 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
H A DPPCISelLowering.cpp16021 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 DX86ISelLowering.h1802 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/openbsd/gnu/llvm/llvm/lib/Target/Mips/
H A DMipsISelLowering.cpp1270 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 DDependenceAnalysis.cpp1721 const SCEVConstant *Divisor) { in isRemainderZero() argument
1723 const APInt &ConstDivisor = Divisor->getAPInt(); in isRemainderZero()

12