From 35aeea993b091164f202266a4969d6f6df2adc7f Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Fri, 12 Jul 2013 23:42:57 +0000 Subject: Fix logic error optimizing "icmp pred (urem X, Y), Y" where pred is signed. Fixes PR16605. llvm-svn: 186229 --- llvm/test/Transforms/InstSimplify/compare.ll | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'llvm/test/Transforms/InstSimplify/compare.ll') diff --git a/llvm/test/Transforms/InstSimplify/compare.ll b/llvm/test/Transforms/InstSimplify/compare.ll index 82d56028c37..a0a9c8540ab 100644 --- a/llvm/test/Transforms/InstSimplify/compare.ll +++ b/llvm/test/Transforms/InstSimplify/compare.ll @@ -480,7 +480,7 @@ define i1 @urem5(i16 %X, i32 %Y) { %B = urem i32 %A, %Y %C = icmp slt i32 %B, %Y ret i1 %C -; CHECK: ret i1 true +; CHECK-NOT: ret i1 true } define i1 @urem6(i32 %X, i32 %Y) { @@ -491,6 +491,14 @@ define i1 @urem6(i32 %X, i32 %Y) { ; CHECK: ret i1 true } +define i1 @urem7(i32 %X) { +; CHECK: @urem7 + %A = urem i32 1, %X + %B = icmp sgt i32 %A, %X + ret i1 %B +; CHECK-NOT: ret i1 false +} + define i1 @srem1(i32 %X) { ; CHECK: @srem1 %A = srem i32 %X, -5 -- cgit v1.2.3