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

References

include/llvm/IR/PatternMatch.h
 1627     auto AddExpr = m_Add(m_Value(AddLHS), m_Value(AddRHS));
lib/Analysis/InstructionSimplify.cpp
  735   if (MaxRecurse && match(Op0, m_Add(m_Value(X), m_Value(Y)))) { // (X + Y) - Z
  757   if (MaxRecurse && match(Op1, m_Add(m_Value(Y), m_Value(Z)))) { // X - (Y + Z)
 1616   if (!match(Op0, m_ICmp(Pred0, m_Add(m_Value(V), m_APInt(C0)), m_APInt(C1))))
 1689   if (!match(Op0, m_ICmp(Pred0, m_Add(m_Value(V), m_APInt(C0)), m_APInt(C1))))
 1977   if (match(Op0, m_Add(m_Specific(Op1), m_AllOnes())) &&
 1980   if (match(Op1, m_Add(m_Specific(Op0), m_AllOnes())) &&
lib/Analysis/LazyValueInfo.cpp
  970         if (match(SI->getFalseValue(), m_Add(m_Specific(A),
  978         if (match(SI->getTrueValue(), m_Add(m_Specific(A),
 1219   if (LHS != Val && !match(LHS, m_Add(m_Specific(Val), m_ConstantInt()))) {
 1226     match(LHS, m_Add(m_Specific(Val), m_ConstantInt(Offset)));
lib/Analysis/ValueTracking.cpp
 1007         match(I, m_c_BinOp(m_Value(X), m_Add(m_Deferred(X), m_Value(Y))))) {
 1793   if (match(V, m_Add(m_Value(X), m_Value(Y)))) {
 2168   else if (match(V, m_Add(m_Value(X), m_Value(Y)))) {
lib/Analysis/VectorUtils.cpp
  300   if (match(V, m_Add(m_Value(Val), m_Constant(C))))
lib/CodeGen/CodeGenPrepare.cpp
 1248     if (match(U, m_Add(m_Specific(A), m_Specific(B)))) {
 1324     if (match(U, m_Add(m_Specific(A), m_APInt(AddC))) &&
 3515       match(ScaleReg, m_Add(m_Value(AddLHS), m_ConstantInt(CI)))) {
lib/Target/ARM/MVETailPredication.cpp
  230   if (!match(BECount, m_Add(m_Value(TripCount), m_AllOnes())))
  240   if (!match(Induction, m_Add(m_Instruction(BroadcastSplat),
  277   if (!match(InLoop, m_Add(m_Instruction(LHS), m_SpecificInt(Lanes))))
lib/Transforms/InstCombine/InstCombineAddSub.cpp
  782   if (match(RHS, m_Add(m_Value(X), m_One())))
  785   if (match(LHS, m_Add(m_Value(X), m_One()))) {
 1063   if (!match(&I, m_Add(m_OneUse(m_Shl(m_One(), m_Value(NBits))), m_AllOnes())))
 1093   if (match(&I, m_Add(m_UMin(m_Value(X), m_APInt(NotC)), m_APInt(C))) &&
 1308   if (match(&I, m_c_BinOp(m_Add(m_Value(A), m_One()), m_Not(m_Value(B)))) ||
 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()))))
 1768     if (match(Op1, m_Add(m_Value(X), m_Constant(C2))))
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  939                 m_ICmp(Pred, m_Add(m_Value(X), m_Power2(I01)), m_Power2(I1))) &&
 1689   if (!match(Op0, m_OneUse(m_Add(m_Specific(Op1), m_Constant(C)))) &&
 2222     if (match(LAdd, m_Add(m_Value(LAddOpnd), m_ConstantInt(LAddC))) &&
 2223         match(RAdd, m_Add(m_Value(RAddOpnd), m_ConstantInt(RAddC))) &&
 2339     if (match(LHS0, m_Add(m_Specific(RHS0), m_ConstantInt(AddC))))
 3070     if (match(Op0, m_Add(m_Value(X), m_Constant(C))))
 3107       if (RHSC->isSignMask() && match(Op0, m_Add(m_Value(X), m_APInt(C)))) {
lib/Transforms/InstCombine/InstCombineCompares.cpp
 1450       match(Op0, m_Add(m_Add(m_Value(A), m_Value(B)), m_ConstantInt(CI2))))
 1450       match(Op0, m_Add(m_Add(m_Value(A), m_Value(B)), m_ConstantInt(CI2))))
 3284                   m_Add(m_Shl(m_One(), m_Value()), m_AllOnes())),
 4010     auto LSubOne = m_Add(m_Specific(Op1), m_AllOnes());
 4274   if (!match(Op0, m_OneUse(m_c_And(m_Add(m_Value(A), m_AllOnes()),
 5329                                       m_Add(m_Shl(m_One(), m_Value(Y)),
 5585     if (match(Op0, m_Add(m_Value(X), m_APInt(C))) && Op1 == X)
 5589     if (match(Op1, m_Add(m_Value(X), m_APInt(C))) && Op0 == X)
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  246           else if (match(Op0, m_Add(m_Value(Y), m_ConstantInt(C1))))
  268     if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) {
lib/Transforms/InstCombine/InstCombineSelect.cpp
  739       match(TVal, m_Add(m_Value(X), m_APInt(C))) && X == Cmp0 &&
 1232                   m_Add(m_Specific(X),
lib/Transforms/InstCombine/InstCombineShifts.cpp
  194   auto MaskA = m_Add(m_Shl(m_One(), m_Value(MaskShAmt)), m_AllOnes());
  319   if (match(Op0, m_Constant()) && match(Op1, m_Add(m_Value(A), m_Constant(C))))
lib/Transforms/InstCombine/InstructionCombining.cpp
 2596   if (match(Cond, m_Add(m_Value(Op0), m_ConstantInt(AddRHS)))) {
lib/Transforms/Scalar/GuardWidening.cpp
  666     if (match(Check.getBase(), m_Add(m_Value(OpLHS), m_ConstantInt(OpRHS)))) {
lib/Transforms/Scalar/JumpThreading.cpp
  858             match(CmpLHS, m_Add(m_Value(AddLHS), m_ConstantInt(AddConst)))) {
lib/Transforms/Scalar/NaryReassociate.cpp
  500     return match(V, m_Add(m_Value(Op1), m_Value(Op2)));
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
 1171   if (match(I, m_Add(m_SExt(m_Value(LHS)), m_SExt(m_Value(RHS)))) ||
lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
  421   return (match(A, m_Add(m_Value(B), m_ConstantInt(C))) ||
  422           match(A, m_Add(m_ConstantInt(C), m_Value(B))));
lib/Transforms/Utils/SimplifyCFG.cpp
  601     if (match(I->getOperand(0), m_Add(m_Value(RHSVal), m_APInt(RHSC)))) {
unittests/IR/PatternMatch.cpp
  461   EXPECT_TRUE(m_Add(m_One(), m_Zero()).match(X));
  462   EXPECT_FALSE(m_Add(m_Zero(), m_One()).match(X));
  464   EXPECT_FALSE(m_Unless(m_Add(m_One(), m_Zero())).match(X));
  465   EXPECT_TRUE(m_Unless(m_Add(m_Zero(), m_One())).match(X));