| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAndOrXor.cpp | 740 if (match(Cmp1Op0, m_SExtOrSelf(m_Specific(Input)))) { in simplifyRangeCheck() 744 } else if (match(Cmp1Op1, m_SExtOrSelf(m_Specific(Input)))) { in simplifyRangeCheck() 801 !match(RHS, m_OneUse(m_c_ICmp(Pred, m_Specific(Op), m_Value(Pow2)))) || in foldAndOrOfICmpsWithPow2AndWithZero() 904 } else if (match(X0, m_Trunc(m_Specific(X1)))) { in foldSignedTruncationCheck() 943 !match(Cmp1, m_ICmp(Pred1, m_Specific(X), m_ZeroInt()))) in foldIsPowerOf2OrZero() 980 m_Intrinsic<Intrinsic::ctpop>(m_Specific(X)), in foldIsPowerOf2() 992 m_Intrinsic<Intrinsic::ctpop>(m_Specific(X)), in foldIsPowerOf2() 1120 m_c_ICmp(UnsignedPred, m_Specific(ZeroCmpOp), m_Value(A))) && in foldUnsignedUnderflowCheck() 1121 match(ZeroCmpOp, m_c_Add(m_Specific(A), m_Value(B))) && in foldUnsignedUnderflowCheck() 1290 if (!match(Cmp1, m_c_ICmp(Pred1, m_Value(Y), m_Specific(X)))) in foldAndOrOfICmpsWithConstEq() [all …]
|
| H A D | InstCombineSelect.cpp | 94 if (!BO->isCommutative() && !match(BO, m_BinOp(m_Value(Y), m_Specific(X)))) in foldSelectBinOpIdentity() 96 if (!match(BO, m_c_BinOp(m_Value(Y), m_Specific(X)))) in foldSelectBinOpIdentity() 594 match(FVal, m_NSWAdd(m_Specific(CmpRHS), m_One()))) { in foldSelectICmpMinMax() 600 match(FVal, m_NSWAdd(m_Specific(CmpRHS), m_AllOnes()))) { in foldSelectICmpMinMax() 606 match(FVal, m_NUWAdd(m_Specific(CmpRHS), m_One()))) { in foldSelectICmpMinMax() 614 match(FVal, m_Add(m_Specific(CmpRHS), m_AllOnes())) && in foldSelectICmpMinMax() 662 if (!match(Cmp->getOperand(0), m_c_And(m_Specific(X), m_Value(Y)))) in foldSelectICmpAndAnd() 697 !match(TVal, m_Zero()) || !match(FVal, m_Shl(m_Specific(X), m_APInt(C2)))) in foldSelectICmpAndZeroShl() 742 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr() 743 match(CmpLHS, m_Specific(X))) { in foldSelectICmpLshrAshr() [all …]
|
| H A D | InstCombineAddSub.cpp | 1296 m_SExt(m_ICmp(Pred, m_And(m_Specific(X), m_APInt(MaskC)), in foldAddToAshr() 1320 match(RHS, m_Sub(m_Value(C), m_Specific(A)))) { in foldAddLikeCommutative() 1334 if (match(LHS, m_Shl(m_SDiv(m_Specific(RHS), m_APInt(C1)), m_APInt(C2)))) { in foldAddLikeCommutative() 1406 if (!match(Select, m_Select(m_ICmp(Pred, m_Specific(X), m_APInt(Thr)), in canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract() 1425 m_ZExtOrSelf(m_Specific(NBits))))) in canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract() 1459 !match(Op1, m_Shl(m_Value(Y), m_Specific(ShAmt)))) in factorizeMathWithShlOps() 1512 m_c_Add(m_c_Mul(m_LShr(m_Specific(Y), m_SpecificInt(HalfBits)), in foldBoxMultiply() 1513 m_CombineOr(m_Specific(X), m_Specific(XLo))), in foldBoxMultiply() 1514 m_c_Mul(m_LShr(m_Specific(X), m_SpecificInt(HalfBits)), in foldBoxMultiply() 1515 m_CombineOr(m_Specific(Y), m_Specific(YLo)))))) in foldBoxMultiply() [all …]
|
| H A D | InstCombineMulDivRem.cpp | 651 match(Op1, m_AllowReassoc(m_Intrinsic<Intrinsic::powi>(m_Specific(X), in foldPowiReassoc() 664 m_Specific(Op1), m_Value(Y))))) && in foldPowiReassoc() 677 match(Op1, m_AllowReassoc(m_c_FMul(m_Specific(X), m_Value(Z)))) && in foldPowiReassoc() 701 if (match(I, m_FMul(m_Specific(Div), m_Specific(Div)))) in getFSqrtDivOptPattern() 708 if (match(I, m_FDiv(m_Specific(A), m_Sqrt(m_Specific(A))))) in getFSqrtDivOptPattern() 904 match(Op1, m_Intrinsic<Intrinsic::pow>(m_Specific(X), m_Value(Z)))) { in foldFMulReassoc() 911 match(Op1, m_Intrinsic<Intrinsic::pow>(m_Value(Z), m_Specific(Y)))) { in foldFMulReassoc() 941 if (match(Op0, m_OneUse(m_c_FMul(m_Specific(Op1), m_Value(Y)))) && Op1 != Y) { in foldFMulReassoc() 945 if (match(Op1, m_OneUse(m_c_FMul(m_Specific(Op0), m_Value(Y)))) && Op0 != Y) { in foldFMulReassoc() 1203 match(Op0, m_c_Mul(m_Specific(X), m_Value(Y)))) { in foldIDivShl() [all …]
|
| H A D | InstCombineShifts.cpp | 993 if (match(I.getOperand(0), m_Shl(m_Value(), m_Specific(I.getOperand(1))))) { in setShiftFlags() 999 m_Specific(I.getOperand(0)), m_Value()))) { in setShiftFlags() 1076 if (match(Op0, m_Shr(m_Value(X), m_Specific(Op1)))) { in visitShl() 1184 (match(Y, m_Shr(m_Value(), m_Specific(Op1))) || in visitShl() 1185 match(Y, m_And(m_OneUse(m_Shr(m_Value(), m_Specific(Op1))), in visitShl() 1190 if (match(Shr, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 1204 m_OneUse(m_And(m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))), in visitShl() 1233 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl() 1240 if (match(Op0, m_LShr(m_AllOnes(), m_Specific(Op1)))) { in visitShl() 1303 match(Op0, m_OneUse(m_NUWSub(m_NUWShl(m_Value(X), m_Specific(Op1)), in visitLShr() [all …]
|
| H A D | InstCombineCompares.cpp | 1426 m_ICmp(DomPred, m_Specific(X), m_APInt(DomC)))) in foldICmpWithDominatingICmp() 1873 match(LShr, m_LShr(m_Specific(A), m_Value(B)))) { in foldICmpAndConstConst() 1940 match(And->getOperand(1), m_Not(m_Specific(X)))) { in foldICmpAndConstant() 4566 if (match(Op0, m_c_And(m_Specific(Op1), m_Value(M)))) { in foldICmpWithLowBitMaskedVal() 4987 if (match(Op1, m_c_And(m_Specific(Op0), m_Value()))) { in foldICmpAndXX() 4992 if (!match(Op0, m_c_And(m_Specific(Op1), m_Value(A)))) in foldICmpAndXX() 5050 if (match(Op1, m_c_Or(m_Specific(Op0), m_Value(A)))) { in foldICmpOrXX() 5053 } else if (!match(Op0, m_c_Or(m_Specific(Op1), m_Value(A)))) { in foldICmpOrXX() 5084 if (match(Op1, m_c_Xor(m_Specific(Op0), m_Value()))) { in foldICmpXorXX() 5088 if (!match(Op0, m_c_Xor(m_Specific(Op1), m_Value(A)))) in foldICmpXorXX() [all …]
|
| H A D | InstCombineNegator.cpp | 339 if (match(TV, m_Neg(m_Specific(FV)))) in visitImpl() 341 else if (match(FV, m_Neg(m_Specific(TV)))) in visitImpl()
|
| H A D | InstructionCombining.cpp | 969 m_OneUse(m_Shift(m_Value(X), m_Specific(Shift))), in foldBinOpShiftWithShift() 1101 if (match(A, m_Not(m_Specific(CondVal)))) { in foldBinOpOfSelectAndCastOfSelectCondition() 1707 m_Specific(Op), m_Value(V))) && in simplifyOperationIntoSelectOperand() 1889 match(&I, m_ICmp(m_Specific(PN), m_APInt(Ignored)))) in foldOpIntoPhi() 1896 m_SpecificICmp(ICmpInst::ICMP_EQ, m_Specific(PN), m_Zero()))) in foldOpIntoPhi() 2358 m_Value(V2), m_AllOnes(), m_Specific(EVL))) && in foldVectorBinop() 2401 m_Shuffle(m_Specific(V2), m_Specific(V1), m_SpecificMask(Mask)))) { in foldVectorBinop() 3213 m_Sub(m_PtrToInt(m_Value(Y)), m_PtrToInt(m_Specific(X)))) && in visitGetElementPtrInst() 3767 m_CombineOr(m_Specific(Op), in tryToMoveFreeBeforeNullTest() 3768 m_Specific(Op->stripPointerCasts())), in tryToMoveFreeBeforeNullTest() [all …]
|
| H A D | InstCombineCalls.cpp | 508 match(II.user_back(), m_Shift(m_Value(), m_Specific(&II)))) { in foldCttzCtlz() 868 if (!match(I->getArgOperand(0), m_Not(m_Specific(U)))) in foldIntrinsicWithOverflowCommon() 1931 if (!match(B, m_OneUse(m_Add(m_Specific(X), m_One())))) in visitCallInst() 2046 if ((match(I0, m_c_Xor(m_Specific(I1), m_Value(X))) || in visitCallInst() 2047 match(I1, m_c_Xor(m_Specific(I0), m_Value(X)))) && in visitCallInst() 2685 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_Specific(X))) in visitCallInst() 2781 match(Src1, m_FAbs(m_Specific(X)))) { in visitCallInst() 2874 if (match(TVal, m_FNeg(m_Specific(FVal)))) in visitCallInst() 2877 if (match(FVal, m_FNeg(m_Specific(TVal)))) in visitCallInst() 3302 if (match(Next, m_Intrinsic<Intrinsic::assume>(m_Specific(IIOperand)))) in visitCallInst() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | InstructionSimplify.cpp | 617 if (match(Op1, m_Sub(m_Value(Y), m_Specific(Op0))) || in simplifyAddInst() 618 match(Op0, m_Sub(m_Value(Y), m_Specific(Op1)))) in simplifyAddInst() 623 if (match(Op0, m_Not(m_Specific(Op1))) || match(Op1, m_Not(m_Specific(Op0)))) in simplifyAddInst() 880 if (match(Op1, m_Xor(m_Value(X), m_Specific(Op0))) && in simplifySubInst() 917 m_Exact(m_IDiv(m_Value(X), m_Specific(Op1)))) || // (X / Y) * Y in simplifyMulInst() 918 match(Op1, m_Exact(m_IDiv(m_Value(X), m_Specific(Op0)))))) // Y * (X / Y) in simplifyMulInst() 985 if (match(X, m_SRem(m_Value(), m_Specific(Y)))) in isDivZero() 1102 if (match(Op0, m_c_Mul(m_Value(X), m_Specific(Op1)))) { in simplifyDivRem() 1108 (IsSigned && match(X, m_SDiv(m_Value(), m_Specific(Op1)))) || in simplifyDivRem() 1109 (!IsSigned && match(X, m_UDiv(m_Value(), m_Specific(Op1))))) { in simplifyDivRem() [all …]
|
| H A D | ValueTracking.cpp | 182 match(RHS, m_c_And(m_Specific(M), m_Value())) && in haveNoCommonBitsSetSpecialCases() 188 if (match(RHS, m_c_And(m_Not(m_Specific(LHS)), m_Value())) && in haveNoCommonBitsSetSpecialCases() 196 m_c_Xor(m_c_And(m_Specific(LHS), m_Value(Y)), m_Deferred(Y))) && in haveNoCommonBitsSetSpecialCases() 204 match(RHS, m_ZExtOrSExt(m_Not(m_Specific(Y)))) && in haveNoCommonBitsSetSpecialCases() 212 match(RHS, m_Not(m_c_Or(m_Specific(A), m_Specific(B)))) && in haveNoCommonBitsSetSpecialCases() 224 match(LHS, m_LShr(m_Value(), m_Specific(V)))) || in haveNoCommonBitsSetSpecialCases() 226 match(LHS, m_Shl(m_Value(), m_Specific(V))))) && in haveNoCommonBitsSetSpecialCases() 604 if (match(ValOut, m_Select(m_Value(), m_Specific(PHI), m_Value(V))) || in breakSelfRecursivePHI() 605 match(ValOut, m_Select(m_Value(), m_Value(V), m_Specific(PHI)))) in breakSelfRecursivePHI() 662 auto m_V = m_CombineOr(m_Specific(V), m_PtrToInt(m_Specific(V))); in isKnownNonZeroFromAssume() [all …]
|
| H A D | LazyValueInfo.cpp | 1105 if (match(LHS, m_AddLike(m_Specific(Val), m_APInt(C)))) { in matchICmpOperand() 1112 if (match(Val, m_AddLike(m_Specific(LHS), m_APInt(C)))) { in matchICmpOperand() 1118 if (match(LHS, m_c_Or(m_Specific(Val), m_Value())) && in matchICmpOperand() 1123 if (match(LHS, m_c_And(m_Specific(Val), m_Value())) && in matchICmpOperand() 1228 if (match(LHS, m_Intrinsic<Intrinsic::ctpop>(m_Specific(Val)))) in getValueFromICmpCondition() 1232 if (match(LHS, m_And(m_Specific(Val), m_APInt(Mask))) && in getValueFromICmpCondition() 1252 if (match(LHS, m_CombineOr(m_URem(m_Specific(Val), m_Value()), in getValueFromICmpCondition() 1253 m_Trunc(m_Specific(Val)))) && in getValueFromICmpCondition() 1267 match(LHS, m_AShr(m_Specific(Val), m_APInt(ShAmtC))) && in getValueFromICmpCondition()
|
| H A D | HashRecognize.cpp | 342 if (match(I, m_c_BinOp(m_Value(), m_Specific(Phi)))) in digRecurrence() 526 if (match(I, m_c_Xor(m_CastOrSelf(m_Specific(P1)), in isConditionalOnXorOfPHIs() 527 m_CastOrSelf(m_Specific(P2))))) in isConditionalOnXorOfPHIs()
|
| H A D | AssumeBundleQueries.cpp | 141 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 | 253 m_Specific(BlockCount)))) { in processUse() 306 m_UMin(m_Sub(m_Specific(GridSize), in processUse() 307 m_Mul(GroupIDIntrin, m_Specific(ZextGroupSize))), in processUse() 308 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() 456 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/Transforms/Vectorize/ |
| H A D | VPlanUtils.cpp | 66 (match(A, m_ScalarIVSteps(m_Specific(Plan.getCanonicalIV()), in isHeaderMask() 68 m_Specific(&Plan.getVF()))) || in isHeaderMask()
|
| H A D | LoopIdiomVectorize.cpp | 306 !match(Index, m_c_Add(m_Specific(PN), m_One()))) in recognizeByteCompare() 323 m_Br(m_SpecificICmp(ICmpInst::ICMP_EQ, m_Specific(Index), in recognizeByteCompare() 373 if (IdxA != IdxB || !match(IdxA, m_ZExt(m_Specific(Index)))) in recognizeByteCompare() 1121 if (!match(SearchIndex, m_GEP(m_Specific(PSearch), m_One())) || in recognizeFindFirstByte() 1122 !match(NeedleIndex, m_GEP(m_Specific(PNeedle), m_One()))) in recognizeFindFirstByte() 1141 m_Br(m_SpecificICmp(ICmpInst::ICMP_EQ, m_Specific(GEPNeedle), in recognizeFindFirstByte() 1143 m_BasicBlock(OuterBB), m_Specific(MatchBB))) || in recognizeFindFirstByte() 1156 m_Br(m_SpecificICmp(ICmpInst::ICMP_EQ, m_Specific(GEPSearch), in recognizeFindFirstByte() 1158 m_BasicBlock(ExitFail), m_Specific(Header)))) in recognizeFindFirstByte()
|
| H A D | EVLIndVarSimplify.cpp | 229 m_c_Add(m_ZExtOrSelf(IntrinsicMatch), m_Specific(&PN))) && in run() 230 match(RemTC, m_Sub(m_Value(TC), m_Specific(&PN)))) { in run()
|
| H A D | VPlanTransforms.cpp | 737 return match(VPV, m_c_Binary<Instruction::Add>(m_Specific(WideIV), in getOptimizableIVOf() 738 m_Specific(IVStep))); in getOptimizableIVOf() 740 return match(VPV, m_c_Binary<Instruction::FAdd>(m_Specific(WideIV), in getOptimizableIVOf() 741 m_Specific(IVStep))); in getOptimizableIVOf() 743 return match(VPV, m_Binary<Instruction::FSub>(m_Specific(WideIV), in getOptimizableIVOf() 744 m_Specific(IVStep))); in getOptimizableIVOf() 760 match(VPV, m_GetElementPtr(m_Specific(WideIV), in getOptimizableIVOf() 761 m_Specific(WideIV->getStepValue()))); in getOptimizableIVOf() 1139 match(A, m_c_BinaryOr(m_Specific(X), m_VPValue(Y))) && in simplifyRecipe() 1387 m_Specific(WideIV), in optimizeVectorInductionWidthForTCAndVFUF() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | ExpandMemCmp.cpp | 683 } else if (match(UI, m_SpecificICmp(ICmpInst::ICMP_SGT, m_Specific(CI), in getMemCmpOneBlock() 687 } else if (match(UI, m_SpecificICmp(ICmpInst::ICMP_SLT, m_Specific(CI), in getMemCmpOneBlock() 693 match(UI, m_ICmp(Pred, m_Specific(CI), m_Zero())); in getMemCmpOneBlock()
|
| H A D | CodeGenPrepare.cpp | 1655 if (match(U, m_Add(m_Specific(A), m_Specific(B)))) { in matchUAddWithOverflowConstantEdgeCases() 1732 if (match(U, m_Sub(m_Specific(A), m_Specific(B)))) { in combineToUSubWithOverflow() 1739 if (match(U, m_Add(m_Specific(A), m_APInt(AddC))) && in combineToUSubWithOverflow() 1954 if (!match(DomCond, m_ICmp(DomPred, m_Specific(CmpOp0), m_Specific(CmpOp1)))) in foldICmpWithDominatingICmp() 2002 if (match(U, m_Sub(m_Specific(Op1), m_Specific(Op0)))) in swapICmpOperandsToExposeCSEOpportunities() 2004 else if (match(U, m_Sub(m_Specific(Op0), m_Specific(Op1)))) in swapICmpOperandsToExposeCSEOpportunities() 2115 if (!match(LoopIncrInfo->first, m_c_NUWAdd(m_Specific(PN), m_Value()))) in isRemOfLoopIncrementWithLoopInvariant() 8662 match(UI, m_Shr(m_Specific(X), m_SpecificInt(CmpC.logBase2())))) { in optimizeBranch() 8675 (match(UI, m_Add(m_Specific(X), m_SpecificInt(-CmpC))) || in optimizeBranch() 8676 match(UI, m_Sub(m_Specific(X), m_SpecificInt(CmpC))) || in optimizeBranch() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/ |
| H A D | HexagonLoopIdiomRecognition.cpp | 701 if (match(A, m_Shl(m_One(), m_Specific(CIV)))) { in matchLeftShift() 704 } else if (match(B, m_Shl(m_One(), m_Specific(CIV)))) { in matchLeftShift() 763 if (!match(U, m_c_Xor(m_Specific(SelI), m_Value(R)))) in matchLeftShift() 774 if (!match(T, m_Shl(m_Value(Q), m_Specific(CIV))) && in matchLeftShift() 775 !match(T, m_Shl(m_ZExt(m_Value(Q)), m_ZExt(m_Specific(CIV))))) in matchLeftShift() 834 if (!match(FalseV, m_c_Xor(m_Specific(TrueV), m_Value(Q)))) in matchRightShift() 844 if (!match(TrueV, m_c_Xor(m_Specific(FalseV), m_Value(Q)))) in matchRightShift()
|