Lines Matching refs:LBO
3082 BinaryOperator *LBO, Value *RHS, in simplifyICmpWithBinOpOnLHS() argument
3089 if (match(LBO, m_c_Or(m_Value(Y), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3106 if (match(LBO, m_c_And(m_Value(), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3114 if (match(LBO, m_URem(m_Value(), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3144 if (match(LBO, m_URem(m_Specific(RHS), m_Value()))) { in simplifyICmpWithBinOpOnLHS()
3155 if (match(LBO, m_LShr(m_Specific(RHS), m_Value())) || in simplifyICmpWithBinOpOnLHS()
3156 match(LBO, m_UDiv(m_Specific(RHS), m_Value()))) { in simplifyICmpWithBinOpOnLHS()
3175 if ((match(LBO, m_LShr(m_Specific(RHS), m_APInt(C))) && *C != 0) || in simplifyICmpWithBinOpOnLHS()
3176 (match(LBO, m_UDiv(m_Specific(RHS), m_APInt(C))) && *C != 1)) { in simplifyICmpWithBinOpOnLHS()
3205 if ((match(LBO, m_UDiv(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3207 (match(LBO, m_LShr(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3209 (match(LBO, m_UDiv(m_Shl(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3219 if (match(LBO, m_Sub(m_APIntAllowUndef(C), m_Specific(RHS))) && in simplifyICmpWithBinOpOnLHS()
3266 BinaryOperator *LBO = dyn_cast<BinaryOperator>(LHS); in simplifyICmpWithBinOp() local
3268 if (MaxRecurse && (LBO || RBO)) { in simplifyICmpWithBinOp()
3273 if (LBO && LBO->getOpcode() == Instruction::Add) { in simplifyICmpWithBinOp()
3274 A = LBO->getOperand(0); in simplifyICmpWithBinOp()
3275 B = LBO->getOperand(1); in simplifyICmpWithBinOp()
3279 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO))) || in simplifyICmpWithBinOp()
3281 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO))); in simplifyICmpWithBinOp()
3337 if (LBO) in simplifyICmpWithBinOp()
3338 if (Value *V = simplifyICmpWithBinOpOnLHS(Pred, LBO, RHS, Q, MaxRecurse)) in simplifyICmpWithBinOp()
3379 if (Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3380 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3399 if (!MaxRecurse || !LBO || !RBO || LBO->getOpcode() != RBO->getOpcode()) in simplifyICmpWithBinOp()
3402 if (LBO->getOperand(0) == RBO->getOperand(0)) { in simplifyICmpWithBinOp()
3403 switch (LBO->getOpcode()) { in simplifyICmpWithBinOp()
3407 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO); in simplifyICmpWithBinOp()
3408 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO); in simplifyICmpWithBinOp()
3410 !isKnownNonZero(LBO->getOperand(0), Q.DL)) in simplifyICmpWithBinOp()
3412 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(1), in simplifyICmpWithBinOp()
3426 match(LBO->getOperand(1), m_APInt(C1)) && in simplifyICmpWithBinOp()
3450 if (LBO->getOperand(1) == RBO->getOperand(1)) { in simplifyICmpWithBinOp()
3451 switch (LBO->getOpcode()) { in simplifyICmpWithBinOp()
3456 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3459 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3464 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3467 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3472 if (!Q.IIQ.isExact(LBO) || !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
3474 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3479 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO); in simplifyICmpWithBinOp()
3480 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO); in simplifyICmpWithBinOp()
3485 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()