summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-08-29 13:05:18 +0000
committerTim Northover <tnorthover@apple.com>2014-08-29 13:05:18 +0000
commitc1c05aeb5dc2b68ff85f0164665f2f2023c1701e (patch)
tree359c2bce1bfe20e77d43f05881db16de62ccd77b /llvm/test/CodeGen
parent73e171f76d7c070d862c139ed438a46c9b5f3f7e (diff)
downloadbcm5719-llvm-c1c05aeb5dc2b68ff85f0164665f2f2023c1701e.tar.gz
bcm5719-llvm-c1c05aeb5dc2b68ff85f0164665f2f2023c1701e.zip
AArch64: skip select/setcc combine in complex case.
In an llvm-stress generated test, we were trying to create a v0iN type and asserting when that failed. This case could probably be handled by the function, but not without added complexity and the situation it arises in is sufficiently odd that there's probably no benefit anyway. Should fix PR20775. llvm-svn: 216725
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/AArch64/cond-sel.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/cond-sel.ll b/llvm/test/CodeGen/AArch64/cond-sel.ll
index 5f81cba66cb..333f2436133 100644
--- a/llvm/test/CodeGen/AArch64/cond-sel.ll
+++ b/llvm/test/CodeGen/AArch64/cond-sel.ll
@@ -214,3 +214,13 @@ define void @test_csetm(i32 %lhs, i32 %rhs, i64 %lhs64) {
ret void
; CHECK: ret
}
+
+define <1 x i1> @test_wide_comparison(i32 %in) {
+; CHECK-LABEL: test_wide_comparison:
+; CHECK: cmp w0, #1234
+; CHECK: cset
+
+ %tmp = icmp sgt i32 %in, 1234
+ %res = select i1 %tmp, <1 x i1> <i1 1>, <1 x i1> zeroinitializer
+ ret <1 x i1> %res
+}
OpenPOWER on IntegriCloud