Lines Matching refs:LBO
3016 BinaryOperator *LBO, Value *RHS, in simplifyICmpWithBinOpOnLHS() argument
3023 if (match(LBO, m_c_Or(m_Value(Y), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3040 if (match(LBO, m_c_And(m_Value(), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3048 if (match(LBO, m_URem(m_Value(), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3078 if (match(LBO, m_URem(m_Specific(RHS), m_Value()))) { in simplifyICmpWithBinOpOnLHS()
3089 if (match(LBO, m_LShr(m_Specific(RHS), m_Value())) || in simplifyICmpWithBinOpOnLHS()
3090 match(LBO, m_UDiv(m_Specific(RHS), m_Value()))) { in simplifyICmpWithBinOpOnLHS()
3109 if ((match(LBO, m_LShr(m_Specific(RHS), m_APInt(C))) && *C != 0) || in simplifyICmpWithBinOpOnLHS()
3110 (match(LBO, m_UDiv(m_Specific(RHS), m_APInt(C))) && *C != 1)) { in simplifyICmpWithBinOpOnLHS()
3139 if ((match(LBO, m_UDiv(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3141 (match(LBO, m_LShr(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3143 (match(LBO, m_UDiv(m_Shl(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3194 BinaryOperator *LBO = dyn_cast<BinaryOperator>(LHS); in simplifyICmpWithBinOp() local
3196 if (MaxRecurse && (LBO || RBO)) { in simplifyICmpWithBinOp()
3201 if (LBO && LBO->getOpcode() == Instruction::Add) { in simplifyICmpWithBinOp()
3202 A = LBO->getOperand(0); in simplifyICmpWithBinOp()
3203 B = LBO->getOperand(1); in simplifyICmpWithBinOp()
3207 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO))) || in simplifyICmpWithBinOp()
3209 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO))); in simplifyICmpWithBinOp()
3265 if (LBO) in simplifyICmpWithBinOp()
3266 if (Value *V = simplifyICmpWithBinOpOnLHS(Pred, LBO, RHS, Q, MaxRecurse)) in simplifyICmpWithBinOp()
3307 if (Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3308 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3327 if (MaxRecurse && LBO && RBO && LBO->getOpcode() == RBO->getOpcode() && in simplifyICmpWithBinOp()
3328 LBO->getOperand(1) == RBO->getOperand(1)) { in simplifyICmpWithBinOp()
3329 switch (LBO->getOpcode()) { in simplifyICmpWithBinOp()
3334 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3337 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3342 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3345 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3350 if (!Q.IIQ.isExact(LBO) || !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
3352 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3357 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO); in simplifyICmpWithBinOp()
3358 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO); in simplifyICmpWithBinOp()
3363 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()