| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAndOrXor.cpp | 1645 if (match(Op1, m_OneUse(m_Not(m_OneUse( in foldComplexAndOrPatterns() 1652 if (match(Op1, m_OneUse(m_Not(m_OneUse( in foldComplexAndOrPatterns() 1682 match(Op0, m_OneUse(m_c_BinOp( in foldComplexAndOrPatterns() 1690 if (match(Op1, m_OneUse(m_Not(m_c_BinOp( in foldComplexAndOrPatterns() 1707 if (match(Op1, m_OneUse(m_Not(m_OneUse( in foldComplexAndOrPatterns() 1715 if (match(Op1, m_OneUse(m_Not(m_OneUse( in foldComplexAndOrPatterns() 2168 if (match(&I, m_c_And(m_OneUse(m_Not( in visitAnd() 3034 if (match(&I, m_c_Or(m_OneUse(m_AShr( in visitOr() 3307 m_OneUse(m_c_And( in visitMaskedMerge() 3494 m_OneUse(m_c_Or(m_OneUse(m_Neg(m_Value(X))), m_Value(Y))))) { in foldNot() [all …]
|
| H A D | InstCombineAddSub.cpp | 869 if (match(Op0, m_OneUse(m_Sub(m_Value(X), m_Value(Y)))) && in foldAddWithConstant() 1473 if (!match(&I, m_c_FAdd(m_OneUse(m_c_FMul(m_Value(Y), in factorizeLerp() 1894 if (match(Op0, m_OneUse(m_Add(m_Value(X), m_AllOnes())))) in visitSub() 1901 if (match(Op0, m_OneUse(m_c_Add(m_OneUse(m_Sub(m_Value(X), m_Value(Y))), in visitSub() 2050 if (match(Op0, m_OneUse(m_c_And(m_Specific(Op1), in visitSub() 2246 if (!match(&I, m_FNeg(m_OneUse(m_Instruction(FNegOp))))) in foldFNegIntoConstant() 2311 match(Op, m_OneUse(m_FSub(m_Value(X), m_Value(Y))))) in visitFNeg() 2398 match(Op0, m_OneUse(m_FNeg(m_Value(X))))) { in visitFSub() 2421 if (match(Op1, m_OneUse(m_FPTrunc(m_FNeg(m_Value(Y)))))) in visitFSub() 2425 if (match(Op1, m_OneUse(m_FPExt(m_FNeg(m_Value(Y)))))) in visitFSub() [all …]
|
| H A D | InstCombineShifts.cpp | 380 if (match(Op1, m_OneUse(m_SExt(m_Value(Y))))) { in commonShiftTransforms() 812 m_OneUse(m_BinOp(FBO))))) { in FoldShiftByConstant() 856 if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) { in visitShl() 919 if (match(Op0, m_OneUse(m_Trunc(m_OneUse(m_BinOp(Shr))))) && in visitShl() 962 if (match(Op0, m_OneUse(m_BinOp(Op0BO))) && in visitShl() 992 m_OneUse(m_And(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() 1145 if (match(Op0, m_OneUse(m_ZExt(m_Value(X)))) && in visitLShr() 1424 if (match(Op0, m_OneUse(m_SExt(m_Value(X)))) && in visitAShr() 1457 match(Op0, m_OneUse(m_Shl(m_Value(X), in visitAShr() [all …]
|
| H A D | InstCombineMulDivRem.cpp | 227 if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) { in visitMul() 266 if (match(&I, m_c_Mul(m_OneUse(m_Neg(m_Value(X))), m_Value(Y)))) in visitMul() 375 if (match(Op0, m_OneUse(m_AShr(m_Value(X), m_APInt(C)))) && in visitMul() 561 match(Op1, m_OneUse(m_Sqrt(m_Value(Y))))) { in visitFMul() 657 if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::log2>( in visitFMul() 658 m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) { in visitFMul() 662 if (match(Op1, m_OneUse(m_Intrinsic<Intrinsic::log2>( in visitFMul() 663 m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) { in visitFMul() 1146 if (match(Op0, m_OneUse(m_SExt(m_Value(Op0Src)))) && in visitSDiv() 1367 if (match(Op0, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) && in visitFDiv() [all …]
|
| H A D | InstCombineCasts.cpp | 651 if (!match(Trunc.getOperand(0), m_OneUse(m_BinOp(BinOp)))) in narrowBinOp() 848 if (match(Src, m_OneUse(m_LShr(m_Value(X), m_Constant(C))))) { in visitTrunc() 855 if (match(Src, m_OneUse(m_c_Or(m_LShr(m_Value(X), m_Constant(C)), in visitTrunc() 1337 if (match(Src, m_OneUse(m_Xor(m_Value(And), m_Constant(C)))) && in visitZExt() 1603 if (match(Src, m_OneUse(m_AShr(m_Trunc(m_Value(X)), in visitSExt() 2107 if (match(SrcOp, m_OneUse(m_InsertElt(m_IntToPtr(m_Value(Vec)), in visitPtrToInt() 2397 if (!match(BitCast.getOperand(0), m_OneUse(m_BinOp(BO))) || in foldBitCastBitwiseLogic() 2410 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic() 2434 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic() 2441 if (match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic() [all …]
|
| H A D | InstCombineSelect.cpp | 514 if (!match(TVal, m_OneUse(m_And(m_Value(B), m_One())))) in foldSelectICmpAndAnd() 519 const bool HasShift = match(B, m_OneUse(m_LShr(m_Value(X), m_Value(Z)))); in foldSelectICmpAndAnd() 636 if (!match(CmpLHS, m_OneUse(m_Trunc(m_Value(V))))) in foldSelectICmpAndOr() 703 match(F, m_OneUse(m_Or(m_Specific(X), m_APInt(C)))) && *NotC == ~(*C)) { in foldSetClearBits() 1447 if (!match(&Cmp, m_OneUse(m_ICmp( in tryToReuseConstantFromSelectInComparison() 2062 if (!match(Cond, m_OneUse(m_ExtractElt(m_Value(), m_ConstantInt())))) in canonicalizeScalarSelectOfVecs() 2207 if (!match(Or0, m_OneUse(m_LogicalShift(m_Value(SV0), in foldSelectFunnelShift() 2209 !match(Or1, m_OneUse(m_LogicalShift(m_Value(SV1), in foldSelectFunnelShift() 2226 if (match(SA1, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(SA0))))) in foldSelectFunnelShift() 3076 if (match(TrueVal, m_OneUse(m_BinOp(TrueBO))) && in visitSelectInst() [all …]
|
| H A D | InstCombineCompares.cpp | 1804 if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) && in foldICmpAndConstConst() 1974 if (match(OrOp0, m_OneUse(m_Xor(m_Value(X1), m_Value(X2)))) && in foldICmpOrConstant() 1975 match(OrOp1, m_OneUse(m_Xor(m_Value(X3), m_Value(X4))))) { in foldICmpOrConstant() 3860 m_c_And(m_OneUse(m_AnyLogicalShift), m_Value()))) in foldShiftIntoShiftInAnotherHandOfAndInICmp() 4633 if (match(Op0, m_OneUse(m_And(m_Value(A), m_Value(B)))) && in foldICmpEquality() 4634 match(Op1, m_OneUse(m_And(m_Value(C), m_Value(D))))) { in foldICmpEquality() 4667 if (match(Op0, m_OneUse(m_Or(m_Value(X), m_Constant(C)))) && in foldICmpEquality() 4668 match(Op1, m_OneUse(m_Or(m_Value(Y), m_Specific(C))))) { in foldICmpEquality() 4710 match(Op1, m_OneUse(m_Shl(m_Value(B), m_Specific(Cst1))))) { in foldICmpEquality() 5956 m_OneUse(m_CombineOr( in foldICmpWithHighBitMask() [all …]
|
| H A D | InstCombineCalls.cpp | 540 if (match(Op0, m_OneUse(m_SExt(m_Value(X))))) { in foldCttzCtlz() 648 if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) { in foldCtpop() 845 if (!match(Op0, m_OneUse(m_Add(m_Value(X), m_APInt(C0)))) || in moveAddAfterMinMax() 1005 if (!match(II, m_c_MaxOrMin(m_OneUse(m_CombineAnd( in reassociateMinMaxWithConstantInOperand() 1282 if (match(IIOperand, m_OneUse(m_SExt(m_Value(X))))) { in visitCallInst() 1368 if (match(X, m_OneUse(m_Not(m_Value(A)))) && in visitCallInst() 1809 if (match(Arg0, m_OneUse(m_FPExt(m_Value(X)))) && in visitCallInst() 1810 match(Arg1, m_OneUse(m_FPExt(m_Value(Y)))) && in visitCallInst() 1822 if ((match(Arg0, m_OneUse(m_FNeg(m_Value(X)))) && Arg1 == X) || in visitCallInst() 1823 (match(Arg1, m_OneUse(m_FNeg(m_Value(X)))) && Arg0 == X)) { in visitCallInst() [all …]
|
| H A D | InstCombineSimplifyDemanded.cpp | 387 if (match(I->getOperand(0), m_OneUse(m_LShr(m_Value(X), m_APInt(C))))) { in SimplifyDemandedUseBits() 469 if (match(I, m_c_Add(m_OneUse(m_ZExt(m_Value(X))), in SimplifyDemandedUseBits() 470 m_OneUse(m_SExt(m_Value(Y))))) && in SimplifyDemandedUseBits() 486 if (match(I, m_Add(m_OneUse(m_SExt(m_Value(X))), in SimplifyDemandedUseBits() 487 m_OneUse(m_SExt(m_Value(Y))))) && in SimplifyDemandedUseBits()
|
| 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() 1517 match(ScalarOp, m_OneUse(m_BitCast(m_Value(ScalarSrc)))) && in visitInsertElementInst() 2024 if (!match(Op0, m_OneUse(m_InsertElt(m_Undef(), m_Value(X), in canonicalizeInsertSplat() 2236 m_OneUse(m_Select(m_Value(Cond), m_Value(X), m_Value(Y))))) in narrowVectorSelect() 2244 if (!match(Cond, m_OneUse(m_Shuffle(m_Value(NarrowCond), m_Undef()))) || in narrowVectorSelect()
|
| H A D | InstCombineNegator.cpp | 254 if (match(I, m_c_And(m_OneUse(m_TruncOrSelf( in visitImpl()
|
| H A D | InstructionCombining.cpp | 529 match(Op0, m_OneUse(m_BinOp(m_Value(A), m_Constant(C1)))) && in SimplifyAssociativeOrCommutative() 530 match(Op1, m_OneUse(m_BinOp(m_Value(B), m_Constant(C2)))) && in SimplifyAssociativeOrCommutative() 1758 m_c_BinOp(m_OneUse(m_Shuffle(m_Value(V1), m_Undef(), m_Mask(Mask))), in foldVectorBinop() 1843 m_OneUse(m_Shuffle(m_Value(X), m_Undef(), m_Mask(MaskC)))) || in foldVectorBinop() 1846 !match(RHS, m_OneUse(m_BinOp(Opcode, m_Value(Y), m_Value(OtherOp))))) in foldVectorBinop() 3186 if (match(&BI, m_Br(m_OneUse(m_FCmp(Pred, m_Value(), m_Value())), in visitBranchInst()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/AggressiveInstCombine/ |
| H A D | AggressiveInstCombine.cpp | 102 if (match(V, m_OneUse(m_c_Or( in foldGuardedFunnelShift() 113 m_OneUse(m_c_Or(m_Shl(m_Value(ShVal0), m_Sub(m_SpecificInt(Width), in foldGuardedFunnelShift() 274 if (match(&I, m_c_And(m_OneUse(m_And(m_Value(), m_Value())), m_Value()))) in foldAnyOrAllBitsSet() 276 else if (match(&I, m_And(m_OneUse(m_Or(m_Value(), m_Value())), m_One()))) in foldAnyOrAllBitsSet() 382 if (!match(&I, m_SMax(m_OneUse(m_SMin(m_OneUse(m_FPToSI(m_Value(In))), in tryToFPToSat() 385 !match(&I, m_SMin(m_OneUse(m_SMax(m_OneUse(m_FPToSI(m_Value(In))), in tryToFPToSat()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VectorCombine.cpp | 543 m_OneUse(m_Shuffle(m_Value(V), m_Undef(), m_Mask(Mask)))))) in foldBitcastShuf() 728 if (!match(B0, m_OneUse(m_Cmp(P0, m_Instruction(I0), m_Constant(C0)))) || in foldExtractedCmps() 729 !match(B1, m_OneUse(m_Cmp(P1, m_Instruction(I1), m_Constant(C1)))) || in foldExtractedCmps() 738 if (!match(I0, m_OneUse(m_ExtractElt(m_Value(X), m_ConstantInt(Index0)))) || in foldExtractedCmps() 739 !match(I1, m_OneUse(m_ExtractElt(m_Specific(X), m_ConstantInt(Index1))))) in foldExtractedCmps() 1079 if (!match(&I, m_Shuffle(m_OneUse(m_BinOp(B0)), m_OneUse(m_BinOp(B1)), in foldShuffleOfBinops()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | IVDescriptors.cpp | 637 if (match(I, m_OneUse(m_Cmp(Pred, m_Value(), m_Value())))) { in isSelectCmpPattern() 643 if (!match(I, m_Select(m_OneUse(m_Cmp(Pred, m_Value(), m_Value())), m_Value(), in isSelectCmpPattern() 678 if (match(I, m_OneUse(m_Cmp(Pred, m_Value(), m_Value())))) { in isMinMaxPattern() 685 !match(I, m_Select(m_OneUse(m_Cmp(Pred, m_Value(), m_Value())), m_Value(), in isMinMaxPattern()
|
| /llvm-project-15.0.7/llvm/unittests/CodeGen/GlobalISel/ |
| H A D | PatternMatchTest.cpp | 517 EXPECT_TRUE(mi_match(Reg, *MRI, m_OneUse(m_GAdd(m_Reg(), m_Reg())))); in TEST_F() 524 EXPECT_FALSE(mi_match(Reg, *MRI, m_OneUse(m_GAdd(m_Reg(), m_Reg())))); in TEST_F() 529 EXPECT_FALSE(mi_match(Reg, *MRI, m_OneUse(m_GAdd(m_Reg(), m_Reg())))); in TEST_F()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | Reassociate.cpp | 2078 if (!match(V, m_OneUse(m_Instruction(I)))) in getNegatibleInsts() 2186 if (match(I, m_FAdd(m_Value(X), m_OneUse(m_Instruction(Op))))) in canonicalizeNegFPConstants() 2189 if (match(I, m_FAdd(m_OneUse(m_Instruction(Op)), m_Value(X)))) in canonicalizeNegFPConstants() 2192 if (match(I, m_FSub(m_Value(X), m_OneUse(m_Instruction(Op))))) in canonicalizeNegFPConstants()
|
| H A D | StructurizeCFG.cpp | 595 if (match(Cond, m_Not(m_OneUse(m_Instruction(Inverted)))) && in simplifyConditions()
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | CodeGenPrepare.cpp | 6688 m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal))))) in optimizeShiftInst() 6723 m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal))))) in optimizeFunnelShift() 7598 m_c_Or(m_OneUse(m_ZExt(m_Value(LValue))), in splitMergedValStore() 7599 m_OneUse(m_Shl(m_OneUse(m_ZExt(m_Value(HValue))), in splitMergedValStore() 8264 m_Br(m_OneUse(m_Instruction(LogicOp)), TBB, FBB))) in splitBranchCondition() 8278 m_LogicalAnd(m_OneUse(m_Value(Cond1)), m_OneUse(m_Value(Cond2))))) in splitBranchCondition() 8280 else if (match(LogicOp, m_LogicalOr(m_OneUse(m_Value(Cond1)), in splitBranchCondition() 8281 m_OneUse(m_Value(Cond2))))) in splitBranchCondition()
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/GlobalISel/ |
| H A D | MIPatternMatch.h | 45 inline OneUse_match<SubPat> m_OneUse(const SubPat &SP) { in m_OneUse() function
|
| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | PatternMatch.cpp | 61 EXPECT_TRUE(m_OneUse(m_Value(V)).match(One)); in TEST_F() 64 EXPECT_FALSE(m_OneUse(m_Value()).match(Two)); in TEST_F() 65 EXPECT_FALSE(m_OneUse(m_Value()).match(Leaf)); in TEST_F()
|
| /llvm-project-15.0.7/mlir/docs/Rationale/ |
| H A D | RationaleGenericDAGRewriter.md | 121 if (match(Op1, m_OneUse(m_Add(m_Value(X), m_One()))))
|
| /llvm-project-15.0.7/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 1981 auto XorExpr = m_OneUse(m_Xor(m_Value(Op1), m_AllOnes())); in match()
|
| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUInstructionSelector.cpp | 676 Src0, *MRI, m_OneUse(m_GLShr(m_Reg(ShiftSrc0), m_SpecificICst(16)))); in selectG_BUILD_VECTOR_TRUNC() 679 Src1, *MRI, m_OneUse(m_GLShr(m_Reg(ShiftSrc1), m_SpecificICst(16)))); in selectG_BUILD_VECTOR_TRUNC()
|
| /llvm-project-15.0.7/llvm/lib/Target/AArch64/ |
| H A D | AArch64TargetTransformInfo.cpp | 808 if (match(Vec, m_OneUse(m_BinOp(m_Value(LHS), m_Value(RHS))))) { in instCombineSVELast()
|