| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAndOrXor.cpp | 1625 if (matchNotOrAnd(Op1, m_Specific(A), m_Specific(C), m_Specific(B), Dummy, in foldComplexAndOrPatterns() 1635 if (matchNotOrAnd(Op1, m_Specific(B), m_Specific(C), m_Specific(A), Dummy, in foldComplexAndOrPatterns() 2050 if (match(Op1, m_Xor(m_Specific(B), m_Specific(A)))) in visitAnd() 2059 match(Op0, m_c_Or(m_Specific(A), m_Specific(B)))) in visitAnd() 2067 match(Op1, m_c_Or(m_Specific(A), m_Specific(B)))) in visitAnd() 2075 match(Op1, m_c_Xor(m_Specific(A), m_Specific(B)))) in visitAnd() 2083 match(Op0, m_c_Xor(m_Specific(A), m_Specific(B)))) in visitAnd() 2864 if (match(Op1, m_Xor(m_Specific(B), m_Specific(A)))) in visitOr() 2899 match(Op0, m_And(m_Specific(B), m_Specific(A)))) in visitOr() 3800 match(Op1, m_c_Xor(m_Specific(A), m_Specific(B)))) in visitXor() [all …]
|
| H A D | InstCombineSelect.cpp | 576 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr() 577 match(CmpLHS, m_Specific(X))) { in foldSelectICmpLshrAshr() 810 if (match(TrueVal, m_Sub(m_Specific(B), m_Specific(A))) || in canonicalizeSaturatedSubtract() 814 else if (!match(TrueVal, m_Sub(m_Specific(A), m_Specific(B))) && in canonicalizeSaturatedSubtract() 882 if (match(FVal, m_c_Add(m_Not(m_Specific(X)), m_Specific(Y)))) { in canonicalizeSaturatedAdd() 893 match(FVal, m_c_Add(m_Specific(Cmp1), m_Specific(Y)))) { in canonicalizeSaturatedAdd() 929 if (!match(II->getOperand(0), m_c_And(m_Specific(X), m_Neg(m_Specific(X))))) in foldSelectCtlzToCttz() 1335 m_Add(m_Specific(X), in canonicalizeClampLike() 1346 m_ICmp(Pred1, m_Specific(X), in canonicalizeClampLike() 2457 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp() [all …]
|
| H A D | InstCombineAddSub.cpp | 1767 if (match(Op0, m_c_Add(m_Specific(X), m_Specific(Y))) && in foldSubOfMinMax() 1872 m_Select(m_Value(), m_Specific(Op1), m_Specific(&I))) || in visitSub() 1873 match(UI, m_Select(m_Value(), m_Specific(&I), m_Specific(Op1))); in visitSub() 1993 match(Op0, m_c_Or(m_Specific(A), m_Specific(B)))) in visitSub() 2001 match(Op1, m_c_Or(m_Specific(A), m_Specific(B)))) in visitSub() 2009 match(Op1, m_c_And(m_Specific(A), m_Specific(B)))) in visitSub() 2017 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && in visitSub() 2026 match(Op0, m_c_Or(m_Specific(A), m_Specific(B)))) in visitSub() 2034 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && in visitSub() 2050 if (match(Op0, m_OneUse(m_c_And(m_Specific(Op1), in visitSub() [all …]
|
| H A D | InstCombineMulDivRem.cpp | 642 if (match(Op0, m_OneUse(m_c_FMul(m_Specific(Op1), m_Value(Y)))) && in visitFMul() 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() 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() [all …]
|
| H A D | InstCombineShifts.cpp | 864 if (match(Op0, m_Shr(m_Value(X), m_Specific(Op1)))) { in visitShl() 972 (match(Y, m_Shr(m_Value(), m_Specific(Op1))) || in visitShl() 973 match(Y, m_And(m_OneUse(m_Shr(m_Value(), m_Specific(Op1))), in visitShl() 978 if (match(Shr, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 992 m_OneUse(m_And(m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))), in visitShl() 1028 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 1135 m_OneUse(m_c_Add(m_OneUse(m_Shl(m_Value(X), m_Specific(Op1))), in visitLShr() 1289 if (match(Op0, m_OneUse(m_Shl(m_Value(X), m_Specific(Op1))))) { in visitLShr() 1340 m_Sub(m_Constant(C0), m_ZExtOrSelf(m_Specific(NBits))))) || in foldVariableSignZeroExtensionOfVariableHighBitExtract() 1389 if (match(Op0, m_Shl(m_ZExt(m_Value(X)), m_Specific(Op1))) && in visitAShr()
|
| H A D | InstCombineCompares.cpp | 1832 match(LShr, m_LShr(m_Specific(A), m_Value(B)))) { in foldICmpAndConstConst() 4480 auto LSubOne = m_Add(m_Specific(Op1), m_AllOnes()); in foldICmpBinOp() 4511 if (match(X, m_c_SMin(m_Specific(Op0), m_Value())) || in foldICmpWithMinMax() 4512 match(X, m_c_SMax(m_Specific(Op0), m_Value())) || in foldICmpWithMinMax() 4513 match(X, m_c_UMin(m_Specific(Op0), m_Value())) || in foldICmpWithMinMax() 4514 match(X, m_c_UMax(m_Specific(Op0), m_Value()))) { in foldICmpWithMinMax() 4759 if (match(Op0, m_OneUse(m_c_And(m_Neg(m_Specific(Op1)), m_Specific(Op1))))) in foldICmpEquality() 4762 m_OneUse(m_c_And(m_Neg(m_Specific(Op0)), m_Specific(Op0))))) in foldICmpEquality() 5358 if (match(U, m_Sub(m_Specific(Op1), m_Specific(Op0)))) in swapMayExposeCSEOpportunities() 5360 else if (match(U, m_Sub(m_Specific(Op0), m_Specific(Op1)))) in swapMayExposeCSEOpportunities() [all …]
|
| H A D | InstCombineLoadStoreAlloca.cpp | 554 return (match(L1, m_Load(m_Specific(LHS))) && in isMinMaxWithLoads() 555 match(L2, m_Load(m_Specific(RHS)))) || in isMinMaxWithLoads() 556 (match(L1, m_Load(m_Specific(RHS))) && in isMinMaxWithLoads() 557 match(L2, m_Load(m_Specific(LHS)))); in isMinMaxWithLoads()
|
| H A D | InstructionCombining.cpp | 1728 m_Shuffle(m_Specific(V2), m_Specific(V1), m_SpecificMask(Mask)))) { in foldVectorBinop() 2477 match(V, m_Sub(m_PtrToInt(m_Value(Y)), m_PtrToInt(m_Specific(X)))) && in visitGetElementPtrInst() 2992 m_CombineOr(m_Specific(Op), in tryToMoveFreeBeforeNullTest() 2993 m_Specific(Op->stripPointerCasts())), in tryToMoveFreeBeforeNullTest() 3952 else if (match(U, m_Select(m_Specific(&I), m_Constant(), m_Value()))) in visitFreeze()
|
| H A D | InstCombineVectorOps.cpp | 1263 if (!match(Op0, m_InsertElt(m_Undef(), m_Specific(X), m_ZeroInt()))) in foldInsEltIntoSplat() 1302 if (!match(Scalar, m_ExtractElt(m_Specific(X), m_SpecificInt(IdxC)))) in foldInsEltIntoIdentityShuffle() 1968 if (match(Op0, m_BinOp(m_Specific(Op1), m_Constant(C)))) in foldSelectShuffleWith1Binop() 1970 else if (match(Op1, m_BinOp(m_Specific(Op0), m_Constant(C)))) in foldSelectShuffleWith1Binop()
|
| H A D | InstCombineCasts.cpp | 585 if (match(R, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(L))))) in narrowFunnelShift() 598 match(R, m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask)))) in narrowFunnelShift() 603 match(R, m_ZExt(m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask))))) in narrowFunnelShift() 1338 match(And, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Specific(C)))) && in visitZExt()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | InstructionSimplify.cpp | 2259 match(Y, m_c_Or(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2265 match(Y, m_c_Or(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2273 match(Y, m_c_Xor(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2281 match(Y, m_c_And(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2289 match(Y, m_c_Xor(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2308 match(Y, m_c_And(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2315 match(Y, m_c_Xor(m_Specific(A), m_Specific(B)))) in simplifyOrLogic() 2375 match(Op1, m_Shl(m_Specific(X), m_Specific(Y)))) in simplifyOrInst() 2379 match(Op0, m_Shl(m_Specific(X), m_Specific(Y)))) in simplifyOrInst() 2386 match(Op1, m_LShr(m_Specific(X), m_Specific(Y)))) in simplifyOrInst() [all …]
|
| H A D | ValueTracking.cpp | 303 match(RHS, m_Not(m_c_Or(m_Specific(A), m_Specific(B))))) in haveNoCommonBitsSet() 306 match(LHS, m_Not(m_c_Or(m_Specific(A), m_Specific(B))))) in haveNoCommonBitsSet() 664 auto m_V = m_CombineOr(m_Specific(V), m_PtrToInt(m_Specific(V))); in isKnownNonZeroFromAssume() 717 if (match(Arg, m_Not(m_Specific(V))) && in computeKnownBitsFromAssume() 743 auto m_V = m_CombineOr(m_Specific(V), m_PtrToInt(m_Specific(V))); in computeKnownBitsFromAssume() 1186 if (match(RHS, m_Neg(m_Specific(LHS))) && in computeKnownBitsFromOperator() 2150 if (match(X, m_Neg(m_Specific(Y))) || match(Y, m_Neg(m_Specific(X)))) in isKnownToBeAPowerOfTwo() 6050 match(Y, m_Sub(m_Specific(B), m_Specific(A))))) || in isKnownNegation() 6052 match(Y, m_NSWSub(m_Specific(B), m_Specific(A))))); in isKnownNegation() 6179 m_CombineOr(m_Specific(CmpLHS), m_SExt(m_Specific(CmpLHS))); in matchSelectPattern() [all …]
|
| H A D | LazyValueInfo.cpp | 1033 if (match(LHS, m_Add(m_Specific(Val), m_APInt(C)))) { in matchICmpOperand() 1040 if (match(Val, m_Add(m_Specific(LHS), m_APInt(C)))) { in matchICmpOperand() 1046 if (match(LHS, m_c_Or(m_Specific(Val), m_Value())) && in matchICmpOperand() 1051 if (match(LHS, m_c_And(m_Specific(Val), m_Value())) && in matchICmpOperand() 1106 if (match(LHS, m_And(m_Specific(Val), m_APInt(Mask))) && in getValueFromICmpCondition() 1129 if (match(LHS, m_CombineOr(m_URem(m_Specific(Val), m_Value()), in getValueFromICmpCondition() 1130 m_Trunc(m_Specific(Val)))) && in getValueFromICmpCondition()
|
| H A D | AssumeBundleQueries.cpp | 134 m_Intrinsic<Intrinsic::assume>(m_Unless(m_Specific(U->get()))))) in getBundleFromUse()
|
| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | PatternMatch.cpp | 1657 EXPECT_TRUE(match(And, m_LogicalAnd(m_Specific(X), m_Specific(Y)))); in TEST_F() 1661 EXPECT_FALSE(match(And, m_LogicalAnd(m_Specific(Y), m_Specific(X)))); in TEST_F() 1663 EXPECT_FALSE(match(And, m_LogicalAnd(m_Specific(X), m_Specific(X)))); in TEST_F() 1664 EXPECT_FALSE(match(And, m_LogicalAnd(m_Specific(Y), m_Specific(Y)))); in TEST_F() 1688 EXPECT_TRUE(match(Or, m_LogicalOr(m_Specific(X), m_Specific(Y)))); in TEST_F() 1692 EXPECT_FALSE(match(Or, m_LogicalOr(m_Specific(Y), m_Specific(X)))); in TEST_F() 1694 EXPECT_FALSE(match(Or, m_LogicalOr(m_Specific(X), m_Specific(X)))); in TEST_F() 1695 EXPECT_FALSE(match(Or, m_LogicalOr(m_Specific(Y), m_Specific(Y)))); in TEST_F() 1700 EXPECT_TRUE(match(Or, m_c_LogicalOr(m_Specific(X), m_Specific(Y)))); in TEST_F() 1704 EXPECT_TRUE(match(Or, m_c_LogicalOr(m_Specific(Y), m_Specific(X)))); in TEST_F() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPULowerKernelAttributes.cpp | 179 m_UMin(m_Sub(m_Specific(GridSize), in processUse() 180 m_Mul(GroupIDIntrin, m_Specific(ZextGroupSize))), in processUse() 181 m_Specific(ZextGroupSize)))) { in processUse()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | LoopFlatten.cpp | 198 bool IsAdd = match(U, m_c_Add(m_Specific(InnerInductionPHI), in matchLinearIVUser() 200 match(MatchedMul, m_c_Mul(m_Specific(OuterInductionPHI), in matchLinearIVUser() 206 match(U, m_c_Add(m_Trunc(m_Specific(InnerInductionPHI)), in matchLinearIVUser() 208 match(MatchedMul, m_c_Mul(m_Trunc(m_Specific(OuterInductionPHI)), in matchLinearIVUser() 551 if (match(&I, m_c_Mul(m_Specific(FI.OuterInductionPHI), in checkOuterLoopInsts() 552 m_Specific(FI.InnerTripCount)))) in checkOuterLoopInsts()
|
| H A D | EarlyCSE.cpp | 180 if (!match(Cond, m_ICmp(Pred, m_Specific(A), m_Specific(B)))) { in matchSelectWithOptionalNotCond() 184 if (!match(Cond, m_ICmp(Pred, m_Specific(B), m_Specific(A)))) in matchSelectWithOptionalNotCond() 414 match(CondR, m_Cmp(PredR, m_Specific(X), m_Specific(Y))) && in isEqualImpl()
|
| H A D | DivRemPairs.cpp | 62 m_c_Mul(m_CombineAnd(m_IDiv(m_Specific(Dividend), m_Value(Divisor)), in matchExpandedRem()
|
| H A D | GuardWidening.cpp | 513 match(Cond1, m_ICmp(Pred1, m_Specific(LHS), m_ConstantInt(RHS1)))) { in widenCondCommon()
|
| /llvm-project-15.0.7/llvm/lib/Target/Hexagon/ |
| H A D | HexagonLoopIdiomRecognition.cpp | 711 if (match(A, m_Shl(m_One(), m_Specific(CIV)))) { in matchLeftShift() 714 } else if (match(B, m_Shl(m_One(), m_Specific(CIV)))) { in matchLeftShift() 773 if (!match(U, m_Xor(m_Specific(SelI), m_Value(R))) && in matchLeftShift() 774 !match(U, m_Xor(m_Value(R), m_Specific(SelI)))) in matchLeftShift() 785 if (!match(T, m_Shl(m_Value(Q), m_Specific(CIV))) && in matchLeftShift() 786 !match(T, m_Shl(m_ZExt(m_Value(Q)), m_ZExt(m_Specific(CIV))))) in matchLeftShift() 848 if (!match(FalseV, m_Xor(m_Specific(TrueV), m_Value(Q))) && in matchRightShift() 849 !match(FalseV, m_Xor(m_Value(Q), m_Specific(TrueV)))) in matchRightShift() 859 if (!match(TrueV, m_Xor(m_Specific(FalseV), m_Value(Q))) && in matchRightShift() 860 !match(TrueV, m_Xor(m_Value(Q), m_Specific(FalseV)))) in matchRightShift()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/AggressiveInstCombine/ |
| H A D | AggressiveInstCombine.cpp | 160 if (!match(TermI, m_Br(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()), in foldGuardedFunnelShift() 353 match(SubOp1, m_And(m_LShr(m_Specific(Root), m_SpecificInt(1)), in tryToRecognizePopCount()
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | CodeGenPrepare.cpp | 1476 if (match(U, m_Add(m_Specific(A), m_Specific(B)))) { in matchUAddWithOverflowConstantEdgeCases() 1551 if (match(U, m_Sub(m_Specific(A), m_Specific(B)))) { in combineToUSubWithOverflow() 1558 if (match(U, m_Add(m_Specific(A), m_APInt(AddC))) && in combineToUSubWithOverflow() 1704 if (!match(DomCond, m_ICmp(DomPred, m_Specific(CmpOp0), m_Specific(CmpOp1)))) in foldICmpWithDominatingICmp() 7863 match(UI, m_Shr(m_Specific(X), m_SpecificInt(CmpC.logBase2())))) { in optimizeBranch() 7875 (match(UI, m_Add(m_Specific(X), m_SpecificInt(-CmpC))) || in optimizeBranch() 7876 match(UI, m_Sub(m_Specific(X), m_SpecificInt(CmpC))))) { in optimizeBranch()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | SimplifyIndVar.cpp | 797 m_AShr(m_Shl(m_Value(), m_Specific(IVOperand)), m_APInt(C))) || in strengthenRightShift() 799 m_LShr(m_Shl(m_Value(), m_Specific(IVOperand)), m_APInt(C)))) { in strengthenRightShift() 1999 if (!match(Condition, m_ICmp(Pred, m_Specific(NarrowDefLHS), in calculatePostIncRange()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VectorCombine.cpp | 607 if (match(U, m_Select(m_Specific(&I), m_Value(), m_Value()))) in scalarizeBinopOrCmp() 739 !match(I1, m_OneUse(m_ExtractElt(m_Specific(X), m_ConstantInt(Index1))))) in foldExtractedCmps()
|