Lines Matching refs:C2

224     Constant *C1, *C2;  in visitMul()  local
226 if (match(&I, m_Mul(m_Shl(m_Value(NewOp), m_Constant(C2)), in visitMul()
230 Constant *Shl = ConstantExpr::getShl(C1, C2); in visitMul()
915 static bool multiplyOverflows(const APInt &C1, const APInt &C2, APInt &Product, in multiplyOverflows() argument
918 Product = IsSigned ? C1.smul_ov(C2, Overflow) : C1.umul_ov(C2, Overflow); in multiplyOverflows()
923 static bool isMultiple(const APInt &C1, const APInt &C2, APInt &Quotient, in isMultiple() argument
925 assert(C1.getBitWidth() == C2.getBitWidth() && "Constant widths not equal"); in isMultiple()
928 if (C2.isZero()) in isMultiple()
932 if (IsSigned && C1.isMinSignedValue() && C2.isAllOnes()) in isMultiple()
937 APInt::sdivrem(C1, C2, Quotient, Remainder); in isMultiple()
939 APInt::udivrem(C1, C2, Quotient, Remainder); in isMultiple()
1055 const APInt *C2; in commonIDivTransforms() local
1056 if (match(Op1, m_APInt(C2))) { in commonIDivTransforms()
1064 if (!multiplyOverflows(*C1, *C2, Product, IsSigned)) in commonIDivTransforms()
1069 APInt Quotient(C2->getBitWidth(), /*val=*/0ULL, IsSigned); in commonIDivTransforms()
1074 if (isMultiple(*C2, *C1, Quotient, IsSigned)) { in commonIDivTransforms()
1082 if (isMultiple(*C1, *C2, Quotient, IsSigned)) { in commonIDivTransforms()
1100 if (isMultiple(*C2, C1Shifted, Quotient, IsSigned)) { in commonIDivTransforms()
1108 if (isMultiple(C1Shifted, *C2, Quotient, IsSigned)) { in commonIDivTransforms()
1123 match(Op0, m_NSWAdd(m_NSWMul(m_Value(X), m_SpecificInt(*C2)), in commonIDivTransforms()
1125 isMultiple(*C1, *C2, Quotient, IsSigned)) { in commonIDivTransforms()
1129 match(Op0, m_NUWAdd(m_NUWMul(m_Value(X), m_SpecificInt(*C2)), in commonIDivTransforms()
1132 ConstantInt::get(Ty, C1->udiv(*C2))); in commonIDivTransforms()
1135 if (!C2->isZero()) // avoid X udiv 0 in commonIDivTransforms()
1230 const APInt *C1, *C2; in commonIDivTransforms() local
1238 if (match(A, m_APInt(C1)) && match(B, m_APInt(C2)) && C2->ule(*C1)) in commonIDivTransforms()
1392 const APInt *C1, *C2; in visitUDiv() local
1393 if (match(Op0, m_LShr(m_Value(X), m_APInt(C1))) && match(Op1, m_APInt(C2))) { in visitUDiv()
1396 APInt C2ShlC1 = C2->ushl_ov(*C1, Overflow); in visitUDiv()
1647 Constant *C2, *NewC = nullptr; in foldFDivConstantDividend() local
1648 if (match(I.getOperand(1), m_FMul(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1650 NewC = ConstantFoldBinaryOpOperands(Instruction::FDiv, C, C2, DL); in foldFDivConstantDividend()
1651 } else if (match(I.getOperand(1), m_FDiv(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1653 NewC = ConstantFoldBinaryOpOperands(Instruction::FMul, C, C2, DL); in foldFDivConstantDividend()