Lines Matching refs:match
57 if (match(V, m_LShr(m_OneUse(m_Shl(m_Value(One), m_Value(A))), m_Value(B))) && in simplifyValueKnownNonZero()
58 match(One, m_One())) { in simplifyValueKnownNonZero()
104 if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_One(), m_AllOnes())), in foldMulSelectToNegate()
112 if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_AllOnes(), m_One())), in foldMulSelectToNegate()
121 if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(1.0), in foldMulSelectToNegate()
131 if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(-1.0), in foldMulSelectToNegate()
163 if (match(Op1, m_AllOnes())) { in visitMul()
175 if (match(&I, m_Mul(m_Shl(m_Value(NewOp), m_Constant(C2)), in visitMul()
177 match(C1, m_APInt(IVal))) { in visitMul()
190 if (match(&I, m_Mul(m_Value(NewOp), m_Constant(C1)))) { in visitMul()
199 if (match(NewCst, m_APInt(V)) && *V != V->getBitWidth() - 1) in visitMul()
208 if (Op0->hasOneUse() && match(Op1, m_NegatedPower2())) { in visitMul()
227 if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) { in visitMul()
231 if (!match(Mul, m_Mul(m_Value(), m_Value()))) in visitMul()
244 if (match(Op0, m_Intrinsic<Intrinsic::abs>(m_Value(X)))) in visitMul()
251 if (match(Op0, m_Neg(m_Value(X))) && match(Op1, m_Constant(Op1C))) in visitMul()
255 if (match(Op0, m_Neg(m_Value(X))) && match(Op1, m_Neg(m_Value(Y)))) { in visitMul()
266 if (match(&I, m_c_Mul(m_OneUse(m_Neg(m_Value(X))), m_Value(Y)))) in visitMul()
311 (match(Op0, m_And(m_Value(), m_One())) && in visitMul()
312 match(Op1, m_And(m_Value(), m_One())))) in visitMul()
321 if (match(Op0, m_Shl(m_One(), m_Value(Y)))) { in visitMul()
324 } else if (match(Op1, m_Shl(m_One(), m_Value(Y)))) { in visitMul()
340 if (((match(Op0, m_ZExt(m_Value(X))) && match(Op1, m_ZExt(m_Value(Y)))) || in visitMul()
341 (match(Op0, m_SExt(m_Value(X))) && match(Op1, m_SExt(m_Value(Y))))) && in visitMul()
350 if (((match(Op0, m_SExt(m_Value(X))) && match(Op1, m_ZExt(m_Value(Y)))) || in visitMul()
351 (match(Op0, m_ZExt(m_Value(X))) && match(Op1, m_SExt(m_Value(Y))))) && in visitMul()
360 if (match(Op0, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) in visitMul()
362 if (match(Op1, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) in visitMul()
366 if (match(Op1, m_ImmConstant(ImmC))) { in visitMul()
368 if (match(Op0, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { in visitMul()
375 if (match(Op0, m_OneUse(m_AShr(m_Value(X), m_APInt(C)))) && in visitMul()
387 if (match(&I, m_c_BinOp(m_LShr(m_Value(X), m_APInt(C)), m_Value(Y))) && in visitMul()
394 if (match(&I, m_c_BinOp(m_OneUse(m_And(m_Value(X), m_One())), m_Value(Y)))) { in visitMul()
401 if (match(&I, m_c_BinOp(m_Or(m_AShr(m_Value(X), in visitMul()
439 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_FNeg(m_Value(Y)))) in foldFPSignBitOps()
444 if (Op0 == Op1 && match(Op0, m_FAbs(m_Value(X)))) in foldFPSignBitOps()
449 if (match(Op0, m_FAbs(m_Value(X))) && match(Op1, m_FAbs(m_Value(Y))) && in foldFPSignBitOps()
488 if (match(Op1, m_SpecificFP(-1.0))) in visitFMul()
494 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_Constant(C))) in visitFMul()
504 if (match(Op1, m_Constant(C)) && C->isFiniteNonZeroFP()) { in visitFMul()
506 if (match(Op0, m_OneUse(m_FDiv(m_Constant(C1), m_Value(X))))) { in visitFMul()
513 if (match(Op0, m_FDiv(m_Value(X), m_Constant(C1)))) { in visitFMul()
531 if (match(Op0, m_OneUse(m_FAdd(m_Value(X), m_Constant(C1))))) { in visitFMul()
539 if (match(Op0, m_OneUse(m_FSub(m_Constant(C1), m_Value(X))))) { in visitFMul()
550 if (match(&I, m_c_FMul(m_OneUse(m_FDiv(m_Value(X), m_Value(Y))), in visitFMul()
560 if (I.hasNoNaNs() && match(Op0, m_OneUse(m_Sqrt(m_Value(X)))) && in visitFMul()
561 match(Op1, m_OneUse(m_Sqrt(m_Value(Y))))) { in visitFMul()
574 match(Op0, (m_FDiv(m_SpecificFP(1.0), m_Value(Y)))) && in visitFMul()
575 match(Y, m_Sqrt(m_Value(X))) && Op1 == X) in visitFMul()
578 match(Op1, (m_FDiv(m_SpecificFP(1.0), m_Value(Y)))) && in visitFMul()
579 match(Y, m_Sqrt(m_Value(X))) && Op0 == X) in visitFMul()
588 if (match(Op0, m_FDiv(m_Value(X), m_Sqrt(m_Value(Y))))) { in visitFMul()
593 if (match(Op0, m_FDiv(m_Sqrt(m_Value(Y)), m_Value(X)))) { in visitFMul()
601 if (match(Op0, m_Intrinsic<Intrinsic::pow>(m_Value(X), m_Value(Y))) && in visitFMul()
602 match(Op1, m_Intrinsic<Intrinsic::pow>(m_Specific(X), m_Value(Z)))) { in visitFMul()
609 if (match(Op0, m_Intrinsic<Intrinsic::powi>(m_Value(X), m_Value(Y))) && in visitFMul()
610 match(Op1, m_Intrinsic<Intrinsic::powi>(m_Specific(X), m_Value(Z))) && in visitFMul()
619 if (match(Op0, m_Intrinsic<Intrinsic::exp>(m_Value(X))) && in visitFMul()
620 match(Op1, m_Intrinsic<Intrinsic::exp>(m_Value(Y)))) { in visitFMul()
627 if (match(Op0, m_Intrinsic<Intrinsic::exp2>(m_Value(X))) && in visitFMul()
628 match(Op1, m_Intrinsic<Intrinsic::exp2>(m_Value(Y)))) { in visitFMul()
642 if (match(Op0, m_OneUse(m_c_FMul(m_Specific(Op1), m_Value(Y)))) && in visitFMul()
647 if (match(Op1, m_OneUse(m_c_FMul(m_Specific(Op0), m_Value(Y)))) && in visitFMul()
657 if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::log2>( in visitFMul()
662 if (match(Op1, m_OneUse(m_Intrinsic<Intrinsic::log2>( in visitFMul()
686 if (match(SI->getTrueValue(), m_Zero())) in simplifyDivRemOfSelectWithZeroOp()
689 else if (match(SI->getFalseValue(), m_Zero())) in simplifyDivRemOfSelectWithZeroOp()
800 if (match(Op0, m_ImmConstant()) && in commonIDivTransforms()
801 match(Op1, m_Select(m_Value(), m_ImmConstant(), m_ImmConstant()))) { in commonIDivTransforms()
808 if (match(Op1, m_APInt(C2))) { in commonIDivTransforms()
813 if ((IsSigned && match(Op0, m_SDiv(m_Value(X), m_APInt(C1)))) || in commonIDivTransforms()
814 (!IsSigned && match(Op0, m_UDiv(m_Value(X), m_APInt(C1))))) { in commonIDivTransforms()
821 if ((IsSigned && match(Op0, m_NSWMul(m_Value(X), m_APInt(C1)))) || in commonIDivTransforms()
822 (!IsSigned && match(Op0, m_NUWMul(m_Value(X), m_APInt(C1))))) { in commonIDivTransforms()
844 if ((IsSigned && match(Op0, m_NSWShl(m_Value(X), m_APInt(C1))) && in commonIDivTransforms()
846 (!IsSigned && match(Op0, m_NUWShl(m_Value(X), m_APInt(C1))) && in commonIDivTransforms()
876 if (match(Op0, m_One())) { in commonIDivTransforms()
899 if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) // (X - Z) / Y; Y = Op1 in commonIDivTransforms()
900 if ((IsSigned && match(Z, m_SRem(m_Specific(X), m_Specific(Op1)))) || in commonIDivTransforms()
901 (!IsSigned && match(Z, m_URem(m_Specific(X), m_Specific(Op1))))) in commonIDivTransforms()
906 if (IsSigned && match(Op0, m_NSWShl(m_Specific(Op1), m_Value(Y)))) in commonIDivTransforms()
908 if (!IsSigned && match(Op0, m_NUWShl(m_Specific(Op1), m_Value(Y)))) in commonIDivTransforms()
912 if (match(Op1, m_c_Mul(m_Specific(Op0), m_Value(Y)))) { in commonIDivTransforms()
941 if (match(Op, m_Power2())) in takeLog2()
956 if (match(Op, m_ZExt(m_Value(X)))) in takeLog2()
962 if (match(Op, m_Shl(m_Value(X), m_Value(Y)))) in takeLog2()
1001 if (match(N, m_ZExt(m_Value(X))) && match(D, m_ZExt(m_Value(Y))) && in narrowUDivURem()
1010 if ((match(N, m_OneUse(m_ZExt(m_Value(X)))) && match(D, m_Constant(C))) || in narrowUDivURem()
1011 (match(D, m_OneUse(m_ZExt(m_Value(X)))) && match(N, m_Constant(C)))) { in narrowUDivURem()
1044 if (match(Op0, m_LShr(m_Value(X), m_APInt(C1))) && match(Op1, m_APInt(C2))) { in visitUDiv()
1049 bool IsExact = I.isExact() && match(Op0, m_Exact(m_Value())); in visitUDiv()
1061 if (match(Op1, m_Negative())) { in visitUDiv()
1066 if (match(Op1, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { in visitUDiv()
1080 if (match(Op0, m_NUWMul(m_Value(A), m_Value(B)))) { in visitUDiv()
1081 if (match(Op1, m_NUWMul(m_Specific(A), m_Value(X))) || in visitUDiv()
1082 match(Op1, m_NUWMul(m_Value(X), m_Specific(A)))) in visitUDiv()
1084 if (match(Op1, m_NUWMul(m_Specific(B), m_Value(X))) || in visitUDiv()
1085 match(Op1, m_NUWMul(m_Value(X), m_Specific(B)))) in visitUDiv()
1116 if (match(Op1, m_AllOnes()) || in visitSDiv()
1117 (match(Op1, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1))) in visitSDiv()
1121 if (match(Op1, m_SignMask())) in visitSDiv()
1126 if (I.isExact() && ((match(Op1, m_Power2()) && match(Op1, m_NonNegative())) || in visitSDiv()
1127 match(Op1, m_NegatedPower2()))) { in visitSDiv()
1128 bool DivisorWasNegative = match(Op1, m_NegatedPower2()); in visitSDiv()
1141 if (match(Op1, m_APInt(Op1C))) { in visitSDiv()
1146 if (match(Op0, m_OneUse(m_SExt(m_Value(Op0Src)))) && in visitSDiv()
1163 match(Op0, m_NSWSub(m_Zero(), m_Value(X)))) { in visitSDiv()
1173 if (match(&I, m_SDiv(m_OneUse(m_NSWSub(m_Zero(), m_Value(X))), m_Value(Y)))) in visitSDiv()
1179 if (match(&I, m_c_BinOp( in visitSDiv()
1198 if (match(Op1, m_NegatedPower2())) { in visitSDiv()
1224 if (!match(I.getOperand(1), m_Constant(C))) in foldFDivConstantDivisor()
1229 if (match(I.getOperand(0), m_FNeg(m_Value(X)))) in foldFDivConstantDivisor()
1255 if (!match(I.getOperand(0), m_Constant(C))) in foldFDivConstantDividend()
1260 if (match(I.getOperand(1), m_FNeg(m_Value(X)))) in foldFDivConstantDividend()
1269 if (match(I.getOperand(1), m_FMul(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1272 } else if (match(I.getOperand(1), m_FDiv(m_Value(X), m_Constant(C2)))) { in foldFDivConstantDividend()
1367 if (match(Op0, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && in visitFDiv()
1373 if (match(Op1, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && in visitFDiv()
1385 if (match(Op1, m_FDiv(m_SpecificFP(1.0), m_Value(Y)))) in visitFDiv()
1393 bool IsTan = match(Op0, m_Intrinsic<Intrinsic::sin>(m_Value(X))) && in visitFDiv()
1394 match(Op1, m_Intrinsic<Intrinsic::cos>(m_Specific(X))); in visitFDiv()
1396 !IsTan && match(Op0, m_Intrinsic<Intrinsic::cos>(m_Value(X))) && in visitFDiv()
1397 match(Op1, m_Intrinsic<Intrinsic::sin>(m_Specific(X))); in visitFDiv()
1419 match(Op1, m_c_FMul(m_Specific(Op0), m_Value(Y)))) { in visitFDiv()
1428 (match(&I, m_FDiv(m_Value(X), m_FAbs(m_Deferred(X)))) || in visitFDiv()
1429 match(&I, m_FDiv(m_FAbs(m_Value(X)), m_Deferred(X))))) { in visitFDiv()
1462 if (match(Op0, m_ImmConstant()) && in commonIRemTransforms()
1463 match(Op1, m_Select(m_Value(), m_ImmConstant(), m_ImmConstant()))) { in commonIRemTransforms()
1476 if (match(Op1, m_APInt(Op1Int)) && !Op1Int->isMinValue() && in commonIRemTransforms()
1522 if (match(Op0, m_One())) { in visitURem()
1529 if (match(Op1, m_Negative())) { in visitURem()
1541 if (match(Op1, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { in visitURem()
1565 if (match(Op1, m_Negative(Y)) && !Y->isMinSignedValue()) in visitSRem()
1571 if (match(&I, m_SRem(m_OneUse(m_NSWSub(m_Zero(), m_Value(X))), m_Value(Y)))) in visitSRem()