Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:DivRHS

858 /// FoldICmpDivCst - Fold "icmp pred, ([su]div X, DivRHS), CmpRHS" where DivRHS
861 ConstantInt *DivRHS) {
876 if (DivRHS->isZero())
878 if (DivIsSigned && DivRHS->isAllOnesValue())
880 if (DivRHS->isOne()) {
886 // Compute Prod = CI * DivRHS. We are essentially solving an equation
887 // of form X/C1=C2. We solve for X by multiplying C1 (DivRHS) and
890 Constant *Prod = ConstantExpr::getMul(CmpRHS, DivRHS);
895 bool ProdOV = (DivIsSigned ? ConstantExpr::getSDiv(Prod, DivRHS) :
896 ConstantExpr::getUDiv(Prod, DivRHS)) != CmpRHS;
903 ConstantInt *RangeSize = DivI->isExact() ? getOne(Prod) : DivRHS;
924 } else if (DivRHS->getValue().isStrictlyPositive()) { // Divisor is > 0.
943 } else if (DivRHS->isNegative()) { // Divisor is < 0.
950 if (HiBound == DivRHS) { // -INTMIN = INTMIN
1775 if (ConstantInt *DivRHS = dyn_cast<ConstantInt>(LHSI->getOperand(1)))
1777 DivRHS))