Lines Matching defs:LBO

3105 static Value *simplifyICmpWithBinOpOnLHS(CmpPredicate Pred, BinaryOperator *LBO,
3112 if (match(LBO, m_c_Or(m_Value(Y), m_Specific(RHS)))) {
3124 if (match(LBO, m_URem(m_Value(), m_Specific(RHS)))) {
3164 if ((match(LBO, m_LShr(m_Specific(RHS), m_APInt(C))) && *C != 0) ||
3165 (match(LBO, m_UDiv(m_Specific(RHS), m_APInt(C))) && *C != 1)) {
3192 if ((match(LBO, m_UDiv(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) &&
3194 (match(LBO, m_LShr(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) &&
3196 (match(LBO, m_UDiv(m_Shl(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) &&
3206 if (match(LBO, m_Sub(m_APIntAllowPoison(C), m_Specific(RHS))) &&
3253 BinaryOperator *LBO = dyn_cast<BinaryOperator>(LHS);
3255 if (MaxRecurse && (LBO || RBO)) {
3260 if (LBO && LBO->getOpcode() == Instruction::Add) {
3261 A = LBO->getOperand(0);
3262 B = LBO->getOperand(1);
3266 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO))) ||
3268 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)));
3324 if (LBO)
3325 if (Value *V = simplifyICmpWithBinOpOnLHS(Pred, LBO, RHS, Q, MaxRecurse))
3366 if (Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)) ||
3367 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO)) ||
3386 if (!MaxRecurse || !LBO || !RBO || LBO->getOpcode() != RBO->getOpcode())
3389 if (LBO->getOperand(0) == RBO->getOperand(0)) {
3390 switch (LBO->getOpcode()) {
3394 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO);
3395 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO);
3397 !isKnownNonZero(LBO->getOperand(0), Q))
3399 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(1),
3413 match(LBO->getOperand(1), m_APInt(C1)) &&
3437 if (LBO->getOperand(1) == RBO->getOperand(1)) {
3438 switch (LBO->getOpcode()) {
3443 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) ||
3446 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0),
3451 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) ||
3454 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0),
3459 if (!Q.IIQ.isExact(LBO) || !Q.IIQ.isExact(RBO))
3461 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0),
3466 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO);
3467 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO);
3472 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0),