Home
last modified time | relevance | path

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

12

/llvm-project-15.0.7/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 …]
/llvm-project-15.0.7/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))) ^
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DBypassSlowDivision.cpp158 Value *Divisor = SlowDivOrRem->getOperand(1); in getReplacement() local
159 DivRemMapKey Key(isSignedOp(), Dividend, Divisor); in getReplacement()
269 Value *Divisor = SlowDivOrRem->getOperand(1); in createSlowBB() local
272 DivRemPair.Quotient = Builder.CreateSDiv(Dividend, Divisor); in createSlowBB()
275 DivRemPair.Quotient = Builder.CreateUDiv(Dividend, Divisor); in createSlowBB()
293 Value *Divisor = SlowDivOrRem->getOperand(1); in createFastBB() local
355 Value *Divisor = SlowDivOrRem->getOperand(1); in insertFastDivAndRem() local
363 ValueRange DivisorRange = getValueRange(Divisor, SetR); in insertFastDivAndRem()
386 if (isa<ConstantInt>(Divisor)) { in insertFastDivAndRem()
397 if (auto *BCI = dyn_cast<BitCastInst>(Divisor)) in insertFastDivAndRem()
[all …]
H A DIntegerDivision.cpp32 static Value *generateSignedRemainderCode(Value *Dividend, Value *Divisor, in generateSignedRemainderCode() argument
57 Value *DivisorSign = Builder.CreateAShr(Divisor, Shift); in generateSignedRemainderCode()
59 Value *DvsXor = Builder.CreateXor(Divisor, DivisorSign); in generateSignedRemainderCode()
87 Value *Quotient = Builder.CreateUDiv(Dividend, Divisor); in generatedUnsignedRemainderCode()
88 Value *Product = Builder.CreateMul(Divisor, Quotient); in generatedUnsignedRemainderCode()
130 Value *Tmp1 = Builder.CreateAShr(Divisor, Shift); in generateSignedDivisionCode()
133 Value *Tmp3 = Builder.CreateXor(Tmp1, Divisor); in generateSignedDivisionCode()
250 Value *Ret0_1 = Builder.CreateICmpEQ(Divisor, Zero); in generateUnsignedDivisionCode()
253 Value *Tmp0 = Builder.CreateCall(CTLZ, {Divisor, True}); in generateUnsignedDivisionCode()
282 Value *Tmp4 = Builder.CreateAdd(Divisor, NegOne); in generateUnsignedDivisionCode()
[all …]
/llvm-project-15.0.7/polly/lib/Support/
H A DSCEVValidator.cpp370 ValidatorResult visitDivision(const SCEV *Dividend, const SCEV *Divisor, in visitDivision() argument
377 if (isa<SCEVConstant>(Divisor) && !Divisor->isZero()) in visitDivision()
386 ValidatorResult RHS = visit(Divisor); in visitDivision()
400 auto *Divisor = Expr->getRHS(); in visitUDivExpr() local
401 return visitDivision(Dividend, Divisor, Expr); in visitUDivExpr()
409 auto *Divisor = SE.getSCEV(SDiv->getOperand(1)); in visitSDivInstruction() local
410 return visitDivision(Dividend, Divisor, Expr, SDiv); in visitSDivInstruction()
417 auto *Divisor = SRem->getOperand(1); in visitSRemInstruction() local
418 auto *CI = dyn_cast<ConstantInt>(Divisor); in visitSRemInstruction()
565 auto *Divisor = SE.getSCEV(Inst->getOperand(0)); in follow() local
[all …]
H A DSCEVAffinator.cpp482 auto *Divisor = Expr->getRHS(); in visitUDivExpr() local
483 assert(isa<SCEVConstant>(Divisor) && in visitUDivExpr()
487 auto DivisorPWAC = visit(Divisor); in visitUDivExpr()
489 if (SE.isKnownNegative(Divisor)) { in visitUDivExpr()
515 auto *Divisor = SDiv->getOperand(1); in visitSDivInstruction() local
516 auto *DivisorSCEV = SE.getSCEVAtScope(Divisor, Scope); in visitSDivInstruction()
532 auto *Divisor = SRem->getOperand(1); in visitSRemInstruction() local
533 auto *DivisorSCEV = SE.getSCEVAtScope(Divisor, Scope); in visitSRemInstruction()
535 assert(isa<ConstantInt>(Divisor) && in visitSRemInstruction()
/llvm-project-15.0.7/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 …]
/llvm-project-15.0.7/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()
/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DDivRemPairs.cpp57 Value *Divisor; in matchExpandedRem() local
62 m_c_Mul(m_CombineAnd(m_IDiv(m_Specific(Dividend), m_Value(Divisor)), in matchExpandedRem()
64 m_Deferred(Divisor)))) in matchExpandedRem()
70 M.Key.Divisor = Divisor; in matchExpandedRem()
H A DLICM.cpp917 auto Divisor = I.getOperand(1); in hoistRegion() local
918 auto One = llvm::ConstantFP::get(Divisor->getType(), 1.0); in hoistRegion()
919 auto ReciprocalDivisor = BinaryOperator::CreateFDiv(One, Divisor); in hoistRegion()
/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DTargetSchedule.cpp46 static unsigned gcd(unsigned Dividend, unsigned Divisor) { in gcd() argument
48 while (Divisor) { in gcd()
49 unsigned Rem = Dividend % Divisor; in gcd()
50 Dividend = Divisor; in gcd()
51 Divisor = Rem; in gcd()
/llvm-project-15.0.7/clang/test/SemaTemplate/
H A Dinstantiate-static-var.cpp5 template<typename T, T Divisor>
8 …static const T value = 10 / Divisor; // expected-error{{in-class initializer for static data membe…
/llvm-project-15.0.7/llvm/lib/ProfileData/
H A DGCOV.cpp532 static uint32_t branchDiv(uint64_t Numerator, uint64_t Divisor) { in branchDiv() argument
535 if (Numerator == Divisor) in branchDiv()
538 uint8_t Res = (Numerator * 100 + Divisor / 2) / Divisor; in branchDiv()
/llvm-project-15.0.7/llvm/lib/Target/LoongArch/
H A DLoongArchISelLowering.cpp751 MachineOperand &Divisor = MI.getOperand(2); in insertDivByZeroTrap() local
755 .addReg(Divisor.getReg(), getKillRegState(Divisor.isKill())) in insertDivByZeroTrap()
764 Divisor.setIsKill(false); in insertDivByZeroTrap()
/llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/
H A DTargetLowering.cpp5695 APInt Divisor = C->getAPIntValue(); in BuildExactSDIV() local
5698 Divisor.ashrInPlace(Shift); in BuildExactSDIV()
5703 APInt Factor = Divisor; in BuildExactSDIV()
5704 while ((t = Divisor * Factor) != 1) in BuildExactSDIV()
5809 const APInt &Divisor = C->getAPIntValue(); in BuildSDIV() local
5814 if (Divisor.isOne() || Divisor.isAllOnes()) { in BuildSDIV()
5955 const APInt& Divisor = C->getAPIntValue(); in BuildUDIV() local
5962 if (magics.IsAdd && !Divisor[0]) { in BuildUDIV()
5963 PreShift = Divisor.countTrailingZeros(); in BuildUDIV()
5971 if (!magics.IsAdd || Divisor.isOne()) { in BuildUDIV()
[all …]
/llvm-project-15.0.7/llvm/lib/Target/AArch64/
H A DAArch64ISelLowering.h1064 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
1066 SDValue BuildSREMPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
H A DAArch64TargetTransformInfo.cpp1319 APInt Divisor = SplatConstantInt->getValue(); in instCombineSVESDIV() local
1321 if (Divisor.isPowerOf2()) { in instCombineSVESDIV()
1322 Constant *DivisorLog2 = ConstantInt::get(Int32Ty, Divisor.logBase2()); in instCombineSVESDIV()
1327 if (Divisor.isNegatedPowerOf2()) { in instCombineSVESDIV()
1328 Divisor.negate(); in instCombineSVESDIV()
1329 Constant *DivisorLog2 = ConstantInt::get(Int32Ty, Divisor.logBase2()); in instCombineSVESDIV()
/llvm-project-15.0.7/llvm/lib/Target/RISCV/
H A DRISCVISelLowering.h591 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/llvm-project-15.0.7/llvm/lib/CodeGen/GlobalISel/
H A DCombinerHelper.cpp4803 const APInt &Divisor = CI->getValue(); in buildUDivUsingMul() local
4805 UnsignedDivisionByConstantInfo::get(Divisor); in buildUDivUsingMul()
4810 if (magics.IsAdd && !Divisor[0]) { in buildUDivUsingMul()
4811 PreShift = Divisor.countTrailingZeros(); in buildUDivUsingMul()
4814 UnsignedDivisionByConstantInfo::get(Divisor.lshr(PreShift), PreShift); in buildUDivUsingMul()
4819 if (!magics.IsAdd || Divisor.isOneValue()) { in buildUDivUsingMul()
4820 assert(magics.ShiftAmount < Divisor.getBitWidth() && in buildUDivUsingMul()
/llvm-project-15.0.7/llvm/lib/Target/ARM/
H A DARMISelLowering.h858 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/llvm-project-15.0.7/llvm/lib/Target/PowerPC/
H A DPPCISelLowering.h890 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/llvm-project-15.0.7/llvm/lib/Target/X86/
H A DX86ISelLowering.h1739 SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
/llvm-project-15.0.7/llvm/include/llvm/CodeGen/
H A DTargetLowering.h4573 virtual SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor,
4581 virtual SDValue BuildSREMPow2(SDNode *N, const APInt &Divisor,
/llvm-project-15.0.7/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()
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DDependenceAnalysis.cpp1658 const SCEVConstant *Divisor) { in isRemainderZero() argument
1660 const APInt &ConstDivisor = Divisor->getAPInt(); in isRemainderZero()

12