Lines Matching refs:LBO

3107 static Value *simplifyICmpWithBinOpOnLHS(CmpPredicate Pred, BinaryOperator *LBO,  in simplifyICmpWithBinOpOnLHS()  argument
3114 if (match(LBO, m_c_Or(m_Value(Y), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3126 if (match(LBO, m_URem(m_Value(), m_Specific(RHS)))) { in simplifyICmpWithBinOpOnLHS()
3166 if ((match(LBO, m_LShr(m_Specific(RHS), m_APInt(C))) && *C != 0) || in simplifyICmpWithBinOpOnLHS()
3167 (match(LBO, m_UDiv(m_Specific(RHS), m_APInt(C))) && *C != 1)) { in simplifyICmpWithBinOpOnLHS()
3194 if ((match(LBO, m_UDiv(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3196 (match(LBO, m_LShr(m_Mul(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3198 (match(LBO, m_UDiv(m_Shl(m_Specific(RHS), m_APInt(C1)), m_APInt(C2))) && in simplifyICmpWithBinOpOnLHS()
3208 if (match(LBO, m_Sub(m_APIntAllowPoison(C), m_Specific(RHS))) && in simplifyICmpWithBinOpOnLHS()
3255 BinaryOperator *LBO = dyn_cast<BinaryOperator>(LHS); in simplifyICmpWithBinOp() local
3257 if (MaxRecurse && (LBO || RBO)) { in simplifyICmpWithBinOp()
3262 if (LBO && LBO->getOpcode() == Instruction::Add) { in simplifyICmpWithBinOp()
3263 A = LBO->getOperand(0); in simplifyICmpWithBinOp()
3264 B = LBO->getOperand(1); in simplifyICmpWithBinOp()
3268 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO))) || in simplifyICmpWithBinOp()
3270 Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO))); in simplifyICmpWithBinOp()
3326 if (LBO) in simplifyICmpWithBinOp()
3327 if (Value *V = simplifyICmpWithBinOpOnLHS(Pred, LBO, RHS, Q, MaxRecurse)) in simplifyICmpWithBinOp()
3368 if (Q.IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3369 Q.IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(LBO)) || in simplifyICmpWithBinOp()
3388 if (!MaxRecurse || !LBO || !RBO || LBO->getOpcode() != RBO->getOpcode()) in simplifyICmpWithBinOp()
3391 if (LBO->getOperand(0) == RBO->getOperand(0)) { in simplifyICmpWithBinOp()
3392 switch (LBO->getOpcode()) { in simplifyICmpWithBinOp()
3396 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO); in simplifyICmpWithBinOp()
3397 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO); in simplifyICmpWithBinOp()
3399 !isKnownNonZero(LBO->getOperand(0), Q)) in simplifyICmpWithBinOp()
3401 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(1), in simplifyICmpWithBinOp()
3415 match(LBO->getOperand(1), m_APInt(C1)) && in simplifyICmpWithBinOp()
3439 if (LBO->getOperand(1) == RBO->getOperand(1)) { in simplifyICmpWithBinOp()
3440 switch (LBO->getOpcode()) { in simplifyICmpWithBinOp()
3445 if (ICmpInst::isSigned(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3448 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3453 if (!ICmpInst::isEquality(Pred) || !Q.IIQ.isExact(LBO) || in simplifyICmpWithBinOp()
3456 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3461 if (!Q.IIQ.isExact(LBO) || !Q.IIQ.isExact(RBO)) in simplifyICmpWithBinOp()
3463 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()
3468 bool NUW = Q.IIQ.hasNoUnsignedWrap(LBO) && Q.IIQ.hasNoUnsignedWrap(RBO); in simplifyICmpWithBinOp()
3469 bool NSW = Q.IIQ.hasNoSignedWrap(LBO) && Q.IIQ.hasNoSignedWrap(RBO); in simplifyICmpWithBinOp()
3474 if (Value *V = simplifyICmpInst(Pred, LBO->getOperand(0), in simplifyICmpWithBinOp()