reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/CodeGenPrepare.cpp
 5916              m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal)))))
 6701              m_c_Or(m_OneUse(m_ZExt(m_Value(LValue))),
 6702                     m_OneUse(m_Shl(m_OneUse(m_ZExt(m_Value(HValue))),
 6702                     m_OneUse(m_Shl(m_OneUse(m_ZExt(m_Value(HValue))),
 7197     if (!match(BB.getTerminator(), m_Br(m_OneUse(m_BinOp(LogicOp)), TBB, FBB)))
 7206     if (match(LogicOp, m_And(m_OneUse(m_Value(Cond1)),
 7207                              m_OneUse(m_Value(Cond2)))))
 7209     else if (match(LogicOp, m_Or(m_OneUse(m_Value(Cond1)),
 7210                                  m_OneUse(m_Value(Cond2)))))
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 2081   if (match(Cond, m_OneUse(m_Not(m_Value(NotCond)))) &&
lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
   83     auto RotL = m_OneUse(
   92     auto RotR = m_OneUse(
  225   if (match(&I, m_c_And(m_OneUse(m_And(m_Value(), m_Value())), m_Value())))
  227   else if (match(&I, m_And(m_OneUse(m_Or(m_Value(), m_Value())), m_One())))
lib/Transforms/InstCombine/InstCombineAddSub.cpp
  839       match(Op0, m_OneUse(m_ZExt(m_NUWAdd(m_Value(X), m_APInt(C2))))) &&
  849   if (match(Op0, m_OneUse(m_SExt(m_NSWAdd(m_Value(X), m_Constant(NarrowC)))))) {
  856   if (match(Op0, m_OneUse(m_ZExt(m_NUWAdd(m_Value(X), m_Constant(NarrowC)))))) {
  885   if (match(Op0, m_OneUse(m_Sub(m_Value(X), m_Value(Y)))) &&
 1063   if (!match(&I, m_Add(m_OneUse(m_Shl(m_One(), m_Value(NBits))), m_AllOnes())))
 1127   if (HadTrunc && !match(&I, m_c_BinOp(m_OneUse(m_Value()), m_Value())))
 1293   if (match(&I, m_c_Add(m_Value(A), m_OneUse(m_SExt(m_Value(B))))) &&
 1420   if (!match(&I, m_c_FAdd(m_OneUse(m_c_FMul(m_Value(Y),
 1421                                             m_OneUse(m_FSub(m_FPOne(),
 1423                           m_OneUse(m_c_FMul(m_Value(X), m_Deferred(Z))))))
 1446   if ((match(Op0, m_OneUse(m_FMul(m_Value(X), m_Value(Z)))) &&
 1447        match(Op1, m_OneUse(m_c_FMul(m_Value(Y), m_Specific(Z))))) ||
 1448       (match(Op0, m_OneUse(m_FMul(m_Value(Z), m_Value(X)))) &&
 1449        match(Op1, m_OneUse(m_c_FMul(m_Value(Y), m_Specific(Z))))))
 1451   else if (match(Op0, m_OneUse(m_FDiv(m_Value(X), m_Value(Z)))) &&
 1452            match(Op1, m_OneUse(m_FDiv(m_Value(Y), m_Specific(Z)))))
 1498   if (match(&I, m_c_FAdd(m_OneUse(m_c_FMul(m_FNeg(m_Value(X)), m_Value(Y))),
 1505   if (match(&I, m_c_FAdd(m_OneUse(m_FDiv(m_FNeg(m_Value(X)), m_Value(Y))),
 1507       match(&I, m_c_FAdd(m_OneUse(m_FDiv(m_Value(X), m_FNeg(m_Value(Y)))),
 1716   if (match(Op0, m_OneUse(m_Add(m_Value(X), m_AllOnes()))))
 1720   if (match(Op1, m_OneUse(m_Add(m_Value(X), m_One()))))
 1724   if (match(Op1, m_OneUse(m_Not(m_Value(X))))) {
 1879     if (match(Op0, m_OneUse(m_c_Or(m_Value(Y), m_Specific(Op1)))))
 1997       match(Op0, m_OneUse(m_c_Xor(m_Specific(A), m_Specific(Op1))))) {
 2039   if (match(&I, m_FNeg(m_OneUse(m_FMul(m_Value(X), m_Constant(C))))))
 2042   if (match(&I, m_FNeg(m_OneUse(m_FDiv(m_Value(X), m_Constant(C))))))
 2045   if (match(&I, m_FNeg(m_OneUse(m_FDiv(m_Constant(C), m_Value(X))))))
 2058   if (match(FNeg, m_OneUse(m_FMul(m_Value(X), m_Value(Y)))))
 2061   if (match(FNeg, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))))
 2081       match(Op, m_OneUse(m_FSub(m_Value(X), m_Value(Y)))))
 2121     if (match(Op1, m_OneUse(m_FSub(m_Value(X), m_Value(Y))))) {
 2145   if (match(Op1, m_OneUse(m_FPTrunc(m_FNeg(m_Value(Y))))))
 2149   if (match(Op1, m_OneUse(m_FPExt(m_FNeg(m_Value(Y))))))
 2155   if (match(Op1, m_OneUse(m_c_FMul(m_FNeg(m_Value(X)), m_Value(Y))))) {
 2161   if (match(Op1, m_OneUse(m_FDiv(m_FNeg(m_Value(X)), m_Value(Y)))) ||
 2162       match(Op1, m_OneUse(m_FDiv(m_Value(X), m_FNeg(m_Value(Y)))))) {
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 1468   if (match(I.getOperand(0), m_OneUse(m_Not(m_Value(A)))) &&
 1469       match(I.getOperand(1), m_OneUse(m_Not(m_Value(B)))) &&
 1511   if (match(Cast, m_OneUse(m_ZExt(m_Value(X))))) {
 1521   if (match(Cast, m_OneUse(m_SExt(m_Value(X))))) {
 1689   if (!match(Op0, m_OneUse(m_Add(m_Specific(Op1), m_Constant(C)))) &&
 1690       !match(Op0, m_OneUse(m_Mul(m_Specific(Op1), m_Constant(C)))) &&
 1691       !match(Op0, m_OneUse(m_LShr(m_Specific(Op1), m_Constant(C)))) &&
 1692       !match(Op0, m_OneUse(m_Shl(m_Specific(Op1), m_Constant(C)))) &&
 1693       !match(Op0, m_OneUse(m_Sub(m_Constant(C), m_Specific(Op1)))))
 1754     if (match(Op0, m_OneUse(m_LogicalShift(m_One(), m_Value(X)))) &&
 1763     if (match(Op0, m_OneUse(m_Xor(m_Value(X), m_APInt(XorC))))) {
 1772     if (match(Op0, m_OneUse(m_Or(m_Value(X), m_APInt(OrC))))) {
 1788     if (match(Op0, m_OneUse(m_Xor(m_Value(X), m_Value(Y)))) ||
 1789         match(Op0, m_OneUse(m_Or(m_Value(X), m_Value(Y))))) {
 1828         if (match(Op0I, m_OneUse(m_c_BinOp(m_OneUse(m_ZExt(m_Value(X))),
 1828         if (match(Op0I, m_OneUse(m_c_BinOp(m_OneUse(m_ZExt(m_Value(X))),
 1879     if (match(Op1, m_OneUse(m_c_Xor(m_Specific(Op0), m_Value(B)))))
 1882     if (match(Op0, m_OneUse(m_c_Xor(m_Specific(Op1), m_Value(B)))))
 1924     if (LHS && match(Op1, m_OneUse(m_And(m_Value(X), m_Value(Y))))) {
 1932     if (RHS && match(Op0, m_OneUse(m_And(m_Value(X), m_Value(Y))))) {
 1955   if (match(Op0, m_OneUse(m_SExt(m_Value(A)))) &&
 1958   if (match(Op1, m_OneUse(m_SExt(m_Value(A)))) &&
 1967     if (match(&I, m_c_And(m_OneUse(m_AShr(m_NSWSub(m_Value(Y), m_Value(X)),
 2043   if (!match(Or0, m_OneUse(m_LogicalShift(m_Value(ShVal), m_Value(ShAmt0)))) ||
 2044       !match(Or1, m_OneUse(m_LogicalShift(m_Specific(ShVal), m_Value(ShAmt1)))))
 2140       match(B, m_OneUse(m_Not(m_Value(NotB))))) {
 2486   if (match(&I, m_c_Or(m_OneUse(m_Xor(m_Value(X), m_APInt(CV))), m_Value(Y))) &&
 2649     if (LHS && match(Op1, m_OneUse(m_Or(m_Value(X), m_Value(Y))))) {
 2657     if (RHS && match(Op0, m_OneUse(m_Or(m_Value(X), m_Value(Y))))) {
 2679   if (match(Op0, m_OneUse(m_SExt(m_Value(A)))) &&
 2682   if (match(Op1, m_OneUse(m_SExt(m_Value(A)))) &&
 2718     if (match(&I, m_c_Or(m_OneUse(m_AShr(m_NSWSub(m_Value(Y), m_Value(X)),
 2912                          m_OneUse(m_c_And(
 2948   if (!match(&I, m_Not(m_OneUse(m_Xor(m_Value(X), m_Value(Y))))))
 3010   if (match(&I, m_Not(m_OneUse(m_c_And(m_Not(m_Value(X)), m_Value(Y)))))) {
 3016   if (match(&I, m_Not(m_OneUse(m_c_Or(m_Not(m_Value(X)), m_Value(Y)))))) {
 3078     if (match(Op0, m_OneUse(m_Or(m_Not(m_Value(X)), m_Constant(C2))))) {
 3083     if (match(Op0, m_OneUse(m_And(m_Not(m_Value(X)), m_Constant(C2))))) {
 3092   if (match(&I, m_Not(m_OneUse(m_Cmp(Pred, m_Value(), m_Value()))))) {
 3159   if (match(Op1, m_OneUse(m_c_Or(m_Value(X), m_Specific(Op0)))))
 3163   if (match(Op0, m_OneUse(m_c_Or(m_Value(X), m_Specific(Op1)))))
 3168   if (match(Op1, m_OneUse(m_c_And(m_Value(X), m_Specific(Op0)))))
 3176       match(Op0, m_OneUse(m_c_And(m_Value(X), m_Specific(Op1)))))
 3181   if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))),
 3182                         m_OneUse(m_c_Or(m_Deferred(A), m_Value(C))))))
 3187   if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))),
 3188                         m_OneUse(m_c_Or(m_Deferred(B), m_Value(C))))))
 3227       match(Op0, m_OneUse(m_c_Add(m_Specific(A), m_Specific(Op1))))) {
lib/Transforms/InstCombine/InstCombineCalls.cpp
 2301     if (match(II->getArgOperand(0), m_OneUse(m_FPExt(m_Value(ExtSrc))))) {
 2322     if (match(II->getArgOperand(0), m_OneUse(m_FNeg(m_Value(X))))) {
 2612     if ((match(Arg0, m_OneUse(m_FSub(m_Value(A), m_Value(B)))) &&
lib/Transforms/InstCombine/InstCombineCasts.cpp
  510   if (!match(Trunc.getOperand(0), m_OneUse(m_Or(m_Value(Or0), m_Value(Or1)))))
  514   if (!match(Or0, m_OneUse(m_LogicalShift(m_Value(ShVal), m_Value(ShAmt0)))) ||
  515       !match(Or1, m_OneUse(m_LogicalShift(m_Specific(ShVal), m_Value(ShAmt1)))))
  528     if (match(R, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(L)))))
  586   if (!match(Trunc.getOperand(0), m_OneUse(m_BinOp(BinOp))))
  739     if (match(Src, m_OneUse(m_LShr(m_Value(X), m_APInt(C))))) {
  745     if (match(Src, m_OneUse(m_c_Or(m_LShr(m_Value(X), m_APInt(C)),
 1207       match(SrcI, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Constant(C)))) &&
 1213   if (SrcI && match(SrcI, m_OneUse(m_Xor(m_Value(And), m_Constant(C)))) &&
 1214       match(And, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Specific(C)))) &&
 1405   if (match(Src, m_OneUse(m_Trunc(m_Value(X)))) && X->getType() == DestTy) {
 2061       !match(BitCast.getOperand(0), m_OneUse(m_BinOp(BO))) ||
 2072   if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) &&
 2079   if (match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(X)))) &&
 2106              m_OneUse(m_Select(m_Value(Cond), m_Value(TVal), m_Value(FVal)))))
 2128   if (match(TVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy &&
 2135   if (match(FVal, m_OneUse(m_BitCast(m_Value(X)))) && X->getType() == DestTy &&
lib/Transforms/InstCombine/InstCombineCompares.cpp
 1348   if (!match(&I, m_ICmp(Pred, m_OneUse(m_IRem(m_Value(X), m_Value(Y))),
 1765   if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) &&
 1926   if (match(OrOp0, m_OneUse(m_Xor(m_Value(X1), m_Value(X2)))) &&
 1927       match(OrOp1, m_OneUse(m_Xor(m_Value(X3), m_Value(X4))))) {
 3386                           m_OneUse(m_AShr(m_Shl(m_Value(X), m_APInt(C0)),
 3503                m_c_And(m_OneUse(m_AnyLogicalShift), m_Value())))
 3610       match(&I, m_c_ICmp(Pred, m_OneUse(m_UDiv(m_AllOnes(), m_Value(X))),
 3631                              m_OneUse(m_UDiv(m_CombineAnd(m_c_Mul(m_Deferred(Y),
 3682   if (match(Op0, m_OneUse(m_c_Add(m_Specific(Op1), m_Value(X)))) &&
 3686   if (match(Op1, m_OneUse(m_c_Add(m_Specific(Op0), m_Value(X)))) &&
 4163   if (match(Op0, m_OneUse(m_And(m_Value(A), m_Value(B)))) &&
 4164       match(Op1, m_OneUse(m_And(m_Value(C), m_Value(D))))) {
 4209   if ((match(Op0, m_OneUse(m_LShr(m_Value(A), m_ConstantInt(Cst1)))) &&
 4210        match(Op1, m_OneUse(m_LShr(m_Value(B), m_Specific(Cst1))))) ||
 4211       (match(Op0, m_OneUse(m_AShr(m_Value(A), m_ConstantInt(Cst1)))) &&
 4212        match(Op1, m_OneUse(m_AShr(m_Value(B), m_Specific(Cst1)))))) {
 4225   if (match(Op0, m_OneUse(m_Shl(m_Value(A), m_ConstantInt(Cst1)))) &&
 4226       match(Op1, m_OneUse(m_Shl(m_Value(B), m_Specific(Cst1))))) {
 4242       match(Op0, m_Trunc(m_OneUse(m_LShr(m_Value(A), m_ConstantInt(ShAmt))))) &&
 4274   if (!match(Op0, m_OneUse(m_c_And(m_Add(m_Value(A), m_AllOnes()),
 4281   if (match(Op0, m_OneUse(m_c_And(m_Neg(m_Specific(Op1)), m_Specific(Op1)))))
 4284                  m_OneUse(m_c_And(m_Neg(m_Specific(Op0)), m_Specific(Op0)))))
 5311             m_c_ICmp(Pred, m_OneUse(m_Shl(m_One(), m_Value(Y))), m_Value(X)))) {
 5327                                   m_OneUse(m_CombineOr(
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
   61   if (match(V, m_LShr(m_OneUse(m_Shl(m_Value(One), m_Value(A))), m_Value(B))) &&
  138   if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_One(), m_AllOnes())),
  144   if (match(&I, m_c_Mul(m_OneUse(m_Select(m_Value(Cond), m_AllOnes(), m_One())),
  150   if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(1.0),
  160   if (match(&I, m_c_FMul(m_OneUse(m_Select(m_Value(Cond), m_SpecificFP(-1.0),
  268     if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) {
  295   if (match(&I, m_c_Mul(m_OneUse(m_Neg(m_Value(X))), m_Value(Y))))
  439       if (match(Op0, m_OneUse(m_FDiv(m_Constant(C1), m_Value(X))))) {
  461       if (match(Op0, m_OneUse(m_FAdd(m_Value(X), m_Constant(C1))))) {
  467       if (match(Op0, m_OneUse(m_FSub(m_Constant(C1), m_Value(X))))) {
  476     if (match(&I, m_c_FMul(m_OneUse(m_FDiv(m_Value(X), m_Value(Y))),
  487         match(Op0, m_OneUse(m_Intrinsic<Intrinsic::sqrt>(m_Value(X)))) &&
  488         match(Op1, m_OneUse(m_Intrinsic<Intrinsic::sqrt>(m_Value(Y))))) {
  540     if (match(Op0, m_OneUse(m_c_FMul(m_Specific(Op1), m_Value(Y)))) &&
  545     if (match(Op1, m_OneUse(m_c_FMul(m_Specific(Op0), m_Value(Y)))) &&
  555     if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::log2>(
  556             m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) {
  560     if (match(Op1, m_OneUse(m_Intrinsic<Intrinsic::log2>(
  561             m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) {
  935   if ((match(N, m_OneUse(m_ZExt(m_Value(X)))) && match(D, m_Constant(C))) ||
  936       (match(D, m_OneUse(m_ZExt(m_Value(X)))) && match(N, m_Constant(C)))) {
 1084     if (match(Op0, m_OneUse(m_SExt(m_Value(Op0Src)))) &&
 1111   if (match(&I, m_SDiv(m_OneUse(m_NSWSub(m_Zero(), m_Value(X))), m_Value(Y))))
 1230     if (match(Op0, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) &&
 1236     if (match(Op1, m_OneUse(m_FDiv(m_Value(X), m_Value(Y)))) &&
 1419   if (match(&I, m_SRem(m_OneUse(m_NSWSub(m_Zero(), m_Value(X))), m_Value(Y))))
lib/Transforms/InstCombine/InstCombineSelect.cpp
  511   if (!match(TVal, m_OneUse(m_And(m_Value(B), m_One()))))
  516   const bool HasShift = match(B, m_OneUse(m_LShr(m_Value(X), m_Value(Z))));
  623     if (!match(CmpLHS, m_OneUse(m_Trunc(m_Value(V)))))
 1321   if (!match(&Cmp, m_OneUse(m_ICmp(
 1846   if (!match(Cond, m_OneUse(m_ExtractElement(m_Value(), m_ConstantInt()))))
 2143   if (!match(Sel.getFalseValue(), m_OneUse(m_Or(m_Value(Or0), m_Value(Or1)))))
 2148   if (!match(Or0, m_OneUse(m_LogicalShift(m_Specific(TVal), m_Value(SA0)))) ||
 2149       !match(Or1, m_OneUse(m_LogicalShift(m_Specific(TVal), m_Value(SA1)))))
 2167   if (match(SA1, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(SA0)))))
 2169   else if (match(SA0, m_OneUse(m_Sub(m_SpecificInt(Width), m_Specific(SA1)))))
 2177   if (!match(Cond, m_OneUse(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()))) ||
 2227   if (match(CondVal, m_OneUse(m_ICmp(Pred, m_Value(), m_Value()))) &&
 2587   if (match(TrueVal, m_OneUse(m_BinOp(TrueBO))) &&
 2607   if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) &&
lib/Transforms/InstCombine/InstCombineShifts.cpp
   79       !match(Sh0, m_c_BinOp(m_OneUse(m_Value()), m_Value())))
  292   if (match(Op1, m_OneUse(m_SExt(m_Value(Y))))) {
  712                   m_And(m_OneUse(m_Shr(m_Value(V1), m_Specific(Op1))),
  746                   m_And(m_OneUse(m_Shr(m_Value(V1), m_Value(V2))),
  805     if (match(Op0, m_Select(m_Value(Cond), m_OneUse(m_BinOp(TBO)),
  825                             m_OneUse(m_BinOp(FBO))))) {
  872     if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) {
  933   if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) {
  944     if (match(Op0, m_OneUse(m_Shl(m_Constant(C2), m_Value(X)))))
 1035     if (match(Op0, m_OneUse(m_ZExt(m_Value(X)))) &&
 1087   if (match(Op0, m_OneUse(m_Shl(m_Value(X), m_Specific(Op1))))) {
 1150   if (HadTrunc && !match(&OldAShr, m_c_BinOp(m_OneUse(m_Value()), m_Value())))
 1222     if (match(Op0, m_OneUse(m_SExt(m_Value(X)))) &&
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
   63   if (match(V, m_OneUse(m_Load(m_Value()))))
   67   if (match(V, m_OneUse(m_BinOp(m_Value(V0), m_Value(V1)))))
   73   if (match(V, m_OneUse(m_Cmp(UnusedPred, m_Value(V0), m_Value(V1)))))
 1533   if (!match(Op0, m_OneUse(m_InsertElement(m_Undef(), m_Value(X),
 1695              m_OneUse(m_Select(m_Value(Cond), m_Value(X), m_Value(Y)))))
 1702   if (!match(Cond, m_OneUse(m_ShuffleVector(m_Value(NarrowCond), m_Undef(),
lib/Transforms/InstCombine/InstructionCombining.cpp
  436           match(Op0, m_OneUse(m_BinOp(m_Value(A), m_Constant(C1)))) &&
  437           match(Op1, m_OneUse(m_BinOp(m_Value(B), m_Constant(C2))))) {
 1490           m_OneUse(m_ShuffleVector(m_Value(V1), m_Undef(), m_Constant(Mask))),
 2578   if (match(&BI, m_Br(m_OneUse(m_Cmp(Pred, m_Value(), m_Value())),
lib/Transforms/Scalar/Reassociate.cpp
 1949   if (!match(V, m_OneUse(m_Instruction(I))))
 2057   if (match(I, m_FAdd(m_Value(X), m_OneUse(m_Instruction(Op)))))
 2060   if (match(I, m_FAdd(m_OneUse(m_Instruction(Op)), m_Value(X))))
 2063   if (match(I, m_FSub(m_Value(X), m_OneUse(m_Instruction(Op)))))
lib/Transforms/Utils/SimplifyLibCalls.cpp
 1369     if (match(Call->getArgOperand(0), m_OneUse(m_FNeg(m_Value(X)))))
unittests/IR/PatternMatch.cpp
   61   EXPECT_TRUE(m_OneUse(m_Value(V)).match(One));
   64   EXPECT_FALSE(m_OneUse(m_Value()).match(Two));
   65   EXPECT_FALSE(m_OneUse(m_Value()).match(Leaf));