Lines Matching refs:C2
154 Constant *C1, *C2; in visitMul() local
156 if (match(&I, m_Mul(m_Shl(m_Value(NewOp), m_Constant(C2)), in visitMul()
160 Constant *Shl = ConstantExpr::getShl(C1, C2); in visitMul()
559 static bool multiplyOverflows(const APInt &C1, const APInt &C2, APInt &Product, in multiplyOverflows() argument
562 Product = IsSigned ? C1.smul_ov(C2, Overflow) : C1.umul_ov(C2, Overflow); in multiplyOverflows()
567 static bool isMultiple(const APInt &C1, const APInt &C2, APInt &Quotient, in isMultiple() argument
569 assert(C1.getBitWidth() == C2.getBitWidth() && "Constant widths not equal"); in isMultiple()
572 if (C2.isNullValue()) in isMultiple()
576 if (IsSigned && C1.isMinSignedValue() && C2.isAllOnesValue()) in isMultiple()
581 APInt::sdivrem(C1, C2, Quotient, Remainder); in isMultiple()
583 APInt::udivrem(C1, C2, Quotient, Remainder); in isMultiple()
608 const APInt *C2; in commonIDivTransforms() local
609 if (match(Op1, m_APInt(C2))) { in commonIDivTransforms()
617 if (!multiplyOverflows(*C1, *C2, Product, IsSigned)) in commonIDivTransforms()
627 if (isMultiple(*C2, *C1, Quotient, IsSigned)) { in commonIDivTransforms()
635 if (isMultiple(*C1, *C2, Quotient, IsSigned)) { in commonIDivTransforms()
653 if (isMultiple(*C2, C1Shifted, Quotient, IsSigned)) { in commonIDivTransforms()
661 if (isMultiple(C1Shifted, *C2, Quotient, IsSigned)) { in commonIDivTransforms()
671 if (!C2->isNullValue()) // avoid X udiv 0 in commonIDivTransforms()
880 const APInt *C1, *C2; in visitUDiv() local
881 if (match(Op0, m_LShr(m_Value(X), m_APInt(C1))) && match(Op1, m_APInt(C2))) { in visitUDiv()
884 APInt C2ShlC1 = C2->ushl_ov(*C1, Overflow); in visitUDiv()
1089 Constant *C2, *NewC = nullptr; in foldFDivConstantDividend() local
1090 if (match(I.getOperand(1), m_FMul(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1092 NewC = ConstantExpr::getFDiv(C, C2); in foldFDivConstantDividend()
1093 } else if (match(I.getOperand(1), m_FDiv(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1095 NewC = ConstantExpr::getFMul(C, C2); in foldFDivConstantDividend()