}
}
- if (LBO && match(LBO, m_SRem(m_Value(), m_Specific(RHS)))) {
- switch (Pred) {
- default:
- break;
- case ICmpInst::ICMP_EQ:
- case ICmpInst::ICMP_SGT:
- case ICmpInst::ICMP_SGE:
- return ConstantInt::getFalse(RHS->getContext());
- case ICmpInst::ICMP_NE:
- case ICmpInst::ICMP_SLT:
- case ICmpInst::ICMP_SLE:
- return ConstantInt::getTrue(RHS->getContext());
- }
- }
-
// If the comparison is with the result of a select instruction, check whether
// comparing with either branch of the select always yields the same value.
if (isa<SelectInst>(LHS) || isa<SelectInst>(RHS))
; CHECK: ret i1 false
}
-define i1 @srem2(i32 %X, i32 %Y) {
-; CHECK: @srem2
- %neg = sub i32 %Y, 0
- %A = srem i32 %X, %Y
- %B = icmp slt i32 %A, %neg
- ret i1 %B
-; CHECK: ret i1 true
-}
-
define i1 @udiv1(i32 %X) {
; CHECK: @udiv1
%A = udiv i32 %X, 1000000