Lines Matching refs:match

62   if (!match(Sel.getCondition(), m_Cmp(Pred, m_Value(X), m_Constant(C))))  in foldSelectBinOpIdentity()
77 if (!match(Sel.getOperand(IsEq ? 1 : 2), m_BinOp(BO))) in foldSelectBinOpIdentity()
87 if (!match(IdC, m_AnyZeroFP()) || !match(C, m_AnyZeroFP())) in foldSelectBinOpIdentity()
93 if (!BO->isCommutative() && !match(BO, m_BinOp(m_Value(Y), m_Specific(X)))) in foldSelectBinOpIdentity()
95 if (!match(BO, m_c_BinOp(m_Value(Y), m_Specific(X)))) in foldSelectBinOpIdentity()
125 if (!match(Sel.getTrueValue(), m_APInt(SelTC)) || in foldSelectICmpAnd()
126 !match(Sel.getFalseValue(), m_APInt(SelFC))) in foldSelectICmpAnd()
139 if (!match(Cmp->getOperand(1), m_Zero())) in foldSelectICmpAnd()
144 if (!match(V, m_And(m_Value(), m_Power2(AndRHS)))) in foldSelectICmpAnd()
277 if ((match(&SI, m_SMin(m_Value(), m_Value())) || in foldSelectOpOp()
278 match(&SI, m_SMax(m_Value(), m_Value())) || in foldSelectOpOp()
279 match(&SI, m_UMin(m_Value(), m_Value())) || in foldSelectOpOp()
280 match(&SI, m_UMax(m_Value(), m_Value())))) in foldSelectOpOp()
368 if (match(TI, m_FNeg(m_Value(X))) && match(FI, m_FNeg(m_Value(Y)))) { in foldSelectOpOp()
390 if (match(TII, m_MaxOrMin(m_Value(), m_Value()))) { in foldSelectOpOp()
428 if (match(TI, m_ICmp(TPred, m_Value(), m_Value())) && in foldSelectOpOp()
429 match(FI, m_ICmp(FPred, m_Value(), m_Value()))) { in foldSelectOpOp()
543 bool OOpIsAPInt = match(OOp, m_APInt(OOpC)); in foldSelectIntoOp()
591 match(Cmp->getOperand(1), m_Zero()) && match(FVal, m_One()))) in foldSelectICmpAndAnd()
596 if (!match(TVal, m_OneUse(m_And(m_Value(B), m_One())))) in foldSelectICmpAndAnd()
601 const bool HasShift = match(B, m_OneUse(m_LShr(m_Value(X), m_Value(Z)))); in foldSelectICmpAndAnd()
607 !match(Z, m_SpecificInt_ICMP(CmpInst::ICMP_ULT, in foldSelectICmpAndAnd()
616 if (!match(Cmp->getOperand(0), m_c_And(m_Specific(X), m_Value(Y)))) in foldSelectICmpAndAnd()
639 if (!match(Cmp, m_ICmp(Pred, m_Value(AndVal), m_Zero()))) in foldSelectICmpAndZeroShl()
650 !match(AndVal, m_And(m_Value(X), m_APInt(C1))) || in foldSelectICmpAndZeroShl()
651 !match(TVal, m_Zero()) || !match(FVal, m_Shl(m_Specific(X), m_APInt(C2)))) in foldSelectICmpAndZeroShl()
684 !match(CmpRHS, in foldSelectICmpLshrAshr()
687 !match(CmpRHS, in foldSelectICmpLshrAshr()
695 if (match(TrueVal, m_LShr(m_Value(X), m_Value(Y))) && in foldSelectICmpLshrAshr()
696 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr()
697 match(CmpLHS, m_Specific(X))) { in foldSelectICmpLshrAshr()
743 if (!match(CmpRHS, m_Zero())) in foldSelectICmpAndBinOp()
747 if (!match(CmpLHS, m_And(m_Value(), m_Power2(C1)))) in foldSelectICmpAndBinOp()
765 if (match(FalseVal, m_BinOp(m_Specific(TrueVal), m_Power2(C2)))) { in foldSelectICmpAndBinOp()
769 } else if (match(TrueVal, m_BinOp(m_Specific(FalseVal), m_Power2(C2)))) { in foldSelectICmpAndBinOp()
828 if (match(T, m_And(m_Value(X), m_APInt(NotC))) && in foldSetClearBits()
829 match(F, m_OneUse(m_Or(m_Specific(X), m_APInt(C)))) && *NotC == ~(*C)) { in foldSetClearBits()
837 if (match(F, m_And(m_Value(X), m_APInt(NotC))) && in foldSetClearBits()
838 match(T, m_OneUse(m_Or(m_Specific(X), m_APInt(C)))) && *NotC == ~(*C)) { in foldSetClearBits()
868 if (!match(CondVal, m_ICmp(Predicate, m_Value(X), m_Zero())) || in foldSelectZeroOrMul()
881 !match(FalseVal, m_c_Mul(m_Specific(X), m_Value(Y))) || in foldSelectZeroOrMul()
890 if (!match(MergedC, m_Zero()) && !match(MergedC, m_Undef())) in foldSelectZeroOrMul()
913 if (match(TrueVal, m_Zero())) { in canonicalizeSaturatedSubtract()
918 if (!match(FalseVal, m_Zero())) in canonicalizeSaturatedSubtract()
924 if (match(B, m_Zero()) && match(TrueVal, m_Add(m_Specific(A), m_AllOnes()))) in canonicalizeSaturatedSubtract()
948 if (match(TrueVal, m_Sub(m_Specific(B), m_Specific(A))) || in canonicalizeSaturatedSubtract()
949 (match(A, m_APInt(C)) && in canonicalizeSaturatedSubtract()
950 match(TrueVal, m_Add(m_Specific(B), m_SpecificInt(-*C))))) in canonicalizeSaturatedSubtract()
952 else if (!match(TrueVal, m_Sub(m_Specific(A), m_Specific(B))) && in canonicalizeSaturatedSubtract()
953 !(match(B, m_APInt(C)) && in canonicalizeSaturatedSubtract()
954 match(TrueVal, m_Add(m_Specific(A), m_SpecificInt(-*C))))) in canonicalizeSaturatedSubtract()
982 match(TVal, m_Add(m_Value(X), m_APInt(C))) && X == Cmp0 && in canonicalizeSaturatedAdd()
983 match(FVal, m_AllOnes()) && match(Cmp1, m_APInt(CmpC)) && *CmpC == ~*C) { in canonicalizeSaturatedAdd()
992 if (match(FVal, m_AllOnes())) { in canonicalizeSaturatedAdd()
996 if (!match(TVal, m_AllOnes())) in canonicalizeSaturatedAdd()
1010 if (match(Cmp0, m_Not(m_Value(X))) && in canonicalizeSaturatedAdd()
1011 match(FVal, m_c_Add(m_Specific(X), m_Value(Y))) && Y == Cmp1) { in canonicalizeSaturatedAdd()
1020 if (match(FVal, m_c_Add(m_Not(m_Specific(X)), m_Specific(Y)))) { in canonicalizeSaturatedAdd()
1030 match(Cmp0, m_c_Add(m_Specific(Cmp1), m_Value(Y))) && in canonicalizeSaturatedAdd()
1031 match(FVal, m_c_Add(m_Specific(Cmp1), m_Specific(Y)))) { in canonicalizeSaturatedAdd()
1054 if (match(FI, m_Sub(m_Specific(A), m_Specific(B)))) { in foldAbsDiff()
1062 match(TI, m_Sub(m_Specific(A), m_Specific(B))) && in foldAbsDiff()
1063 match(FI, m_Sub(m_Specific(B), m_Specific(A))) && in foldAbsDiff()
1095 if (!ICI->isEquality() || !match(ICI->getOperand(1), m_Zero())) in foldSelectCtlzToCttz()
1102 if (!match(FalseVal, in foldSelectCtlzToCttz()
1106 if (!match(Ctlz, m_Intrinsic<Intrinsic::ctlz>())) in foldSelectCtlzToCttz()
1109 if (TrueVal != Ctlz && !match(TrueVal, m_SpecificInt(BitWidth))) in foldSelectCtlzToCttz()
1114 if (!match(II->getOperand(0), m_c_And(m_Specific(X), m_Neg(m_Specific(X))))) in foldSelectCtlzToCttz()
1151 if (!match(SelectArg, m_ZExt(m_Value(Count))) && in foldSelectCttzCtlz()
1152 !match(SelectArg, m_Trunc(m_Value(Count)))) in foldSelectCttzCtlz()
1158 if (!match(Count, m_Intrinsic<Intrinsic::cttz>(m_Value(X))) && in foldSelectCttzCtlz()
1159 !match(Count, m_Intrinsic<Intrinsic::ctlz>(m_Value(X)))) in foldSelectCttzCtlz()
1164 if ((X != CmpLHS || !match(CmpRHS, m_Zero())) && in foldSelectCttzCtlz()
1165 (!match(X, m_Not(m_Specific(CmpLHS))) || !match(CmpRHS, m_AllOnes()))) in foldSelectCttzCtlz()
1173 if (match(ValueOnZero, m_SpecificInt(SizeOfInBits))) { in foldSelectCttzCtlz()
1187 !match(II->getArgOperand(1), m_One())) in foldSelectCttzCtlz()
1209 match(RHS, m_NSWNeg(m_Specific(LHS))); in canonicalizeSPF()
1316 if (match(V, m_ImmConstant()) && in foldSelectValueEquivalence()
1322 if (match(NewOp, m_ImmConstant()) || NewOp == V) { in foldSelectValueEquivalence()
1336 if (OldOp == CmpLHS && match(NewOp, m_ImmConstant()) && in foldSelectValueEquivalence()
1337 !match(OldOp, m_Constant()) && !Cmp.getType()->isVectorTy() && in foldSelectValueEquivalence()
1406 if (!match(Cmp0.getOperand(1), in canonicalizeClampLike()
1423 if (!match(C0, m_SpecificInt_ICMP( in canonicalizeClampLike()
1432 if (!match(C0, in canonicalizeClampLike()
1452 match(X, m_TruncOrSelf(m_Value(X))); in canonicalizeClampLike()
1459 else if (!match(Cmp00, in canonicalizeClampLike()
1468 if (!match(Sel1, m_Select(m_Value(Cmp1), m_Value(ReplacementLow), in canonicalizeClampLike()
1470 !match(Cmp1, in canonicalizeClampLike()
1493 if (!match(C2, in canonicalizeClampLike()
1525 if (!Precond1 || !match(Precond1, m_One())) in canonicalizeClampLike()
1530 if (!Precond2 || !match(Precond2, m_One())) in canonicalizeClampLike()
1538 if (!match(ReplacementLow, m_ImmConstant(LowC)) || in canonicalizeClampLike()
1539 !match(ReplacementHigh, m_ImmConstant(HighC))) in canonicalizeClampLike()
1577 if (!match(&Cmp, m_OneUse(m_ICmp( in tryToReuseConstantFromSelectInComparison()
1599 if (Pred == CmpInst::ICMP_ULT && match(X, m_Add(m_Value(), m_Constant()))) in tryToReuseConstantFromSelectInComparison()
1604 match(&Sel, m_Select(m_Value(), m_Value(SelVal0), m_Value(SelVal1))); in tryToReuseConstantFromSelectInComparison()
1607 if (!match(SelVal0, m_AnyIntegralConstant()) && in tryToReuseConstantFromSelectInComparison()
1608 !match(SelVal1, m_AnyIntegralConstant())) in tryToReuseConstantFromSelectInComparison()
1651 if (!match(Cmp->getOperand(1), m_APIntAllowPoison(CmpC))) in foldSelectZeroOrOnes()
1657 match(TVal, m_Neg(m_Specific(X))) && match(FVal, m_AllOnes())) in foldSelectZeroOrOnes()
1662 match(FVal, m_Neg(m_Specific(X))) && match(TVal, m_AllOnes())) in foldSelectZeroOrOnes()
1673 if (!match(ICI, m_ICmp(Pred, m_Value(V), m_APInt(CmpC)))) in foldSelectInstWithICmpConst()
1681 if (CmpC->isMinValue() && match(TVal, m_SpecificInt(*CmpC + 1))) in foldSelectInstWithICmpConst()
1684 if (CmpC->isMaxValue() && match(TVal, m_SpecificInt(*CmpC - 1))) in foldSelectInstWithICmpConst()
1687 if (CmpC->isMinSignedValue() && match(TVal, m_SpecificInt(*CmpC + 1))) in foldSelectInstWithICmpConst()
1690 if (CmpC->isMaxSignedValue() && match(TVal, m_SpecificInt(*CmpC - 1))) in foldSelectInstWithICmpConst()
1697 if (match(&SI, m_Select(m_Specific(ICI), m_APInt(C), m_BinOp(BO)))) in foldSelectInstWithICmpConst()
1699 else if (match(&SI, m_Select(m_Specific(ICI), m_BinOp(BO), m_APInt(C)))) in foldSelectInstWithICmpConst()
1705 if (!match(BO, m_BinOp(m_Specific(V), m_APInt(BinOpC)))) in foldSelectInstWithICmpConst()
1737 if (!match(CmpLHS, m_BitwiseLogic(m_Value(X), m_Value(Y))) || in foldSelectICmpEq()
1738 !match(TrueVal, m_c_BitwiseLogic(m_Specific(X), m_Specific(Y)))) in foldSelectICmpEq()
1749 return match(CmpRHS, m_Zero()) && match(FalseVal, matchInner); in foldSelectICmpEq()
1752 return match(FalseVal, m_c_BinOp(OuterOpc, m_NotForbidPoison(matchInner), in foldSelectICmpEq()
1755 return match(FalseVal, m_c_BinOp(OuterOpc, matchInner, in foldSelectICmpEq()
1758 return match(FalseVal, in foldSelectICmpEq()
1765 if (match(CmpLHS, m_And(m_Value(X), m_Value(Y)))) { in foldSelectICmpEq()
1766 if (match(TrueVal, m_c_Or(m_Specific(X), m_Specific(Y)))) { in foldSelectICmpEq()
1772 } else if (match(TrueVal, m_c_Xor(m_Specific(X), m_Specific(Y)))) { in foldSelectICmpEq()
1783 if (match(CmpLHS, m_Or(m_Value(X), m_Value(Y)))) { in foldSelectICmpEq()
1784 if (match(TrueVal, m_c_And(m_Specific(X), m_Specific(Y)))) { in foldSelectICmpEq()
1790 } else if (match(TrueVal, m_c_Xor(m_Specific(X), m_Specific(Y)))) { in foldSelectICmpEq()
1801 if (match(CmpLHS, m_Xor(m_Value(X), m_Value(Y)))) { in foldSelectICmpEq()
1802 if ((match(TrueVal, m_c_And(m_Specific(X), m_Specific(Y))))) { in foldSelectICmpEq()
1808 } else if (match(TrueVal, m_c_Or(m_Specific(X), m_Specific(Y)))) { in foldSelectICmpEq()
1869 if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes()) && in foldSelectInstWithICmp()
1870 !match(TrueVal, m_Constant()) && !match(FalseVal, m_Constant()) && in foldSelectInstWithICmp()
1892 match(CmpLHS, m_And(m_Value(X), m_Power2(Y))) && in foldSelectInstWithICmp()
1893 match(CmpRHS, m_Zero())) { in foldSelectInstWithICmp()
1896 } else if (Pred == ICmpInst::ICMP_SLT && match(CmpRHS, m_Zero())) { in foldSelectInstWithICmp()
1901 } else if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes())) { in foldSelectInstWithICmp()
1911 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1915 match(TrueVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1919 match(TrueVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1923 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
2105 if (!match(CondVal, m_ExtractValue<1>(m_WithOverflowInst(II))) || in foldOverflowingAddSubSelect()
2106 !match(FalseVal, m_ExtractValue<0>(m_Specific(II)))) in foldOverflowingAddSubSelect()
2118 if (!match(Limit, m_Select(m_ICmp(Pred, m_Value(Op), m_APInt(C)), in foldOverflowingAddSubSelect()
2126 return match(Min, m_SpecificInt(MinVal)) && in foldOverflowingAddSubSelect()
2127 match(Max, m_SpecificInt(MaxVal)); in foldOverflowingAddSubSelect()
2176 match(TrueVal, m_AllOnes())) in foldOverflowingAddSubSelect()
2180 match(TrueVal, m_Zero())) in foldOverflowingAddSubSelect()
2215 if (!match(Sel.getTrueValue(), m_Constant(C)) && in foldSelectExtConst()
2216 !match(Sel.getFalseValue(), m_Constant(C))) in foldSelectExtConst()
2220 if (!match(Sel.getTrueValue(), m_Instruction(ExtInst)) && in foldSelectExtConst()
2221 !match(Sel.getFalseValue(), m_Instruction(ExtInst))) in foldSelectExtConst()
2262 if (!CondValTy || !match(CondVal, m_Constant(CondC))) in canonicalizeSelectToShuffle()
2305 if (!match(Cond, m_OneUse(m_ExtractElt(m_Value(), m_ConstantInt())))) in canonicalizeScalarSelectOfVecs()
2326 if (!match(Cond, m_Cmp(Pred, m_Value(A), m_Value(B)))) in foldSelectCmpBitcasts()
2335 if (!match(A, m_BitCast(m_Value(C))) || !match(B, m_BitCast(m_Value(D)))) in foldSelectCmpBitcasts()
2340 if (!match(TVal, m_BitCast(m_Value(TSrc))) || in foldSelectCmpBitcasts()
2341 !match(FVal, m_BitCast(m_Value(FSrc)))) in foldSelectCmpBitcasts()
2446 if (!match(Sel.getFalseValue(), m_OneUse(m_Or(m_BinOp(Or0), m_BinOp(Or1))))) in foldSelectFunnelShift()
2450 if (!match(Or0, m_OneUse(m_LogicalShift(m_Value(SV0), in foldSelectFunnelShift()
2452 !match(Or1, m_OneUse(m_LogicalShift(m_Value(SV1), in foldSelectFunnelShift()
2469 if (match(SA1, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(SA0))))) in foldSelectFunnelShift()
2471 else if (match(SA0, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(SA1))))) in foldSelectFunnelShift()
2488 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()))) || in foldSelectFunnelShift()
2519 if (!match(TVal, m_APFloatAllowPoison(TC)) || in foldSelectToCopysign()
2520 !match(FVal, m_APFloatAllowPoison(FC)) || in foldSelectToCopysign()
2530 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_ElementWiseBitCast(m_Value(X)), in foldSelectToCopysign()
2561 if (match(Cond, m_VecReverse(m_Value(C)))) { in foldVectorSelect()
2572 if (match(TVal, m_VecReverse(m_Value(X)))) { in foldVectorSelect()
2574 if (match(FVal, m_VecReverse(m_Value(Y))) && in foldVectorSelect()
2583 else if (isSplatValue(TVal) && match(FVal, m_VecReverse(m_Value(Y))) && in foldVectorSelect()
2605 if (match(TVal, m_OneUse(m_Shuffle(m_Value(X), m_Value(Y), m_Mask(Mask)))) && in foldVectorSelect()
2619 if (match(FVal, m_OneUse(m_Shuffle(m_Value(X), m_Value(Y), m_Mask(Mask)))) && in foldVectorSelect()
2650 if (match(IDom->getTerminator(), in foldSelectToPhiImpl()
2655 } else if (match(IDom->getTerminator(), in foldSelectToPhiImpl()
2730 if (!(match(CondVal, m_ICmp(Pred, m_Value(RemRes), m_APInt(C))) && in foldSelectWithSRem()
2750 if (match(TrueVal, m_Add(m_Specific(RemRes), m_Value(Remainder))) && in foldSelectWithSRem()
2751 match(RemRes, m_SRem(m_Value(Op), m_Specific(Remainder))) && in foldSelectWithSRem()
2760 if (match(TrueVal, m_One()) && in foldSelectWithSRem()
2761 match(RemRes, m_SRem(m_Value(Op), m_SpecificInt(2))) && in foldSelectWithSRem()
2786 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2838 if (!match(CondVal, m_FCmp(Pred, m_Specific(X), m_AnyZeroFP()))) in foldSelectWithFCmpToFabs()
2843 if (match(TrueVal, m_FSub(m_PosZeroFP(), m_Specific(X)))) { in foldSelectWithFCmpToFabs()
2854 if (!match(TrueVal, m_FNeg(m_Specific(X)))) in foldSelectWithFCmpToFabs()
2916 if (!match(CondVal, in foldSelectWithFCmpToFabs()
2920 if (!match(TrueVal, m_FNeg(m_Specific(X)))) in foldSelectWithFCmpToFabs()
2959 if (!match(Cond, m_ICmp(Pred, m_Value(XLowBits), m_ZeroInt())) || in foldRoundUpIntegerWithPow2Alignment()
2969 if (!match(XLowBits, m_And(m_Specific(X), m_APIntAllowPoison(LowBitMaskCst)))) in foldRoundUpIntegerWithPow2Alignment()
2974 if (!match(XBiasedHighBits, in foldRoundUpIntegerWithPow2Alignment()
2977 !match(XBiasedHighBits, in foldRoundUpIntegerWithPow2Alignment()
3027 if (!match( in foldSelectOfSymmetricSelect()
3055 match(&OuterSelVal, in foldNestedSelects()
3060 if (match(OuterSel.Cond, m_Not(m_Value(OuterSel.Cond)))) in foldNestedSelects()
3064 if (!match(OuterSel.Cond, m_c_LogicalOp(m_Value(), m_Value()))) in foldNestedSelects()
3068 bool IsAndVariant = match(OuterSel.Cond, m_LogicalAnd()); in foldNestedSelects()
3078 if (!match(InnerSelVal, in foldNestedSelects()
3084 if (match(InnerSel.Cond, m_Not(m_Value(InnerSel.Cond)))) in foldNestedSelects()
3093 return IsAndVariant ? match(OuterSel.Cond, in foldNestedSelects()
3095 : match(OuterSel.Cond, in foldNestedSelects()
3142 if (match(TrueVal, m_One())) { in foldSelectOfBools()
3148 if (match(CondVal, m_OneUse(m_Select(m_Value(A), m_One(), m_Value(B)))) && in foldSelectOfBools()
3162 if (match(CondVal, m_LogicalAnd(m_Value(A), m_Value(B))) && in foldSelectOfBools()
3163 match(FalseVal, m_LogicalAnd(m_Value(C), m_Value(D))) && in foldSelectOfBools()
3190 if (match(FalseVal, m_Zero())) { in foldSelectOfBools()
3196 if (match(CondVal, m_OneUse(m_Select(m_Value(A), m_Value(B), m_Zero()))) && in foldSelectOfBools()
3210 if (match(CondVal, m_LogicalOr(m_Value(A), m_Value(B))) && in foldSelectOfBools()
3211 match(TrueVal, m_LogicalOr(m_Value(C), m_Value(D))) && in foldSelectOfBools()
3241 if (match(TrueVal, m_Specific(Zero))) { in foldSelectOfBools()
3246 if (match(FalseVal, m_Specific(One))) { in foldSelectOfBools()
3253 if (match(&SI, m_LogicalAnd(m_Not(m_Value(A)), m_Not(m_Value(B)))) && in foldSelectOfBools()
3255 !match(A, m_ConstantExpr()) && !match(B, m_ConstantExpr())) in foldSelectOfBools()
3260 if (match(&SI, m_LogicalOr(m_Not(m_Value(A)), m_Not(m_Value(B)))) && in foldSelectOfBools()
3262 !match(A, m_ConstantExpr()) && !match(B, m_ConstantExpr())) in foldSelectOfBools()
3266 if (match(CondVal, m_Select(m_Value(A), m_One(), m_Value(B))) && in foldSelectOfBools()
3267 match(TrueVal, m_One()) && match(FalseVal, m_Specific(B))) in foldSelectOfBools()
3270 if (match(CondVal, m_Select(m_Value(A), m_Value(B), m_Zero())) && in foldSelectOfBools()
3271 match(TrueVal, m_Specific(B)) && match(FalseVal, m_Zero())) in foldSelectOfBools()
3275 if (match(&SI, m_c_LogicalAnd(m_Not(m_LogicalAnd(m_Value(A), m_Value(B))), in foldSelectOfBools()
3280 if (match(CondVal, in foldSelectOfBools()
3286 if (match(CondVal, m_OneUse(m_c_And(m_Value(C), m_Specific(FalseVal))))) { in foldSelectOfBools()
3293 if (match(CondVal, m_OneUse(m_c_Or(m_Specific(TrueVal), m_Value(C))))) { in foldSelectOfBools()
3300 if (match(CondVal, in foldSelectOfBools()
3306 if (match(FalseVal, m_Zero()) || match(TrueVal, m_One())) { in foldSelectOfBools()
3308 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in foldSelectOfBools()
3327 if (match(CondVal, m_LogicalOr(m_Value(A), m_Value(B))) && in foldSelectOfBools()
3328 match(FalseVal, m_Zero())) { in foldSelectOfBools()
3333 if (match(TrueVal, m_LogicalOr(m_Value(A), m_Value(B))) && in foldSelectOfBools()
3334 match(FalseVal, m_Zero())) { in foldSelectOfBools()
3342 if (match(TrueVal, m_One()) && in foldSelectOfBools()
3343 match(FalseVal, m_LogicalAnd(m_Value(A), m_Value(B)))) { in foldSelectOfBools()
3348 if (match(CondVal, m_LogicalAnd(m_Value(A), m_Value(B))) && in foldSelectOfBools()
3349 match(TrueVal, m_One())) { in foldSelectOfBools()
3355 if (match(TrueVal, m_One())) { in foldSelectOfBools()
3362 if (match(FalseVal, m_c_LogicalAnd(m_Not(m_Value(C)), m_Value(B))) && in foldSelectOfBools()
3363 match(CondVal, m_c_LogicalAnd(m_Specific(C), m_Value(A)))) { in foldSelectOfBools()
3367 match(SelFVal->getTrueValue(), in foldSelectOfBools()
3378 if (match(CondVal, m_c_LogicalAnd(m_Not(m_Value(C)), m_Value(A))) && in foldSelectOfBools()
3379 match(FalseVal, m_c_LogicalAnd(m_Specific(C), m_Value(B)))) { in foldSelectOfBools()
3383 match(SelCond->getTrueValue(), in foldSelectOfBools()
3432 if (match(CtlzOp, m_Add(m_Specific(CommonAncestor), m_APInt(C)))) { in isSafeToRemoveBitCeilSelect()
3436 if (match(CtlzOp, m_Sub(m_APInt(C), m_Specific(CommonAncestor)))) { in isSafeToRemoveBitCeilSelect()
3441 if (match(CtlzOp, m_Not(m_Specific(CommonAncestor)))) { in isSafeToRemoveBitCeilSelect()
3452 } else if (match(Cond0, m_Add(m_Value(CommonAncestor), m_APInt(C)))) { in isSafeToRemoveBitCeilSelect()
3499 if (!match(SI.getCondition(), m_ICmp(Pred, m_Value(Cond0), m_APInt(Cond1)))) in foldBitCeil()
3502 if (match(TrueVal, m_One())) { in foldBitCeil()
3509 if (!match(FalseVal, m_One()) || in foldBitCeil()
3510 !match(TrueVal, in foldBitCeil()
3513 !match(Ctlz, m_Intrinsic<Intrinsic::ctlz>(m_Value(CtlzOp), m_Zero())) || in foldBitCeil()
3545 if (match(Cmp1, m_PosZeroFP()) && in matchFMulByZeroIfResultEqZero()
3546 match(TrueVal, m_c_FMul(m_Specific(Cmp0), m_Value(MulRHS)))) { in matchFMulByZeroIfResultEqZero()
3632 if (match(TrueVal, m_One()) && match(FalseVal, m_Zero())) in visitSelectInst()
3636 if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero())) in visitSelectInst()
3640 if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) { in visitSelectInst()
3646 if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) { in visitSelectInst()
3718 if (match(&SI, m_OrdFMax(m_Value(X), m_Value(Y)))) in visitSelectInst()
3722 if (match(&SI, m_OrdFMin(m_Value(X), m_Value(Y)))) in visitSelectInst()
3896 if (match(TrueVal, m_OneUse(m_BinOp(TrueBO))) && !TrueBO->isIntDivRem()) { in visitSelectInst()
3915 if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) && !FalseBO->isIntDivRem()) { in visitSelectInst()
3933 if (match(CondVal, m_Not(m_Value(NotCond))) && in visitSelectInst()
3985 if (match(FalseVal, m_Zero()) && in visitSelectInst()
3986 (match(TrueVal, m_MaskedLoad(m_Value(), m_Value(), m_Specific(CondVal), in visitSelectInst()
3988 match(TrueVal, m_MaskedGather(m_Value(), m_Value(), m_Specific(CondVal), in visitSelectInst()
3997 if (match(TrueVal, m_Zero()) && in visitSelectInst()
3998 (match(FalseVal, m_MaskedLoad(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
4000 match(FalseVal, m_MaskedGather(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
4009 CanMergeSelectIntoLoad = match(V, m_Zero()); in visitSelectInst()
4058 if (match(CondVal, m_And(m_Value(LHS), m_Value(RHS)))) { in visitSelectInst()
4063 } else if (match(CondVal, m_Or(m_Value(LHS), m_Value(RHS)))) { in visitSelectInst()
4071 if (match(CondVal, m_LogicalAnd(m_Value(LHS), m_Value(RHS)))) { in visitSelectInst()
4074 } else if (match(CondVal, m_LogicalOr(m_Value(LHS), m_Value(RHS)))) { in visitSelectInst()