Lines Matching defs:BO0

1273     auto *BO0 = cast<OverflowingBinaryOperator>(Cmp.getOperand(0));
1274 if (BO0->hasNoUnsignedWrap() || BO0->hasNoSignedWrap()) {
5075 BinaryOperator *BO0 = dyn_cast<BinaryOperator>(Op0);
5077 if (!BO0 && !BO1)
5116 if (ICmpInst::isEquality(Pred) && BO0 &&
5118 match(BO0, m_And(m_Value(), m_NegatedPower2OrZero()))) {
5120 Value *NewC = Builder.CreateSub(I.getOperand(1), BO0->getOperand(1));
5123 BO0->getOperand(0), NewC);
5176 if (BO0) {
5177 match(BO0, m_AddLike(m_Value(A), m_Value(B)));
5178 NoOp0WrapProblem = hasNoWrapProblem(*BO0, Pred, Op0HasNSW, Op0HasNUW);
5292 (BO0->hasOneUse() || BO1->hasOneUse()) && !I.isUnsigned()) {
5303 Constant *C3 = Constant::getIntegerValue(BO0->getType(), Diff);
5309 Constant *C3 = Constant::getIntegerValue(BO0->getType(), Diff);
5330 if (BO0 && BO0->getOpcode() == Instruction::Sub) {
5331 A = BO0->getOperand(0);
5332 B = BO0->getOperand(1);
5373 if (match(BO0, m_Neg(m_Value(X))))
5426 if (NonZero && BO0 && BO1 && Op0HasNSW && Op1HasNSW)
5433 if (NonZero && BO0 && BO1 && Op0HasNUW && Op1HasNUW)
5441 if (BO0 && BO0->getOpcode() == Instruction::SRem && Op1 == BO0->getOperand(1))
5442 SRem = BO0;
5450 switch (SRem == BO0 ? ICmpInst::getSwappedPredicate(Pred) : Pred) {
5468 if (BO0 && BO1 && BO0->getOpcode() == BO1->getOpcode() &&
5469 (BO0->hasOneUse() || BO1->hasOneUse()) &&
5470 BO0->getOperand(1) == BO1->getOperand(1)) {
5471 switch (BO0->getOpcode()) {
5478 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
5481 if (match(BO0->getOperand(1), m_APInt(C))) {
5485 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0));
5489 if (BO0->getOpcode() == Instruction::Xor && C->isMaxSignedValue()) {
5492 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0));
5502 if (match(BO0->getOperand(1), m_APInt(C)) && !C->isZero() &&
5508 BO0->getType(),
5510 Value *And1 = Builder.CreateAnd(BO0->getOperand(0), Mask);
5519 if (I.isSigned() || !BO0->isExact() || !BO1->isExact())
5521 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
5524 if (!(I.isEquality() || match(BO0->getOperand(1), m_NonNegative())) ||
5525 !BO0->isExact() || !BO1->isExact())
5527 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
5530 if (!BO0->isExact() || !BO1->isExact())
5532 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
5541 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
5546 if (BO0) {
5551 if (match(BO0, BitwiseAnd) && Pred == ICmpInst::ICMP_ULT) {
5552 auto *Zero = Constant::getNullValue(BO0->getType());