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