summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SCCP/switch-multiple-undef.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/SCCP/switch-multiple-undef.ll')
-rw-r--r--llvm/test/Transforms/SCCP/switch-multiple-undef.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SCCP/switch-multiple-undef.ll b/llvm/test/Transforms/SCCP/switch-multiple-undef.ll
new file mode 100644
index 00000000000..027c9c0c9ba
--- /dev/null
+++ b/llvm/test/Transforms/SCCP/switch-multiple-undef.ll
@@ -0,0 +1,27 @@
+; RUN: opt -S -ipsccp < %s | FileCheck %s
+
+declare void @foo()
+declare void @goo()
+declare void @patatino()
+
+define void @test1(i32 %t) {
+ %choice = icmp eq i32 undef, -1
+ switch i1 %choice, label %first [i1 0, label %second
+ i1 1, label %third]
+first:
+ call void @foo()
+ ret void
+second:
+ call void @goo()
+ ret void
+third:
+ call void @patatino()
+ ret void
+}
+
+; CHECK: define void @test1(i32 %t) {
+; CHECK-NEXT: br label %second
+; CHECK: second:
+; CHECK-NEXT: call void @goo()
+; CHECK-NEXT: ret void
+; CHECK-NEXT: }
OpenPOWER on IntegriCloud