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

References

lib/Analysis/GuardUtils.cpp
   42   if (!match(U, m_Br(m_And(m_Value(Condition), m_Value(WidenableCondition)),
lib/Analysis/InstructionSimplify.cpp
 2120   if (match(Op0, m_And(m_Value(A), m_Value(B))) &&
 2129   if (match(Op1, m_And(m_Value(A), m_Value(B))) &&
 2164   if (match(Op0, m_And(m_Value(A), m_APInt(C1))) &&
 2165       match(Op1, m_And(m_Value(B), m_APInt(C2)))) {
 3770   if (FalseVal == X && match(TrueVal, m_And(m_Specific(X), m_APInt(C))) &&
 3776   if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) &&
 3824     if (match(CmpLHS, m_And(m_Value(X), m_APInt(Y))))
lib/Analysis/ValueTracking.cpp
 1780   if (OrZero && match(V, m_And(m_Value(X), m_Value(Y)))) {
 1797       if (match(X, m_And(m_Specific(Y), m_Value())) ||
 1798           match(X, m_And(m_Value(), m_Specific(Y))))
 1801       if (match(Y, m_And(m_Specific(X), m_Value())) ||
 1802           match(Y, m_And(m_Value(), m_Specific(X))))
 5331       (LHSIsTrue && match(LHS, m_And(m_Value(ALHS), m_Value(ARHS))))) {
lib/CodeGen/CodeGenPrepare.cpp
 7206     if (match(LogicOp, m_And(m_OneUse(m_Value(Cond1)),
lib/Target/Hexagon/HexagonGenExtract.cpp
  105   bool Match = match(In, m_And(m_Shl(m_LShr(m_Value(BF), m_ConstantInt(CSR)),
  112     Match = match(In, m_And(m_Shl(m_AShr(m_Value(BF), m_ConstantInt(CSR)),
  120     Match = match(In, m_And(m_Shl(m_Value(BF), m_ConstantInt(CSL)),
  129     Match = match(In, m_And(m_LShr(m_Value(BF), m_ConstantInt(CSR)),
  136     Match = match(In, m_And(m_AShr(m_Value(BF), m_ConstantInt(CSR)),
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  683   if (!match(CondV, m_ICmp(P, m_And(m_Value(A), m_Value(B)), m_Value(C))) &&
  684       !match(CondV, m_ICmp(P, m_Value(C), m_And(m_Value(A), m_Value(B)))))
  817   if (!match(C, m_And(m_Value(X), m_One())) &&
  818       !match(C, m_And(m_One(), m_Value(X))))
lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
  181     if (match(V, m_And(m_Value(Op0), m_One()))) {
  185     if (match(V, m_And(m_Value(Op0), m_Value(Op1))))
  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())))
  291     if (match(MulOp0, m_And(m_c_Add(m_LShr(m_Value(ShiftOp0), m_SpecificInt(4)),
  297                 m_c_Add(m_And(m_Value(AndOp0), m_SpecificInt(Mask33)),
  298                         m_And(m_LShr(m_Deferred(AndOp0), m_SpecificInt(2)),
  303             match(SubOp1, m_And(m_LShr(m_Specific(Root), m_SpecificInt(1)),
lib/Transforms/InstCombine/InstCombineAddSub.cpp
  796       } else if (match(Y, m_And(m_Value(Z), m_APInt(C2))) && (*C1 == *C2)) {
  818       if (match(Y, m_And(m_Value(Z), m_APInt(C2))) && *C1 == (*C2 + 1)) {
  981   if (match(E, m_And(m_Value(Op), m_APInt(AI))) && (*AI + 1).isPowerOf2()) {
 1327         match(LHS, m_And(m_Value(X), m_ConstantInt(C2))) &&
 1845     if (match(Op1, m_And(m_Value(A), m_Value(B))) &&
 1853     if (match(Op0, m_And(m_Value(A), m_Value(B))) &&
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  335     if (!match(L1, m_And(m_Value(L11), m_Value(L12)))) {
  342     if (!match(L2, m_And(m_Value(L21), m_Value(L22)))) {
  370     if (!match(R1, m_And(m_Value(R11), m_Value(R12)))) {
  396     if (!match(R2, m_And(m_Value(R11), m_Value(R12)))) {
  878   if (match(LHS->getOperand(0), m_And(m_Value(A), m_Value(B))) &&
  879       match(RHS->getOperand(0), m_And(m_Value(C), m_Value(D)))) {
  973     if (match(ICmp, m_ICmp(Pred, m_And(m_Value(X), m_APInt(Mask)), m_Zero())) &&
 1227         match(LHS0, m_And(m_Specific(V), m_ConstantInt(AndC)))) {
 1231                match(RHS0, m_And(m_Specific(V), m_ConstantInt(AndC)))) {
 1638     if (match(Op0, m_And(m_Value(A), m_Value(B))) &&
 1854       if (match(Op0, m_Trunc(m_And(m_Value(X), m_ConstantInt(YC))))) {
 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))))) {
 1999   bool OrOfAnds = match(Op0, m_And(m_Value(), m_Value())) &&
 2000                   match(Op1, m_And(m_Value(), m_Value()));
 2009                        match(Op1, m_And(m_Value(), m_Value()))) ||
 2010                       (match(Op0, m_And(m_Value(), m_Value())) &&
 2059     if (match(L, m_And(m_Value(X), m_SpecificInt(Mask))) &&
 2060         match(R, m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask))))
 2065     if (match(L, m_ZExt(m_And(m_Value(X), m_SpecificInt(Mask)))) &&
 2066         match(R, m_And(m_Neg(m_ZExt(m_And(m_Specific(X), m_SpecificInt(Mask)))),
 2066         match(R, m_And(m_Neg(m_ZExt(m_And(m_Specific(X), m_SpecificInt(Mask)))),
 2497   if (match(Op0, m_And(m_Value(A), m_Value(C))) &&
 2498       match(Op1, m_And(m_Value(B), m_Value(D)))) {
 2589   if (match(Op0, m_And(m_Or(m_Specific(Op1), m_Value(C)), m_Value(A))))
 2609     if (match(Op0, m_And(m_Specific(A), m_Specific(B))) ||
 2610         match(Op0, m_And(m_Specific(B), m_Specific(A))))
 2750   if (match(&I, m_c_Xor(m_And(m_Value(A), m_Value(B)),
 2790       (match(Op0, m_And(m_Value(A), m_Value(B))) &&
 3083     if (match(Op0, m_OneUse(m_And(m_Not(m_Value(X)), m_Constant(C2))))) {
 3193   if (match(Op0, m_And(m_Value(A), m_Value(B))) &&
lib/Transforms/InstCombine/InstCombineCalls.cpp
 3936     if (match(IIOperand, m_And(m_Value(A), m_Value(B)))) {
lib/Transforms/InstCombine/InstCombineCasts.cpp
  535     if (match(L, m_And(m_Value(X), m_SpecificInt(Mask))) &&
  536         match(R, m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask))))
  540     if (match(L, m_ZExt(m_And(m_Value(X), m_SpecificInt(Mask)))) &&
  541         match(R, m_ZExt(m_And(m_Neg(m_Specific(X)), m_SpecificInt(Mask)))))
 1207       match(SrcI, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Constant(C)))) &&
 1214       match(And, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Specific(C)))) &&
lib/Transforms/InstCombine/InstCombineCompares.cpp
 1730   if (!match(And, m_And(m_Value(X), m_APInt(C2))))
 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))))) {
 4198        match(Op1, m_And(m_Value(B), m_ConstantInt(Cst1)))) ||
 4199       (Op1->hasOneUse() && match(Op0, m_And(m_Value(B), m_ConstantInt(Cst1))) &&
 4613     if (match(OtherVal, m_And(m_Value(ValToMask), m_ConstantInt(CI)))) {
 4992       if (!match(Op0, m_And(m_Value(LHS), m_APInt(LHSC))) ||
 5520     if (match(Op0, m_And(m_Value(A), m_Not(m_Value(B)))) &&
lib/Transforms/InstCombine/InstCombineSelect.cpp
  145     if (!match(V, m_And(m_Value(), m_Power2(AndRHS))))
  511   if (!match(TVal, m_OneUse(m_And(m_Value(B), m_One()))))
  608     if (!match(CmpLHS, m_And(m_Value(), m_Power2(C1))))
 1435         match(CmpLHS, m_And(m_Value(X), m_Power2(Y))) &&
lib/Transforms/InstCombine/InstCombineShifts.cpp
  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))),
lib/Transforms/Scalar/GVN.cpp
 1864     if ((isKnownTrue && match(LHS, m_And(m_Value(A), m_Value(B)))) ||
lib/Transforms/Scalar/GuardWidening.cpp
  625     if (match(CheckCond, m_And(m_Value(AndLHS), m_Value(AndRHS))))
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  344   if (match(Condition, m_And(m_Value(), m_Value()))) {
lib/Transforms/Scalar/LoopPredication.cpp
  747     if (match(Condition, m_And(m_Value(LHS), m_Value(RHS)))) {
lib/Transforms/Utils/PredicateInfo.cpp
  424   if (match(BI->getCondition(), m_And(m_Cmp(Pred, m_Value(), m_Value()),
lib/Transforms/Utils/SimplifyCFG.cpp
  547                 m_And(m_Value(RHSVal), m_APInt(RHSC)))) {
unittests/IR/PatternMatch.cpp
  557     EXPECT_TRUE(match(IRB.CreateAnd(X, X), m_And(m_Value(tX), m_Deferred(tX))));