Lines Matching defs:C0
356 ConstantFP *C0, *C1;
359 if ((C0 = dyn_cast<ConstantFP>(Opnd0)) && C0->isZero())
366 if (!C0)
369 Addend0.set(C0, nullptr);
386 Addend0.set(APFloat(C0->getValueAPF().getSemantics()), nullptr);
1136 // Returns whether C0 * C1 with the given signedness overflows.
1137 static bool MulWillOverflow(APInt &C0, APInt &C1, bool IsSigned) {
1140 (void)C0.smul_ov(C1, overflow);
1142 (void)C0.umul_ov(C1, overflow);
1146 // Simplifies X % C0 + (( X / C0 ) % C1) * C0 to X % (C0 * C1), where (C0 * C1)
1148 // Simplifies (X / C0) * C1 + (X % C0) * C2 to
1149 // (X / C0) * (C1 - C2 * C0) + X * C2
1153 APInt C0, MulOpC;
1155 // Match I = X % C0 + MulOpV * C0
1156 if (((MatchRem(LHS, X, C0, IsSigned) && MatchMul(RHS, MulOpV, MulOpC)) ||
1157 (MatchRem(RHS, X, C0, IsSigned) && MatchMul(LHS, MulOpV, MulOpC))) &&
1158 C0 == MulOpC) {
1167 // Match RemOpV = X / C0
1169 C0 == DivOpC && !MulWillOverflow(C0, C1, IsSigned)) {
1170 Value *NewDivisor = ConstantInt::get(X->getType(), C0 * C1);
1177 // Match I = (X / C0) * C1 + (X % C0) * C2
1190 if (MatchRem(Rem, X, C0, IsSigned) &&
1191 MatchDiv(Div, DivOpV, DivOpC, IsSigned) && X == DivOpV && C0 == DivOpC) {
1192 APInt NewC = C1 - C2 * C0;
1592 // X % C0 + (( X / C0 ) % C1) * C0 => X % (C0 * C1)
2255 // (X + C0) - (Y + C1) --> (X - Y) + (C0 - C1)