Home | History | Annotate | Download | only in SelectionDAG

Lines Matching full:divisor

2729 SDValue TargetLowering::BuildSDIVPow2(SDNode *N, const APInt &Divisor,
2743 SDValue TargetLowering::BuildSDIV(SDNode *N, const APInt &Divisor,
2758 return BuildExactSDIV(*this, N->getOperand(0), Divisor, dl, DAG, *Created);
2760 APInt::ms magics = Divisor.magic();
2777 if (Divisor.isStrictlyPositive() && magics.m.isNegative()) {
2782 if (Divisor.isNegative() && magics.m.isStrictlyPositive()) {
2807 SDValue TargetLowering::BuildUDIV(SDNode *N, const APInt &Divisor,
2823 APInt::mu magics = Divisor.magicu();
2827 // If the divisor is even, we can avoid using the expensive fixup by shifting
2829 if (magics.a != 0 && !Divisor[0]) {
2830 unsigned Shift = Divisor.countTrailingZeros();
2836 // Get magic number for the shifted divisor.
2837 magics = Divisor.lshr(Shift).magicu(Shift);
2856 assert(magics.s < Divisor.getBitWidth() &&