Lines Matching defs:Magics
31 SignedDivisionByConstantInfo Magics) {
39 Magics.Magic = 0;
40 Magics.ShiftAmount = 0;
42 } else if (Divisor.isStrictlyPositive() && Magics.Magic.isNegative()) {
45 } else if (Divisor.isNegative() && Magics.Magic.isStrictlyPositive()) {
51 APInt Q = MULHS(Numerator, Magics.Magic);
58 Q = Q.ashr(Magics.ShiftAmount);
76 SignedDivisionByConstantInfo Magics;
78 Magics = SignedDivisionByConstantInfo::get(Divisor);
79 EnumerateAPInts(Bits, [Divisor, Magics, Bits](const APInt &Numerator) {
83 APInt MagicResult = SignedDivideUsingMagic(Numerator, Divisor, Magics);
101 UnsignedDivisionByConstantInfo Magics) {
111 Magics = UnsignedDivisionByConstantInfo::get(
113 assert(!Magics.IsAdd && "Should use cheap fixup now");
117 assert(Magics.PreShift < Divisor.getBitWidth() &&
119 assert(Magics.PostShift < Divisor.getBitWidth() &&
121 assert((!Magics.IsAdd || Magics.PreShift == 0) && "Unexpected pre-shift");
122 unsigned PreShift = Magics.PreShift;
123 unsigned PostShift = Magics.PostShift;
124 bool UseNPQ = Magics.IsAdd;
132 Q = MULHU(Q, Magics.Magic);
164 const UnsignedDivisionByConstantInfo Magics =
166 EnumerateAPInts(Bits, [Divisor, Magics, Bits](const APInt &Numerator) {
173 AllowEvenDivisorOptimization, ForceNPQ, Magics);