aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll')
-rw-r--r--test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll b/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
new file mode 100644
index 0000000..90de721
--- /dev/null
+++ b/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
@@ -0,0 +1,25 @@
+; This testcase exposed a problem with the loop identification pass (LoopInfo).
+; Basically, it was incorrectly calculating the loop nesting information.
+;
+; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify
+
+implementation ; Functions:
+
+int %yylex() { ; No predecessors!
+ br label %loopentry.0
+
+loopentry.0: ; preds = %0, %yy_find_action, %else.4
+ br label %loopexit.2
+
+loopexit.2: ; preds = %loopentry.0, %else.4, %loopexit.2
+ br bool false, label %loopexit.2, label %else.4
+
+yy_find_action: ; preds = %loopexit.2, %else.4
+ br label %else.4
+
+else.4: ; preds = %yy_find_action
+ switch uint 0, label %loopexit.2 [
+ uint 2, label %yy_find_action
+ uint 0, label %loopentry.0
+ ]
+}