aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2006-06-27 22:24:59 +0000
committerOwen Anderson <resistor@mac.com>2006-06-27 22:24:59 +0000
commit2f62a9eb2e3576b06231ab4906bb83e023eb5864 (patch)
tree1d2efb2ffc32bbfdfa8345943aab50aed4909510 /test
parent49e441558760cc1708778b5d0ded05d639c1e5ed (diff)
Testcase that Nate found where LoopUnswitch chokes on eliminating a dead case
from a switch instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28946 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll b/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
new file mode 100644
index 0000000000..b7c6df83a0
--- /dev/null
+++ b/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
@@ -0,0 +1,31 @@
+; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
+implementation ; Functions:
+
+void %init_caller_save() {
+entry:
+ br label %cond_true78
+
+cond_next20: ; preds = %cond_true64
+ br label %bb31
+
+bb31: ; preds = %cond_true64, %cond_true64, %cond_next20
+ %iftmp.29.1 = phi uint [ 0, %cond_next20 ], [ 0, %cond_true64 ], [ 0, %cond_true64 ] ; <uint> [#uses=0]
+ br label %bb54
+
+bb54: ; preds = %cond_true78, %bb31
+ br bool false, label %bb75, label %cond_true64
+
+cond_true64: ; preds = %bb54
+ switch int %i.0.0, label %cond_next20 [
+ int 17, label %bb31
+ int 18, label %bb31
+ ]
+
+bb75: ; preds = %bb54
+ %tmp74.0 = add int %i.0.0, 1 ; <int> [#uses=1]
+ br label %cond_true78
+
+cond_true78: ; preds = %bb75, %entry
+ %i.0.0 = phi int [ 0, %entry ], [ %tmp74.0, %bb75 ] ; <int> [#uses=2]
+ br label %bb54
+}