summaryrefslogtreecommitdiff
path: root/test/Other/loop-pass-ordering.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Other/loop-pass-ordering.ll')
-rw-r--r--test/Other/loop-pass-ordering.ll35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/Other/loop-pass-ordering.ll b/test/Other/loop-pass-ordering.ll
new file mode 100644
index 0000000000000..ceda0d3869dda
--- /dev/null
+++ b/test/Other/loop-pass-ordering.ll
@@ -0,0 +1,35 @@
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-loop' %s 2>&1 \
+; RUN: | FileCheck %s
+
+; @f()
+; / \
+; loop.0 loop.1
+; / \ \
+; loop.0.0 loop.0.1 loop.1.0
+;
+; CHECK: Running pass: NoOpLoopPass on loop.1.0
+; CHECK: Running pass: NoOpLoopPass on loop.1
+; CHECK: Running pass: NoOpLoopPass on loop.0.0
+; CHECK: Running pass: NoOpLoopPass on loop.0.1
+; CHECK: Running pass: NoOpLoopPass on loop.0
+define void @f() {
+entry:
+ br label %loop.0
+loop.0:
+ br i1 undef, label %loop.0.0, label %loop.1
+loop.0.0:
+ br i1 undef, label %loop.0.0, label %loop.0.1
+loop.0.1:
+ br i1 undef, label %loop.0.1, label %loop.0
+loop.1:
+ br i1 undef, label %loop.1, label %loop.1.bb1
+loop.1.bb1:
+ br i1 undef, label %loop.1, label %loop.1.bb2
+loop.1.bb2:
+ br i1 undef, label %end, label %loop.1.0
+loop.1.0:
+ br i1 undef, label %loop.1.0, label %loop.1
+end:
+ ret void
+}