/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineAddSub.cpp | 838 if (match(Op0, m_OneUse(m_SExtLike( in foldNoWrapAdd() 847 m_OneUse(m_ZExt(m_NUWAddLike(m_Value(X), m_Constant(NarrowC)))))) { in foldNoWrapAdd() 876 if (match(Op0, m_OneUse(m_Sub(m_Value(X), m_Value(Y)))) && in foldAddWithConstant() 903 if (match(Op0, m_OneUse(m_AShr(m_Value(X), in foldAddWithConstant() 1027 AddOp, m_OneUse(m_BinOp(MulOp, m_Value(A), m_Deferred(A))), in matchesSquareSum() 1028 m_OneUse(m_c_BinOp( in matchesSquareSum() 1042 m_OneUse(m_BinOp( in matchesSquareSum() 1044 m_OneUse(m_c_BinOp(MulOp, m_BinOp(Mul2Op, m_Value(A), M2Rhs), in matchesSquareSum() 1046 m_OneUse( in matchesSquareSum() 1216 if (!match(&I, m_Add(m_OneUse(m_Shl(m_One(), m_Value(NBits))), m_AllOnes()))) in canonicalizeLowbitMask() [all …]
|
H A D | InstCombineAndOrXor.cpp | 732 if (!match(LHS, m_OneUse(m_ICmp(Pred, m_Value(Op), m_Zero()))) || in foldAndOrOfICmpsWithPow2AndWithZero() 733 !match(RHS, m_OneUse(m_c_ICmp(Pred, m_Specific(Op), m_Value(Pow2)))) || in foldAndOrOfICmpsWithPow2AndWithZero() 1119 if (!match(V, m_OneUse(m_Trunc(m_Value(X))))) in matchIntPart() 1128 if (match(X, m_OneUse(m_LShr(m_Value(Y), m_APInt(Shift)))) && in matchIntPart() 1539 match(Op0, m_OneUse(m_Intrinsic<Intrinsic::is_fpclass>( in foldLogicOfIsFPClass() 1542 match(Op1, m_OneUse(m_Intrinsic<Intrinsic::is_fpclass>( in foldLogicOfIsFPClass() 1597 if (!match(&I, m_c_BinOp(m_OneUse(m_Value()), m_Value())) || in canonicalizeConditionalNegationViaMathToSelect() 1667 if (match(Op0, m_OneUse(m_Not(m_Value(A)))) && in matchDeMorgansLaws() 1668 match(Op1, m_OneUse(m_Not(m_Value(B)))) && in matchDeMorgansLaws() 1682 if (match(Op0, m_OneUse(m_c_BinOp(Opcode, m_Value(A), m_Not(m_Value(B))))) && in matchDeMorgansLaws() [all …]
|
H A D | InstCombineShifts.cpp | 105 !match(Sh0, m_c_BinOp(m_OneUse(m_Value()), m_Value()))) in reassociateShiftAmtsOfTwoSameDirectionShifts() 415 if (match(Op1, m_OneUse(m_SExt(m_Value(Y))))) { in commonShiftTransforms() 860 if (match(Op0, m_Select(m_Value(Cond), m_OneUse(m_BinOp(TBO)), in FoldShiftByConstant() 878 m_OneUse(m_BinOp(FBO))))) { in FoldShiftByConstant() 920 m_Add(m_OneUse(m_ZExt(m_Value(X))), m_OneUse(m_ZExt(m_Value(Y)))))) in foldLShrOverflowBit() 1046 if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) { in visitShl() 1085 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_APInt(C1)))) && in visitShl() 1117 if (match(Op0, m_OneUse(m_Trunc(m_OneUse(m_BinOp(Shr))))) && in visitShl() 1152 if (match(Op0, m_OneUse(m_BinOp(Op0BO))) && in visitShl() 1163 match(Y, m_And(m_OneUse(m_Shr(m_Value(), m_Specific(Op1))), in visitShl() [all …]
|
H A D | InstCombineMulDivRem.cpp | 58 if (match(V, m_LShr(m_OneUse(m_Shl(m_Value(One), m_Value(A))), m_Value(B))) && in simplifyValueKnownNonZero() 105 if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_One(), m_AllOnes())), in foldMulSelectToNegate() 113 if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_AllOnes(), m_One())), in foldMulSelectToNegate() 122 if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(1.0), in foldMulSelectToNegate() 132 if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(-1.0), in foldMulSelectToNegate() 166 if (match(Y, m_OneUse(m_Add(m_BinOp(Shift), m_One()))) && in foldMulShl1() 167 match(Shift, m_OneUse(m_Shl(m_One(), m_Value(Z))))) { in foldMulShl1() 181 if (match(Y, m_OneUse(m_Not(m_OneUse(m_Shl(m_AllOnes(), m_Value(Z))))))) { in foldMulShl1() 309 if (match(Op0, m_OneUse(m_AddLike(m_Value(X), m_ImmConstant(C1))))) { in visitMul() 337 m_OneUse(m_Intrinsic<Intrinsic::abs>(m_Value(X), m_One()))) && in visitMul() [all …]
|
H A D | InstCombineCasts.cpp | 214 if (match(Src, m_OneUse(m_Shuffle(m_Value(X), m_Undef(), m_Mask(Mask))))) { in commonCastTransforms() 457 if (!match(Trunc.getOperand(0), m_OneUse(m_Or(m_BinOp(Or0), m_BinOp(Or1))))) in narrowFunnelShift() 461 if (!match(Or0, m_OneUse(m_LogicalShift(m_Value(ShVal0), m_Value(ShAmt0)))) || in narrowFunnelShift() 462 !match(Or1, m_OneUse(m_LogicalShift(m_Value(ShVal1), m_Value(ShAmt1)))) || in narrowFunnelShift() 486 if (match(R, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(L))))) in narrowFunnelShift() 554 if (!match(Trunc.getOperand(0), m_OneUse(m_BinOp(BinOp)))) in narrowBinOp() 743 if (match(Src, m_OneUse(m_Shr(m_Shl(m_Power2(C1), m_Value(X)), in visitTrunc() 752 if (match(Src, m_OneUse(m_LShr(m_Value(X), m_ImmConstant(C))))) { in visitTrunc() 759 if (match(Src, m_OneUse(m_c_Or(m_LShr(m_Value(X), m_ImmConstant(C)), in visitTrunc() 861 if (match(Src, m_OneUse(m_ExtractElt(m_Value(VecOp), m_ConstantInt(Cst))))) { in visitTrunc() [all …]
|
H A D | InstCombineSelect.cpp | 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() 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() 1577 if (!match(&Cmp, m_OneUse(m_ICmp( in tryToReuseConstantFromSelectInComparison() 2305 if (!match(Cond, m_OneUse(m_ExtractElt(m_Value(), m_ConstantInt())))) in canonicalizeScalarSelectOfVecs() 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() [all …]
|
H A D | InstCombineCompares.cpp | 1158 if (!match(&I, m_ICmp(Pred, m_OneUse(m_IRem(m_Value(X), m_Value(Y))), in foldIRemByPowerOfTwoToBitTest() 1530 m_OneUse(m_ZExt(m_Value(Y)))))) { in foldICmpTruncWithTruncOrExt() 1535 m_OneUse(m_ZExtOrSExt(m_Value(Y)))))) { in foldICmpTruncWithTruncOrExt() 1643 if (!match(Xor, m_OneUse(m_c_Xor(m_Value(X), in foldICmpXorShiftConst() 1797 if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) && in foldICmpAndConstConst() 1855 match(X, m_OneUse(m_ElementWiseBitCast(m_Value(V))))) { in foldICmpAndConstConst() 1954 if (match(And, m_OneUse(m_c_And(m_OneUse(m_ZExt(m_Value(X))), m_Value(Y)))) && in foldICmpAndConstant() 1969 match(And, m_OneUse(m_c_And(m_OneUse(m_Shl(m_AllOnes(), m_Value(X))), in foldICmpAndConstant() 1998 m_OneUse(m_Xor(m_Value(Lhs), m_Value(Rhs))))) { in foldICmpOrXorSubChain() 2004 m_OneUse(m_Sub(m_Value(Lhs), m_Value(Rhs))))) { in foldICmpOrXorSubChain() [all …]
|
H A D | InstCombineCalls.cpp | 526 if (match(Op0, m_OneUse(m_SExt(m_Value(X))))) { in foldCttzCtlz() 535 if (match(Op0, m_OneUse(m_ZExt(m_Value(X)))) && match(Op1, m_One())) { in foldCttzCtlz() 670 if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) { in foldCtpop() 1097 if (!match(Op0, m_OneUse(m_Add(m_Value(X), m_APInt(C0)))) || in moveAddAfterMinMax() 1267 if (!match(II, m_c_MaxOrMin(m_OneUse(m_CombineAnd( in reassociateMinMaxWithConstantInOperand() 1407 if (match(V, m_OneUse(m_BitwiseLogic(m_Value(X), m_Value(Y)))) && in foldBitOrderCrossLogicOp() 1421 if (match(X, m_OneUse(m_Intrinsic<IntrID>(m_Value(OldReorderX))))) { in foldBitOrderCrossLogicOp() 1426 if (match(Y, m_OneUse(m_Intrinsic<IntrID>(m_Value(OldReorderY))))) { in foldBitOrderCrossLogicOp() 1476 m_OneUse(m_Intrinsic<IntrID>(m_Value(CtOp), m_Value(ZeroUndef))))) in foldMinimumOverTrailingOrLeadingZeroCount() 1655 m_OneUse(m_c_Mul(m_Value(X), in visitCallInst() [all …]
|
H A D | InstructionCombining.cpp | 551 match(Op0, m_OneUse(m_BinOp(m_Value(A), m_Constant(C1)))) && in SimplifyAssociativeOrCommutative() 552 match(Op1, m_OneUse(m_BinOp(m_Value(B), m_Constant(C2)))) && in SimplifyAssociativeOrCommutative() 801 m_OneUse(m_Intrinsic<Intrinsic::ctpop>(m_Value(Op))))) in tryFoldInstWithCtpopWithNot() 936 m_OneUse(m_Shift(m_Value(Y), m_Value(Shift))))) in foldBinOpShiftWithShift() 942 if (!match(ShiftedX, m_OneUse(m_Shift(m_Value(X), m_Specific(Shift))))) in foldBinOpShiftWithShift() 2072 else if (isSplatValue(LHS) && match(RHS, m_OneUse(m_VecReverse(m_Value(V2))))) in foldVectorBinop() 2132 match(&Inst, m_c_BinOp(m_OneUse(m_Shuffle(m_Value(V1), m_Poison(), in foldVectorBinop() 2219 m_OneUse(m_Shuffle(m_Value(X), m_Undef(), m_Mask(MaskC)))) || in foldVectorBinop() 2222 !match(RHS, m_OneUse(m_BinOp(Opcode, m_Value(Y), m_Value(OtherOp))))) in foldVectorBinop() 2798 m_OneUse(m_CombineOr(m_Mul(m_Value(), m_ConstantInt()), in visitGetElementPtrInst() [all …]
|
H A D | InstCombineVectorOps.cpp | 78 if (match(V, m_OneUse(m_Load(m_Value())))) in cheapToScalarize() 81 if (match(V, m_OneUse(m_UnOp()))) in cheapToScalarize() 85 if (match(V, m_OneUse(m_BinOp(m_Value(V0), m_Value(V1))))) in cheapToScalarize() 90 if (match(V, m_OneUse(m_Cmp(UnusedPred, m_Value(V0), m_Value(V1))))) in cheapToScalarize() 1622 if (match(VecOp, m_OneUse(m_InsertElt(m_Value(BaseVec), in visitInsertElementInst() 1637 match(ScalarOp, m_OneUse(m_BitCast(m_Value(ScalarSrc)))) && in visitInsertElementInst() 2223 if (!match(Op0, m_OneUse(m_InsertElt(m_Poison(), m_Value(X), in canonicalizeInsertSplat() 2438 m_OneUse(m_Select(m_Value(Cond), m_Value(X), m_Value(Y))))) in narrowVectorSelect() 2446 if (!match(Cond, m_OneUse(m_Shuffle(m_Value(NarrowCond), m_Poison()))) || in narrowVectorSelect()
|
H A D | InstCombineNegator.cpp | 266 if (match(I, m_And(m_OneUse(m_TruncOrSelf( in visitImpl()
|
H A D | InstCombineSimplifyDemanded.cpp | 424 if (match(I->getOperand(0), m_OneUse(m_LShr(m_Value(X), m_APInt(C))))) { in SimplifyDemandedUseBits() 493 if (match(I, m_c_Add(m_OneUse(m_ZExt(m_Value(X))), in SimplifyDemandedUseBits() 494 m_OneUse(m_SExt(m_Value(Y))))) && in SimplifyDemandedUseBits()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/ |
H A D | AggressiveInstCombine.cpp | 84 if (match(V, m_OneUse(m_c_Or( in foldGuardedFunnelShift() 94 m_OneUse(m_c_Or(m_Shl(m_Value(ShVal0), m_Sub(m_SpecificInt(Width), in foldGuardedFunnelShift() 254 if (match(&I, m_c_And(m_OneUse(m_And(m_Value(), m_Value())), m_Value()))) in foldAnyOrAllBitsSet() 256 else if (match(&I, m_And(m_OneUse(m_Or(m_Value(), m_Value())), m_One()))) in foldAnyOrAllBitsSet() 362 if (!match(&I, m_SMax(m_OneUse(m_SMin(m_OneUse(m_FPToSI(m_Value(In))), in tryToFPToSat() 365 !match(&I, m_SMin(m_OneUse(m_SMax(m_OneUse(m_FPToSI(m_Value(In))), in tryToFPToSat() 639 if (match(V, m_OneUse(m_c_Or( in foldLoadsRecursive() 641 m_OneUse(m_Sh in foldLoadsRecursive() [all...] |
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | SelectOptimize.cpp | 150 I, m_c_Or(m_OneUse(m_ZExt(m_Value(X))), m_Value())) && in match() 182 m_OneUse(m_ZExt(m_Value(X))))) in getNonInvertedCondition() 185 m_OneUse(m_ZExt(m_Value(X))))) in getNonInvertedCondition() 232 m_OneUse(m_ZExt(m_Value(X))))) in getFalseValue() 235 m_OneUse(m_ZExt(m_Value(X))))) in getFalseValue()
|
H A D | CodeGenPrepare.cpp | 7060 m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal))))) in optimizeShiftInst() 7095 m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal))))) in optimizeFunnelShift() 8001 m_c_Or(m_OneUse(m_ZExt(m_Value(LValue))), in splitMergedValStore() 8002 m_OneUse(m_Shl(m_OneUse(m_ZExt(m_Value(HValue))), in splitMergedValStore() 8759 m_Br(m_OneUse(m_Instruction(LogicOp)), TBB, FBB))) in splitBranchCondition() 8773 m_LogicalAnd(m_OneUse(m_Value(Cond1)), m_OneUse(m_Value(Cond2))))) in splitBranchCondition() 8775 else if (match(LogicOp, m_LogicalOr(m_OneUse(m_Value(Cond1)), in splitBranchCondition() 8776 m_OneUse(m_Value(Cond2))))) in splitBranchCondition()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VectorCombine.cpp | 638 if (!match(&I, m_InsertElt(m_Value(DestVec), m_OneUse(m_Instruction(FNeg)), in foldInsExtFNeg() 700 if (!match(&I, m_BitCast(m_OneUse( in foldBitcastShuffle() 1044 if (!match(B0, m_OneUse(m_Cmp(P0, m_Instruction(I0), m_Constant(C0)))) || in foldExtractedCmps() 1045 !match(B1, m_OneUse(m_Cmp(P1, m_Instruction(I1), m_Constant(C1)))) || in foldExtractedCmps() 1054 if (!match(I0, m_OneUse(m_ExtractElt(m_Value(X), m_ConstantInt(Index0)))) || in foldExtractedCmps() 1055 !match(I1, m_OneUse(m_ExtractElt(m_Specific(X), m_ConstantInt(Index1))))) in foldExtractedCmps() 1404 if (!match(&I, m_Shuffle(m_OneUse(m_BinOp(B0)), m_OneUse(m_BinOp(B1)), in foldShuffleOfBinops() 1600 if (!match(&I, m_Shuffle(m_OneUse(m_Shuffle(m_Value(V0), m_UndefValue(U0), in foldShuffleOfShuffles() 1602 m_OneUse(m_Shuffle(m_Value(V1), m_UndefValue(U1), in foldShuffleOfShuffles() 2145 if (!match(ReductionSrc, m_OneUse(m_Trunc(m_Value(Src)))) && in foldCastFromReductions() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | IVDescriptors.cpp | 633 if (match(I, m_OneUse(m_Cmp(Pred, m_Value(), m_Value())))) { in isAnyOfPattern() 673 if (match(I, m_OneUse(m_Cmp(Pred, m_Value(), m_Value())))) { in isMinMaxPattern() 680 !match(I, m_Select(m_OneUse(m_Cmp(Pred, m_Value(), m_Value())), m_Value(), in isMinMaxPattern()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | Reassociate.cpp | 2020 if (!match(V, m_OneUse(m_Instruction(I)))) in getNegatibleInsts() 2128 if (match(I, m_FAdd(m_Value(X), m_OneUse(m_Instruction(Op))))) in canonicalizeNegFPConstants() 2131 if (match(I, m_FAdd(m_OneUse(m_Instruction(Op)), m_Value(X)))) in canonicalizeNegFPConstants() 2134 if (match(I, m_FSub(m_Value(X), m_OneUse(m_Instruction(Op))))) in canonicalizeNegFPConstants()
|
H A D | StructurizeCFG.cpp | 612 if (match(Cond, m_Not(m_OneUse(m_Instruction(Inverted)))) && in simplifyConditions()
|
H A D | LICM.cpp | 2426 if (!match(C, m_OneUse(m_ICmp(P, m_Value(LHS), m_Value(RHS))))) in hoistMinMax()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | SDPatternMatch.h | 154 inline NUses_match<1, Pattern> m_OneUse(const Pattern &P) { in m_OneUse() function 162 inline NUses_match<1, Value_match> m_OneUse() { in m_OneUse() function
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/ |
H A D | MIPatternMatch.h | 47 inline OneUse_match<SubPat> m_OneUse(const SubPat &SP) { in m_OneUse() function
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUInstCombineIntrinsic.cpp | 357 if (match(Arg, m_OneUse(m_FPExt(m_Value(FPExtSrc))))) in matchFPExtFromF16()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | PatternMatch.h | 67 template <typename T> inline OneUse_match<T> m_OneUse(const T &SubPattern) { in m_OneUse() function 2424 auto XorExpr = m_OneUse(m_Not(m_Value(Op1))); in match()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
H A D | DAGCombiner.cpp | 2794 if (sd_match(N0, m_OneUse(m_Sub(m_Value(A), m_Value(B)))) && in visitADDLike() 2795 sd_match(N1, m_OneUse(m_Sub(m_Value(C), m_Value(D)))) && in visitADDLike() 2864 if (sd_match(N0, m_OneUse(m_Mul(m_Add(m_Value(A), m_ConstInt(CA)), in visitADDLike() 2887 if (sd_match(N0, m_OneUse(m_Add( in visitADDLike() 2888 m_OneUse(m_Mul(m_Add(m_Value(A), m_ConstInt(CA)), in visitADDLike() 3941 if (sd_match(N1, m_OneUse(m_Sub(m_Value(B), m_Value(C))))) in visitSUB() 3951 if (sd_match(N1, m_OneUse(m_Mul(m_Neg(m_Value(B)), m_Value(C))))) in visitSUB() 3978 if (sd_match(N, m_Sub(m_OneUse(m_Sub(m_Value(A), m_Value(B))), m_One()))) in visitSUB() 4470 if (sd_context_match(N0, Matcher, m_OneUse(m_Opc(ISD::SHL))) && in visitMUL() 4473 } else if (sd_context_match(N1, Matcher, m_OneUse(m_Opc(ISD::SHL))) && in visitMUL() [all …]
|