/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineSelect.cpp | 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() 616 if (!match(Cmp->getOperand(0), m_c_And(m_Specific(X), m_Value(Y)))) in foldSelectICmpAndAnd() 651 !match(TVal, m_Zero()) || !match(FVal, m_Shl(m_Specific(X), m_APInt(C2)))) in foldSelectICmpAndZeroShl() 696 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr() 697 match(CmpLHS, m_Specific(X))) { in foldSelectICmpLshrAshr() 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() 829 match(F, m_OneUse(m_Or(m_Specific(X), m_APInt(C)))) && *NotC == ~(*C)) { in foldSetClearBits() 838 match(T, m_OneUse(m_Or(m_Specific(X), m_APInt(C)))) && *NotC == ~(*C)) { in foldSetClearBits() [all …]
|
H A D | InstCombineAndOrXor.cpp | 733 !match(RHS, m_OneUse(m_c_ICmp(Pred, m_Specific(Op), m_Value(Pow2)))) || in foldAndOrOfICmpsWithPow2AndWithZero() 879 } else if (match(X0, m_Trunc(m_Specific(X1)))) { in foldSignedTruncationCheck() 916 !match(Cmp1, m_ICmp(Pred1, m_Specific(X), m_ZeroInt()))) in foldIsPowerOf2OrZero() 944 match(Cmp1, m_ICmp(Pred1, m_Intrinsic<Intrinsic::ctpop>(m_Specific(X)), in foldIsPowerOf2() 955 match(Cmp1, m_ICmp(Pred1, m_Intrinsic<Intrinsic::ctpop>(m_Specific(X)), in foldIsPowerOf2() 1085 m_c_ICmp(UnsignedPred, m_Specific(ZeroCmpOp), m_Value(A))) && in foldUnsignedUnderflowCheck() 1086 match(ZeroCmpOp, m_c_Add(m_Specific(A), m_Value(B))) && in foldUnsignedUnderflowCheck() 1242 if (!match(Cmp1, m_c_ICmp(Pred1, m_Value(Y), m_Specific(X)))) in foldAndOrOfICmpsWithConstEq() 1600 !match(I.getOperand(0), m_c_Add(m_SExt(m_Specific(Cond)), m_Value(X)))) in canonicalizeConditionalNegationViaMathToSelect() 1879 match(Op1, m_Not(m_c_Or(m_Specific(A), m_Specific(B))))) in foldOrToXor() [all …]
|
H A D | InstCombineAddSub.cpp | 1287 m_SExt(m_ICmp(Pred, m_And(m_Specific(X), m_APInt(MaskC)), in foldAddToAshr() 1371 if (!match(Select, m_Select(m_ICmp(Pred, m_Specific(X), m_APInt(Thr)), in canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract() 1390 m_ZExtOrSelf(m_Specific(NBits))))) in canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract() 1424 !match(Op1, m_Shl(m_Value(Y), m_Specific(ShAmt)))) in factorizeMathWithShlOps() 1477 m_c_Add(m_c_Mul(m_LShr(m_Specific(Y), m_SpecificInt(HalfBits)), in foldBoxMultiply() 1478 m_CombineOr(m_Specific(X), m_Specific(XLo))), in foldBoxMultiply() 1479 m_c_Mul(m_LShr(m_Specific(X), m_SpecificInt(HalfBits)), in foldBoxMultiply() 1480 m_CombineOr(m_Specific(Y), m_Specific(YLo)))))) in foldBoxMultiply() 1566 if (match(LHS, m_OneUse(m_c_Add(m_Value(A), m_Specific(RHS))))) in visitAdd() 1570 if (match(RHS, m_OneUse(m_c_Add(m_Value(A), m_Specific(LHS))))) in visitAdd() [all …]
|
H A D | InstCombineMulDivRem.cpp | 638 match(Op1, m_AllowReassoc(m_Intrinsic<Intrinsic::powi>(m_Specific(X), in foldPowiReassoc() 651 m_Specific(Op1), m_Value(Y))))) && in foldPowiReassoc() 664 match(Op1, m_AllowReassoc(m_c_FMul(m_Specific(X), m_Value(Z)))) && in foldPowiReassoc() 807 match(Op1, m_Intrinsic<Intrinsic::pow>(m_Specific(X), m_Value(Z)))) { in foldFMulReassoc() 814 match(Op1, m_Intrinsic<Intrinsic::pow>(m_Value(Z), m_Specific(Y)))) { in foldFMulReassoc() 844 if (match(Op0, m_OneUse(m_c_FMul(m_Specific(Op1), m_Value(Y)))) && Op1 != Y) { in foldFMulReassoc() 848 if (match(Op1, m_OneUse(m_c_FMul(m_Specific(Op0), m_Value(Y)))) && Op0 != Y) { in foldFMulReassoc() 1095 match(Op0, m_c_Mul(m_Specific(X), m_Value(Y)))) { in foldIDivShl() 1116 match(Op1, m_Shl(m_Value(Y), m_Specific(Z)))) { in foldIDivShl() 1139 match(Op1, m_Shl(m_Specific(X), m_Value(Z)))) { in foldIDivShl() [all …]
|
H A D | InstCombineShifts.cpp | 977 if (match(I.getOperand(0), m_Shl(m_Value(), m_Specific(I.getOperand(1))))) { in setShiftFlags() 1054 if (match(Op0, m_Shr(m_Value(X), m_Specific(Op1)))) { in visitShl() 1162 (match(Y, m_Shr(m_Value(), m_Specific(Op1))) || in visitShl() 1163 match(Y, m_And(m_OneUse(m_Shr(m_Value(), m_Specific(Op1))), in visitShl() 1168 if (match(Shr, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 1182 m_OneUse(m_And(m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))), in visitShl() 1211 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 1218 if (match(Op0, m_LShr(m_AllOnes(), m_Specific(Op1)))) { in visitShl() 1281 match(Op0, m_OneUse(m_NUWSub(m_NUWShl(m_Value(X), m_Specific(Op1)), in visitLShr() 1299 m_NUWShl(m_Value(Y), m_Specific(Op1)))))) { in visitLShr() [all …]
|
H A D | InstCombineCompares.cpp | 1390 m_ICmp(DomPred, m_Specific(X), m_APInt(DomC)))) in foldICmpWithDominatingICmp() 1825 match(LShr, m_LShr(m_Specific(A), m_Value(B)))) { in foldICmpAndConstConst() 1886 match(And->getOperand(1), m_Not(m_Specific(X)))) { in foldICmpAndConstant() 4350 if (match(Op0, m_c_And(m_Specific(Op1), m_Value(M)))) { in foldICmpWithLowBitMaskedVal() 4774 if (match(Op1, m_c_And(m_Specific(Op0), m_Value()))) { in foldICmpAndXX() 4779 if (!match(Op0, m_c_And(m_Specific(Op1), m_Value(A)))) in foldICmpAndXX() 4837 if (match(Op1, m_c_Or(m_Specific(Op0), m_Value(A)))) { in foldICmpOrXX() 4840 } else if (!match(Op0, m_c_Or(m_Specific(Op1), m_Value(A)))) { in foldICmpOrXX() 4871 if (match(Op1, m_c_Xor(m_Specific(Op0), m_Value()))) { in foldICmpXorXX() 4875 if (!match(Op0, m_c_Xor(m_Specific(Op1), m_Value(A)))) in foldICmpXorXX() [all …]
|
H A D | InstCombineNegator.cpp | 340 if (match(TV, m_Neg(m_Specific(FV)))) in visitImpl() 342 else if (match(FV, m_Neg(m_Specific(TV)))) in visitImpl()
|
H A D | InstructionCombining.cpp | 942 if (!match(ShiftedX, m_OneUse(m_Shift(m_Value(X), m_Specific(Shift))))) in foldBinOpShiftWithShift() 1073 if (match(A, m_Not(m_Specific(CondVal)))) { in foldBinOpOfSelectAndCastOfSelectCondition() 1660 m_ICmp(Pred, m_Specific(Op), m_Constant(C))) && in constantFoldOperationIntoSelectOperand() 2103 m_Shuffle(m_Specific(V2), m_Specific(V1), m_SpecificMask(Mask)))) { in foldVectorBinop() 2928 m_Sub(m_PtrToInt(m_Value(Y)), m_PtrToInt(m_Specific(X)))) && in visitGetElementPtrInst() 3406 m_CombineOr(m_Specific(Op), in tryToMoveFreeBeforeNullTest() 3407 m_Specific(Op->stripPointerCasts())), in tryToMoveFreeBeforeNullTest() 3730 m_ICmp(Pred, m_Specific(X), m_APInt(RHSC)))) in simplifySwitchOnSelectUsingRanges() 4602 else if (match(U, m_BitCast(m_Specific(V))) && isUsedWithinShuffleVector(U)) in isUsedWithinShuffleVector() 4645 else if (match(U, m_Select(m_Specific(&I), m_Constant(), m_Value()))) in visitFreeze()
|
H A D | InstCombineVectorOps.cpp | 1306 if (!match(Op0, m_InsertElt(m_Undef(), m_Specific(X), m_ZeroInt()))) in foldInsEltIntoSplat() 1345 if (!match(Scalar, m_ExtractElt(m_Specific(X), m_SpecificInt(IdxC)))) in foldInsEltIntoIdentityShuffle() 1581 !match(Scalar0, m_Trunc(m_LShr(m_Specific(X), m_ConstantInt(ShAmt))))) in foldTruncInsEltPair() 1585 !match(ScalarOp, m_Trunc(m_LShr(m_Specific(X), m_ConstantInt(ShAmt))))) in foldTruncInsEltPair() 2155 if (match(Op0, m_BinOp(m_Specific(Op1), m_Constant(C)))) in foldSelectShuffleWith1Binop() 2157 else if (match(Op1, m_BinOp(m_Specific(Op0), m_Constant(C)))) in foldSelectShuffleWith1Binop()
|
H A D | InstCombineSimplifyDemanded.cpp | 1904 auto Shuf = m_Shuffle(m_Specific(ShufOp), m_Value(), m_Mask(Mask)); in SimplifyDemandedVectorElts() 1906 ? match(U, m_c_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1908 ? match(U, m_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1909 : match(U, m_BinOp(Opcode, m_Specific(OtherOp), Shuf))) in SimplifyDemandedVectorElts()
|
H A D | InstCombinePHI.cpp | 1395 if (match(V2, m_c_BinOp(m_Specific(V1), m_BinOp(Iv2Next))) || in foldDependentIVs() 1396 match(V2, m_GEP(m_Specific(V1), m_BinOp(Iv2Next)))) { in foldDependentIVs() 1522 if (U->hasOneUse() && match(U, m_c_Or(m_Specific(&PN), m_Value()))) { in visitPHINode()
|
H A D | InstCombineCasts.cpp | 486 if (match(R, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(L))))) in narrowFunnelShift() 499 match(R, m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask)))) in narrowFunnelShift() 504 match(R, m_ZExt(m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask))))) in narrowFunnelShift() 1243 match(And, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Specific(C)))) && in visitZExt() 1280 match(Zext.user_back(), m_Shift(m_Value(), m_Specific(&Zext)))) { in visitZExt()
|
H A D | InstCombineCalls.cpp | 509 match(II.user_back(), m_Shift(m_Value(), m_Specific(&II)))) { in foldCttzCtlz() 1792 if ((match(I0, m_c_Xor(m_Specific(I1), m_Value(X))) || in visitCallInst() 1793 match(I1, m_c_Xor(m_Specific(I0), m_Value(X)))) && in visitCallInst() 2397 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_Specific(X))) in visitCallInst() 2494 match(Src1, m_FAbs(m_Specific(X)))) { in visitCallInst() 2584 if (match(TVal, m_FNeg(m_Specific(FVal)))) in visitCallInst() 2587 if (match(FVal, m_FNeg(m_Specific(TVal)))) in visitCallInst() 3007 if (match(Next, m_Intrinsic<Intrinsic::assume>(m_Specific(IIOperand)))) in visitCallInst()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | InstructionSimplify.cpp | 113 if (!match(Cond, m_c_BinOp(m_c_ICmp(Pred1, m_Specific(TrueVal), in foldSelectWithBinaryOp() 114 m_Specific(FalseVal)), in foldSelectWithBinaryOp() 660 if (match(Op1, m_Sub(m_Value(Y), m_Specific(Op0))) || in simplifyAddInst() 661 match(Op0, m_Sub(m_Value(Y), m_Specific(Op1)))) in simplifyAddInst() 666 if (match(Op0, m_Not(m_Specific(Op1))) || match(Op1, m_Not(m_Specific(Op0)))) in simplifyAddInst() 952 m_Exact(m_IDiv(m_Value(X), m_Specific(Op1)))) || // (X / Y) * Y in simplifyMulInst() 953 match(Op1, m_Exact(m_IDiv(m_Value(X), m_Specific(Op0)))))) // Y * (X / Y) in simplifyMulInst() 1020 if (match(X, m_SRem(m_Value(), m_Specific(Y)))) in isDivZero() 1151 if (match(Op0, m_c_Mul(m_Value(X), m_Specific(Op1)))) { in simplifyDivRem() 1157 (IsSigned && match(X, m_SDiv(m_Value(), m_Specific(Op1)))) || in simplifyDivRem() [all …]
|
H A D | ValueTracking.cpp | 197 match(RHS, m_c_And(m_Specific(M), m_Value())) && in haveNoCommonBitsSetSpecialCases() 203 if (match(RHS, m_c_And(m_Not(m_Specific(LHS)), m_Value())) && in haveNoCommonBitsSetSpecialCases() 211 m_c_Xor(m_c_And(m_Specific(LHS), m_Value(Y)), m_Deferred(Y))) && in haveNoCommonBitsSetSpecialCases() 219 match(RHS, m_ZExtOrSExt(m_Not(m_Specific(Y)))) && in haveNoCommonBitsSetSpecialCases() 227 match(RHS, m_Not(m_c_Or(m_Specific(A), m_Specific(B)))) && in haveNoCommonBitsSetSpecialCases() 614 auto m_V = m_CombineOr(m_Specific(V), m_PtrToInt(m_Specific(V))); in isKnownNonZeroFromAssume() 652 m_CombineOr(m_Specific(V), m_PtrToIntSameSize(Q.DL, m_Specific(V))); in computeKnownBitsFromCmp() 746 if (match(LHS, m_Trunc(m_Specific(V)))) { in computeKnownBitsFromICmpCond() 846 if (match(Arg, m_Not(m_Specific(V))) && in computeKnownBitsFromContext() 1569 m_Br(m_c_ICmp(Pred, m_Specific(IncValue), m_APInt(RHSC)), in computeKnownBitsFromOperator() [all …]
|
H A D | LazyValueInfo.cpp | 1091 if (match(LHS, m_AddLike(m_Specific(Val), m_APInt(C)))) { in matchICmpOperand() 1098 if (match(Val, m_AddLike(m_Specific(LHS), m_APInt(C)))) { in matchICmpOperand() 1104 if (match(LHS, m_c_Or(m_Specific(Val), m_Value())) && in matchICmpOperand() 1109 if (match(LHS, m_c_And(m_Specific(Val), m_Value())) && in matchICmpOperand() 1194 if (match(LHS, m_And(m_Specific(Val), m_APInt(Mask))) && in getValueFromICmpCondition() 1214 if (match(LHS, m_CombineOr(m_URem(m_Specific(Val), m_Value()), in getValueFromICmpCondition() 1215 m_Trunc(m_Specific(Val)))) && in getValueFromICmpCondition() 1229 match(LHS, m_AShr(m_Specific(Val), m_APInt(ShAmtC))) && in getValueFromICmpCondition()
|
H A D | AssumeBundleQueries.cpp | 137 m_Intrinsic<Intrinsic::assume>(m_Unless(m_Specific(U->get()))))) in getBundleFromUse()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPULowerKernelAttributes.cpp | 229 if (match(ICmp, m_ICmp(Pred, GroupIDIntrin, m_Specific(BlockCount)))) { in processUse() 284 m_UMin(m_Sub(m_Specific(GridSize), in processUse() 285 m_Mul(GroupIDIntrin, m_Specific(ZextGroupSize))), in processUse() 286 m_Specific(ZextGroupSize)))) { in processUse()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LoopFlatten.cpp | 204 bool IsAdd = match(U, m_c_Add(m_Specific(InnerInductionPHI), in matchLinearIVUser() 206 match(MatchedMul, m_c_Mul(m_Specific(OuterInductionPHI), in matchLinearIVUser() 212 match(U, m_c_Add(m_Trunc(m_Specific(InnerInductionPHI)), in matchLinearIVUser() 214 match(MatchedMul, m_c_Mul(m_Trunc(m_Specific(OuterInductionPHI)), in matchLinearIVUser() 219 m_Specific(InnerInductionPHI))) && in matchLinearIVUser() 220 match(MatchedMul, m_c_Mul(m_Specific(OuterInductionPHI), in matchLinearIVUser() 588 if (match(&I, m_c_Mul(m_Specific(FI.OuterInductionPHI), in checkOuterLoopInsts() 589 m_Specific(FI.InnerTripCount)))) in checkOuterLoopInsts()
|
H A D | EarlyCSE.cpp | 197 if (!match(Cond, m_ICmp(Pred, m_Specific(A), m_Specific(B)))) { in matchSelectWithOptionalNotCond() 201 if (!match(Cond, m_ICmp(Pred, m_Specific(B), m_Specific(A)))) in matchSelectWithOptionalNotCond() 457 match(CondR, m_Cmp(PredR, m_Specific(X), m_Specific(Y))) && in isEqualImpl()
|
H A D | DivRemPairs.cpp | 60 m_c_Mul(m_CombineAnd(m_IDiv(m_Specific(Dividend), m_Value(Divisor)), in matchExpandedRem()
|
/freebsd/contrib/llvm-project/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_c_Xor(m_Specific(SelI), m_Value(R)))) in matchLeftShift() 784 if (!match(T, m_Shl(m_Value(Q), m_Specific(CIV))) && in matchLeftShift() 785 !match(T, m_Shl(m_ZExt(m_Value(Q)), m_ZExt(m_Specific(CIV))))) in matchLeftShift() 844 if (!match(FalseV, m_c_Xor(m_Specific(TrueV), m_Value(Q)))) in matchRightShift() 854 if (!match(TrueV, m_c_Xor(m_Specific(FalseV), m_Value(Q)))) in matchRightShift()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | LoopIdiomVectorize.cpp | 257 !match(Index, m_c_Add(m_Specific(PN), m_One()))) in recognizeByteCompare() 275 m_Br(m_ICmp(Pred, m_Specific(Index), m_Value(MaxLen)), in recognizeByteCompare() 324 if (IdxA != IdxB || !match(IdxA, m_ZExt(m_Specific(Index)))) in recognizeByteCompare()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | SelectOptimize.cpp | 670 if (match(&*DIt, m_Not(m_Specific(SI.getCondition())))) in convertProfitableSIGroups() 799 if (match(NI, m_Not(m_Specific(SI.getCondition())))) { in collectSelectGroups() 813 m_Not(m_Specific(SI.getCondition())))) { in collectSelectGroups()
|
H A D | CodeGenPrepare.cpp | 1653 if (match(U, m_Add(m_Specific(A), m_Specific(B)))) { in matchUAddWithOverflowConstantEdgeCases() 1730 if (match(U, m_Sub(m_Specific(A), m_Specific(B)))) { in combineToUSubWithOverflow() 1737 if (match(U, m_Add(m_Specific(A), m_APInt(AddC))) && in combineToUSubWithOverflow() 1883 if (!match(DomCond, m_ICmp(DomPred, m_Specific(CmpOp0), m_Specific(CmpOp1)))) in foldICmpWithDominatingICmp() 1931 if (match(U, m_Sub(m_Specific(Op1), m_Specific(Op0)))) in swapICmpOperandsToExposeCSEOpportunities() 1933 else if (match(U, m_Sub(m_Specific(Op0), m_Specific(Op1)))) in swapICmpOperandsToExposeCSEOpportunities() 8267 match(UI, m_Shr(m_Specific(X), m_SpecificInt(CmpC.logBase2())))) { in optimizeBranch() 8280 (match(UI, m_Add(m_Specific(X), m_SpecificInt(-CmpC))) || in optimizeBranch() 8281 match(UI, m_Sub(m_Specific(X), m_SpecificInt(CmpC))))) { in optimizeBranch()
|