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

References

lib/Analysis/InstructionSimplify.cpp
  460   if (match(FCmp, m_Zero()))
  470   if (match(FCmp, m_One()) && match(TCmp, m_Zero()))
  586   if (match(Op1, m_Zero()))
  707   if (match(Op1, m_Zero()))
  715   if (match(Op0, m_Zero())) {
  838   if (match(Op1, m_CombineOr(m_Undef(), m_Zero())))
  902   if (match(Op1, m_Zero()))
  924   if (match(Op0, m_Zero()))
 1201   if (match(Op0, m_Zero()))
 1208   if (match(Op1, m_Zero()) ||
 1379   if (!match(ZeroICmp, m_ICmp(EqPred, m_Value(Y), m_Zero())) ||
 1576   if (!match(Cmp0->getOperand(1), m_Zero()) ||
 1577       !match(Cmp1->getOperand(1), m_Zero()) || P0 != P1)
 1863   if (!match(Op0, m_ICmp(Pred, m_Value(X), m_Zero())) ||
 1887   if (!match(Op0, m_ICmp(Pred, m_Value(X), m_Zero())) ||
 1917   if (match(Op1, m_Zero()))
 2072   if (Op0 == Op1 || match(Op1, m_Zero()))
 2213   if (match(Op1, m_Zero()))
 2497   if (match(RHS, m_Zero())) {
 2563   if (!match(RHS, m_Zero()))
 2633     if (Pred == ICmpInst::ICMP_SLT && match(RHS, m_Zero()))
 3821   if (ICmpInst::isEquality(Pred) && match(CmpRHS, m_Zero())) {
 4011     if (match(Ops[1], m_Zero()) && Ops[0]->getType() == GEPTy)
 4028           if (match(P, m_Zero()))
 4065              [](Value *Idx) { return match(Idx, m_Zero()); })) {
 4076                 m_Sub(m_Zero(), m_PtrToInt(m_Specific(StrippedBasePtr))))) {
 5030     if (match(Op0, m_Zero()) || match(Op1, m_Zero()))
 5030     if (match(Op0, m_Zero()) || match(Op1, m_Zero()))
 5052     if (match(Op1, m_Zero()))
 5055     if (match(Op0, m_Zero()))
 5060     if (match(Op0, m_Zero()) || match(Op1, m_AllOnes()))
 5068     if (match(Op1, m_Zero()))
lib/Analysis/ValueTracking.cpp
 1930                m_c_ICmp(Pred, m_Specific(V), m_Zero())) ||
 4690   if (match(TrueVal, m_Zero()) &&
 4697   if (match(FalseVal, m_Zero()) &&
lib/Analysis/VectorUtils.cpp
  134   while (LastOperand > 1 && match(Gep->getOperand(LastOperand), m_Zero())) {
lib/IR/ConstantFold.cpp
 1029       if (match(C2, m_Zero()) || match(C2, m_One()))
 1039       if (match(C2, m_Zero()))
 1052       if (match(C2, m_Zero()))
 1061       if (match(C2, m_Zero()))
 1071       if (match(C2, m_Zero()))
lib/Target/ARM/ARMISelLowering.cpp
14793                              m_Undef(), m_Zero()))) {
lib/Target/ARM/MVETailPredication.cpp
  219                                       m_Zero())))
  225                                      m_Zero())))
  255                                              m_Zero())))
  260   if (!match(Insert, m_InsertElement(m_Undef(), m_Instruction(IV), m_Zero())))
  270   if (!match(OnEntry, m_Zero()))
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  708   if (match(C, m_Zero()))
  745   } else if (match(ShouldSameV, m_Zero())) {
  799   if (match(CondV, m_ICmp(P, m_Value(C), m_Zero())) ||
  800       match(CondV, m_ICmp(P, m_Zero(), m_Value(C)))) {
lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1174   if (!match(Zero, m_Zero()))
 1362       if (match(FV, m_Zero()) && match(TV, m_Sub(m_Value(N), m_Specific(A))))
 1366       if (match(TV, m_Zero()) && match(FV, m_Sub(m_Value(N), m_Specific(A))))
 1901     if (match(Op0, m_Zero()) && match(Op1, m_SDiv(m_Value(X), m_APInt(DivC))) &&
 1910     if (match(Op1, m_Shl(m_Value(X), m_Value(Y))) && match(Op0, m_Zero()))
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  973     if (match(ICmp, m_ICmp(Pred, m_And(m_Value(X), m_APInt(Mask)), m_Zero())) &&
 1060   if (!match(ZeroICmp, m_ICmp(EqPred, m_Value(ZeroCmpOp), m_Zero())) ||
 2099     if (!((match(EltC1, m_Zero()) && match(EltC2, m_AllOnes())) ||
 2100           (match(EltC2, m_Zero()) && match(EltC1, m_AllOnes()))))
 2829         (PredL == CmpInst::ICMP_SLT && match(LHS1, m_Zero()) &&
 2830          PredR == CmpInst::ICMP_SLT && match(RHS1, m_Zero()))) {
 2837          PredR == CmpInst::ICMP_SLT && match(RHS1, m_Zero())) ||
 2838         (PredL == CmpInst::ICMP_SLT && match(LHS1, m_Zero()) &&
lib/Transforms/InstCombine/InstCombineCalls.cpp
 3743     if (match(Src1, m_Zero()) &&
 3954     if (match(IIOperand, m_ICmp(Pred, m_Instruction(LHS), m_Zero())) &&
lib/Transforms/InstCombine/InstCombineCompares.cpp
 1349                         m_CombineAnd(m_Zero(), m_Value(Zero)))))
 1364   if (!I.isEquality() || !match(&I, m_ICmp(Pred, m_Instruction(Val), m_Zero())))
 1394   if (!match(Cmp.getOperand(1), m_Zero()))
 2747           match(Op1, m_Zero()))
 2764       if (Cmp.isEquality() && match(Op1, m_Zero()))
 3455   if (!I.isEquality() || !match(I.getOperand(1), m_Zero()) ||
 4440       return match(RHS, m_Zero());
 5235   if (match(B, m_Zero())) {
 5399   if (I.getPredicate() == ICmpInst::ICMP_NE && match(Op1, m_Zero())) {
 5521         match(Op1, m_Zero()) &&
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  585   if (match(SI->getTrueValue(), m_Zero()))
  588   else if (match(SI->getFalseValue(), m_Zero()))
 1101         match(Op0, m_NSWSub(m_Zero(), m_Value(X)))) {
 1111   if (match(&I, m_SDiv(m_OneUse(m_NSWSub(m_Zero(), 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/InstCombinePHI.cpp
 1183         match(CmpInst->getOperand(1), m_Zero())) {
lib/Transforms/InstCombine/InstCombineSelect.cpp
  140     if (!match(Cmp->getOperand(1), m_Zero()))
  506         match(Cmp->getOperand(1), m_Zero()) && match(FVal, m_One())))
  604     if (!match(CmpRHS, m_Zero()))
  620         (!IsEqualZero && !match(CmpRHS, m_Zero())))
  689   if (match(TrueVal, m_Zero())) {
  693   if (!match(FalseVal, m_Zero()))
  807   if (!ICI->isEquality() || !match(ICI->getOperand(1), m_Zero()))
  849   if (!ICI->isEquality() || !match(CmpRHS, m_Zero()))
 1436         match(CmpRHS, m_Zero())) {
 1439     } else if (Pred == ICmpInst::ICMP_SLT && match(CmpRHS, m_Zero())) {
 2245     if (match(TrueVal, m_Zero())) {
 2250     if (match(FalseVal, m_Zero())) {
 2284     if (match(TrueVal, m_One()) && match(FalseVal, m_Zero()))
 2288     if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero()))
 2292     if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) {
 2298     if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) {
lib/Transforms/InstCombine/InstructionCombining.cpp
 1168   if (match(Val, m_Zero()) || Scale == 1) {
 1344   if (match(Op, m_Zero())) {
 1670       if (!isa<Constant>(*I) || !match(I->get(), m_Zero())) {
 2485                              m_Zero()),
lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
   63     if (match(BI->getOperand(0), m_Zero())) {
lib/Transforms/Utils/Local.cpp
 2037             if (match(CI->getArgOperand(0), m_CombineOr(m_Zero(), m_Undef()))) {
 2053             if (match(CI->getArgOperand(0), m_Zero()))
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));
  467   EXPECT_TRUE(m_c_Add(m_One(), m_Zero()).match(X));
  468   EXPECT_TRUE(m_c_Add(m_Zero(), m_One()).match(X));
  470   EXPECT_FALSE(m_Unless(m_c_Add(m_One(), m_Zero())).match(X));
  471   EXPECT_FALSE(m_Unless(m_c_Add(m_Zero(), m_One())).match(X));
  946       match(VI1, m_InsertElement(m_Undef(), m_ConstantInt(), m_Zero())));
  948       match(VI1, m_InsertElement(m_Undef(), m_SpecificInt(1), m_Zero())));
  971   EXPECT_TRUE(match(SI1, m_ShuffleVector(m_Value(), m_Undef(), m_Zero())));
  981       m_ShuffleVector(m_InsertElement(m_Undef(), m_SpecificInt(1), m_Zero()),
  982                       m_Undef(), m_Zero())));
  984       SI3, m_ShuffleVector(m_InsertElement(m_Undef(), m_Value(), m_Zero()),
  985                            m_Undef(), m_Zero())));
  987       SI4, m_ShuffleVector(m_InsertElement(m_Undef(), m_Value(), m_Zero()),
  988                            m_Undef(), m_Zero())));
  991       m_ShuffleVector(m_InsertElement(m_Undef(), m_SpecificInt(2), m_Zero()),
  992                       m_Undef(), m_Zero())));
  994       SP2, m_ShuffleVector(m_InsertElement(m_Undef(), m_Value(A), m_Zero()),
  995                            m_Undef(), m_Zero())));
 1020   EXPECT_FALSE(match(ScalarUndef, m_Zero()));
 1021   EXPECT_FALSE(match(VectorUndef, m_Zero()));
 1022   EXPECT_TRUE(match(ScalarZero, m_Zero()));
 1023   EXPECT_TRUE(match(VectorZero, m_Zero()));
 1024   EXPECT_TRUE(match(VectorZeroUndef, m_Zero()));