summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/jump_sign.ll
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-07-18 21:40:01 +0000
committerManman Ren <mren@apple.com>2012-07-18 21:40:01 +0000
commit62a89f5808bbb620767d95adb784978ed2e7bff0 (patch)
tree170f0bd3a274ea211c6ee4d6ee571eb114f3e68c /test/CodeGen/X86/jump_sign.ll
parentd4d961615c67082bc24bfa5d372a93a1dcff3457 (diff)
downloadllvm-62a89f5808bbb620767d95adb784978ed2e7bff0.tar.gz
llvm-62a89f5808bbb620767d95adb784978ed2e7bff0.tar.bz2
llvm-62a89f5808bbb620767d95adb784978ed2e7bff0.tar.xz
X86: remove redundant cmp against zero.
Updated OptimizeCompare in peephole to remove redundant cmp against zero. We only remove Compare if CF and OF are not used. rdar://11855129 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160454 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/jump_sign.ll')
-rw-r--r--test/CodeGen/X86/jump_sign.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/CodeGen/X86/jump_sign.ll b/test/CodeGen/X86/jump_sign.ll
index 49f41767a2..5b7c19fec5 100644
--- a/test/CodeGen/X86/jump_sign.ll
+++ b/test/CodeGen/X86/jump_sign.ll
@@ -202,3 +202,14 @@ if.then.i103: ; preds = %if.then44
if.else.i104: ; preds = %if.then44
ret void
}
+; rdar://11855129
+define i32 @p(i32 %a, i32 %b) nounwind {
+entry:
+; CHECK: p:
+; CHECK-NOT: test
+; CHECK: cmovs
+ %add = add nsw i32 %b, %a
+ %cmp = icmp sgt i32 %add, 0
+ %add. = select i1 %cmp, i32 %add, i32 0
+ ret i32 %add.
+}