Lines Matching defs:Cmp0

711 Value *InstCombinerImpl::simplifyRangeCheck(ICmpInst *Cmp0, ICmpInst *Cmp1,
715 ConstantInt *RangeStart = dyn_cast<ConstantInt>(Cmp0->getOperand(1));
719 ICmpInst::Predicate Pred0 = (Inverted ? Cmp0->getInversePredicate() :
720 Cmp0->getPredicate());
730 Value *Input = Cmp0->getOperand(0);
937 static Value *foldIsPowerOf2OrZero(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd,
942 if (!match(Cmp0, m_ICmp(Pred0, m_Intrinsic<Intrinsic::ctpop>(m_Value(X)),
947 auto *CtPop = cast<Instruction>(Cmp0->getOperand(0));
967 static Value *foldIsPowerOf2(ICmpInst *Cmp0, ICmpInst *Cmp1, bool JoinedByAnd,
972 std::swap(Cmp0, Cmp1);
974 std::swap(Cmp0, Cmp1);
979 match(Cmp0, m_SpecificICmp(ICmpInst::ICMP_NE, m_Value(X), m_ZeroInt())) &&
991 match(Cmp0, m_SpecificICmp(ICmpInst::ICMP_EQ, m_Value(X), m_ZeroInt())) &&
1075 static Value *foldPowerOf2AndShiftedMask(ICmpInst *Cmp0, ICmpInst *Cmp1,
1086 getMaskedTypeForICmpPair(A, B, C, D, E, Cmp0, Cmp1, CmpPred0, CmpPred1);
1184 Value *InstCombinerImpl::foldEqOfParts(Value *Cmp0, Value *Cmp1, bool IsAnd) {
1185 if (!Cmp0->hasOneUse() || !Cmp1->hasOneUse())
1233 std::optional<IntPart> L0 = GetMatchPart(Cmp0, 0);
1234 std::optional<IntPart> R0 = GetMatchPart(Cmp0, 1);
1269 /// Cmp0/Cmp1 switched to handle logic op commutativity.
1270 static Value *foldAndOrOfICmpsWithConstEq(ICmpInst *Cmp0, ICmpInst *Cmp1,
1274 // Match an equality compare with a non-poison constant as Cmp0.
1279 if (!match(Cmp0, m_ICmp(Pred0, m_Value(X), m_Constant(C))) ||
1308 return IsAnd ? Builder.CreateLogicalAnd(Cmp0, SubstituteCmp)
1309 : Builder.CreateLogicalOr(Cmp0, SubstituteCmp);
1310 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0,