Lines Matching refs:BO0

1250     auto *BO0 = cast<OverflowingBinaryOperator>(Cmp.getOperand(0));  in foldICmpWithZero()  local
1251 if (BO0->hasNoUnsignedWrap() || BO0->hasNoSignedWrap()) { in foldICmpWithZero()
4568 BinaryOperator *BO0 = dyn_cast<BinaryOperator>(Op0); in foldICmpBinOp() local
4570 if (!BO0 && !BO1) in foldICmpBinOp()
4657 if (BO0) { in foldICmpBinOp()
4658 match(BO0, m_AddLike(m_Value(A), m_Value(B))); in foldICmpBinOp()
4659 NoOp0WrapProblem = hasNoWrapProblem(*BO0, Pred, Op0HasNSW, Op0HasNUW); in foldICmpBinOp()
4773 (BO0->hasOneUse() || BO1->hasOneUse()) && !I.isUnsigned()) { in foldICmpBinOp()
4783 Constant *C3 = Constant::getIntegerValue(BO0->getType(), Diff); in foldICmpBinOp()
4789 Constant *C3 = Constant::getIntegerValue(BO0->getType(), Diff); in foldICmpBinOp()
4810 if (BO0 && BO0->getOpcode() == Instruction::Sub) { in foldICmpBinOp()
4811 A = BO0->getOperand(0); in foldICmpBinOp()
4812 B = BO0->getOperand(1); in foldICmpBinOp()
4853 if (match(BO0, m_Neg(m_Value(X)))) in foldICmpBinOp()
4885 if (NonZero && BO0 && BO1 && Op0HasNSW && Op1HasNSW) in foldICmpBinOp()
4892 if (NonZero && BO0 && BO1 && Op0HasNUW && Op1HasNUW) in foldICmpBinOp()
4899 if (BO0 && BO0->getOpcode() == Instruction::SRem && Op1 == BO0->getOperand(1)) in foldICmpBinOp()
4900 SRem = BO0; in foldICmpBinOp()
4908 switch (SRem == BO0 ? ICmpInst::getSwappedPredicate(Pred) : Pred) { in foldICmpBinOp()
4926 if (BO0 && BO1 && BO0->getOpcode() == BO1->getOpcode() && in foldICmpBinOp()
4927 (BO0->hasOneUse() || BO1->hasOneUse()) && in foldICmpBinOp()
4928 BO0->getOperand(1) == BO1->getOperand(1)) { in foldICmpBinOp()
4929 switch (BO0->getOpcode()) { in foldICmpBinOp()
4936 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4939 if (match(BO0->getOperand(1), m_APInt(C))) { in foldICmpBinOp()
4943 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4947 if (BO0->getOpcode() == Instruction::Xor && C->isMaxSignedValue()) { in foldICmpBinOp()
4950 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4960 if (match(BO0->getOperand(1), m_APInt(C)) && !C->isZero() && in foldICmpBinOp()
4966 BO0->getType(), in foldICmpBinOp()
4968 Value *And1 = Builder.CreateAnd(BO0->getOperand(0), Mask); in foldICmpBinOp()
4977 if (I.isSigned() || !BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
4979 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4982 if (!(I.isEquality() || match(BO0->getOperand(1), m_NonNegative())) || in foldICmpBinOp()
4983 !BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
4985 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4988 if (!BO0->isExact() || !BO1->isExact()) in foldICmpBinOp()
4990 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
4999 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0)); in foldICmpBinOp()
5004 if (BO0) { in foldICmpBinOp()
5009 if (match(BO0, BitwiseAnd) && Pred == ICmpInst::ICMP_ULT) { in foldICmpBinOp()
5010 auto *Zero = Constant::getNullValue(BO0->getType()); in foldICmpBinOp()