Lines Matching full:divisor

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()
271 DivRemPair.Remainder = Builder.CreateSRem(Dividend, Divisor); in createSlowBB()
273 DivRemPair.Quotient = Builder.CreateUDiv(Dividend, Divisor); in createSlowBB()
274 DivRemPair.Remainder = Builder.CreateURem(Dividend, Divisor); in createSlowBB()
291 Value *Divisor = SlowDivOrRem->getOperand(1); in createFastBB() local
293 Builder.CreateCast(Instruction::Trunc, Divisor, BypassType); in createFastBB()
324 /// Creates a runtime check to test whether both the divisor and dividend fit
353 Value *Divisor = SlowDivOrRem->getOperand(1); in insertFastDivAndRem() local
361 ValueRange DivisorRange = getValueRange(Divisor, SetR); in insertFastDivAndRem()
372 // divisor is a constant (and will later get replaced by a multiplication). in insertFastDivAndRem()
376 Value *TruncDivisor = Builder.CreateTrunc(Divisor, BypassType); in insertFastDivAndRem()
384 if (isa<ConstantInt>(Divisor)) { in insertFastDivAndRem()
385 // If the divisor is not a constant, DAGCombiner will convert it to a in insertFastDivAndRem()
395 if (auto *BCI = dyn_cast<BitCastInst>(Divisor)) in insertFastDivAndRem()
406 // 1) Divisor is less or equal to Dividend, and the result can be computed in insertFastDivAndRem()
408 // 2) Divisor is greater than Dividend. In this case, no division is needed in insertFastDivAndRem()
411 // So instead of checking at runtime whether Divisor fits into BypassType, in insertFastDivAndRem()
425 Value *CmpV = Builder.CreateICmpUGE(Dividend, Divisor); in insertFastDivAndRem()
440 DivisorShort ? nullptr : Divisor); in insertFastDivAndRem()