Lines Matching defs:Cmp1
711 Value *InstCombinerImpl::simplifyRangeCheck(ICmpInst *Cmp0, ICmpInst *Cmp1,
727 ICmpInst::Predicate Pred1 = (Inverted ? Cmp1->getInversePredicate() :
728 Cmp1->getPredicate());
731 Value *Cmp1Op0 = Cmp1->getOperand(0);
732 Value *Cmp1Op1 = Cmp1->getOperand(1);
756 KnownBits Known = computeKnownBits(RangeEnd, /*Depth=*/0, Cmp1);
937 static Value *foldIsPowerOf2OrZero(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd,
944 !match(Cmp1, m_ICmp(Pred1, m_Specific(X), m_ZeroInt())))
967 static Value *foldIsPowerOf2(ICmpInst *Cmp0, ICmpInst *Cmp1, bool JoinedByAnd,
971 if (JoinedByAnd && Cmp1->getPredicate() == ICmpInst::ICMP_NE)
972 std::swap(Cmp0, Cmp1);
973 else if (!JoinedByAnd && Cmp1->getPredicate() == ICmpInst::ICMP_EQ)
974 std::swap(Cmp0, Cmp1);
980 match(Cmp1, m_SpecificICmp(ICmpInst::ICMP_ULT,
983 auto *CtPop = cast<Instruction>(Cmp1->getOperand(0));
992 match(Cmp1, m_SpecificICmp(ICmpInst::ICMP_UGT,
995 auto *CtPop = cast<Instruction>(Cmp1->getOperand(0));
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())
1235 std::optional<IntPart> L1 = GetMatchPart(Cmp1, 0);
1236 std::optional<IntPart> R1 = GetMatchPart(Cmp1, 1);
1269 /// Cmp0/Cmp1 switched to handle logic op commutativity.
1270 static Value *foldAndOrOfICmpsWithConstEq(ICmpInst *Cmp0, ICmpInst *Cmp1,
1291 if (!match(Cmp1, m_c_ICmp(Pred1, m_Value(Y), m_Specific(X))))
1303 if (!Cmp1->hasOneUse())
3535 Value *Cmp1, *Cmp2, *Cmp3, *Cmp4;
3536 if (!match(I.getOperand(0), m_And(m_Value(Cmp1), m_Value(Cmp2))) ||
3541 if (isKnownInversion(Cmp1, Cmp3) && isKnownInversion(Cmp2, Cmp4))
3542 return Builder.CreateXor(Cmp1, Cmp4);
3543 if (isKnownInversion(Cmp1, Cmp4) && isKnownInversion(Cmp2, Cmp3))
3544 return Builder.CreateXor(Cmp1, Cmp3);