Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:BO0

3039   BinaryOperator *BO0 = dyn_cast<BinaryOperator>(Op0);
3041 if (!BO0 && !BO1)
3046 if (BO0 && isa<OverflowingBinaryOperator>(BO0))
3049 (CmpInst::isUnsigned(Pred) && BO0->hasNoUnsignedWrap()) ||
3050 (CmpInst::isSigned(Pred) && BO0->hasNoSignedWrap());
3060 if (BO0 && BO0->getOpcode() == Instruction::Add) {
3061 A = BO0->getOperand(0);
3062 B = BO0->getOperand(1);
3083 BO0->hasOneUse() && BO1->hasOneUse()) {
3176 (BO0->hasOneUse() || BO1->hasOneUse()) && !I.isUnsigned())
3202 if (BO0 && BO0->getOpcode() == Instruction::Sub) {
3203 A = BO0->getOperand(0);
3204 B = BO0->getOperand(1);
3228 BO0->hasOneUse() && BO1->hasOneUse())
3233 BO0->hasOneUse() && BO1->hasOneUse())
3239 if (match(BO0, m_Neg(m_Value(X))))
3248 if (BO0 && BO0->getOpcode() == Instruction::SRem && Op1 == BO0->getOperand(1))
3249 SRem = BO0;
3257 switch (SRem == BO0 ? ICmpInst::getSwappedPredicate(Pred) : Pred) {
3275 if (BO0 && BO1 && BO0->getOpcode() == BO1->getOpcode() && BO0->hasOneUse() &&
3276 BO1->hasOneUse() && BO0->getOperand(1) == BO1->getOperand(1)) {
3277 switch (BO0->getOpcode()) {
3284 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3287 if (match(BO0->getOperand(1), m_APInt(C))) {
3292 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0));
3296 if (BO0->getOpcode() == Instruction::Xor && C->isMaxSignedValue()) {
3300 return new ICmpInst(NewPred, BO0->getOperand(0), BO1->getOperand(0));
3310 if (match(BO0->getOperand(1), m_APInt(C)) && !C->isNullValue() &&
3316 BO0->getType(),
3318 Value *And1 = Builder.CreateAnd(BO0->getOperand(0), Mask);
3325 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3331 if (I.isSigned() || !BO0->isExact() || !BO1->isExact())
3333 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3336 if (!I.isEquality() || !BO0->isExact() || !BO1->isExact())
3338 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3341 if (!BO0->isExact() || !BO1->isExact())
3343 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3346 bool NUW = BO0->hasNoUnsignedWrap() && BO1->hasNoUnsignedWrap();
3347 bool NSW = BO0->hasNoSignedWrap() && BO1->hasNoSignedWrap();
3352 return new ICmpInst(Pred, BO0->getOperand(0), BO1->getOperand(0));
3357 if (BO0) {
3362 if (match(BO0, BitwiseAnd) && Pred == ICmpInst::ICMP_ULT) {
3363 auto *Zero = Constant::getNullValue(BO0->getType());