summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/iabs.ll
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-06-14 05:57:42 +0000
committerManman Ren <mren@apple.com>2012-06-14 05:57:42 +0000
commitc2bc2d106b5c8c99c3f0640e5dc459900ff1113f (patch)
tree28852001fc02a94a0e2fc8fbaed50bb56330894c /llvm/test/CodeGen/ARM/iabs.ll
parent596e475725971e19503f123aa8e3db2f4f933b3e (diff)
downloadbcm5719-llvm-c2bc2d106b5c8c99c3f0640e5dc459900ff1113f.tar.gz
bcm5719-llvm-c2bc2d106b5c8c99c3f0640e5dc459900ff1113f.zip
InstCombine: fix a bug when combining (fcmp cc0 x, y) && (fcmp cc1 x, y).
uno && ueq was converted to ueq, it should be converted to uno. llvm-svn: 158441
Diffstat (limited to 'llvm/test/CodeGen/ARM/iabs.ll')
-rw-r--r--llvm/test/CodeGen/ARM/iabs.ll20
1 files changed, 19 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/ARM/iabs.ll b/llvm/test/CodeGen/ARM/iabs.ll
index 89e309d1606..e7026791c95 100644
--- a/llvm/test/CodeGen/ARM/iabs.ll
+++ b/llvm/test/CodeGen/ARM/iabs.ll
@@ -10,7 +10,25 @@ define i32 @test(i32 %a) {
%b = icmp sgt i32 %a, -1
%abs = select i1 %b, i32 %a, i32 %tmp1neg
ret i32 %abs
-; CHECK: movs r0, r0
+; CHECK: cmp
; CHECK: rsbmi r0, r0, #0
; CHECK: bx lr
}
+
+; rdar://11633193
+; 3 instructions will be generated for the following case:
+; subs
+; rsbmi
+; bx
+define i32 @test2(i32 %a, i32 %b) nounwind readnone ssp {
+entry:
+; CHECK: test2
+; CHECK-NEXT: subs
+; CHECK-NEXT: rsbmi
+; CHECK-NEXT: bx
+ %sub = sub nsw i32 %a, %b
+ %cmp = icmp sgt i32 %sub, -1
+ %sub1 = sub nsw i32 0, %sub
+ %cond = select i1 %cmp, i32 %sub, i32 %sub1
+ ret i32 %cond
+}
OpenPOWER on IntegriCloud