xref: /llvm-project/llvm/test/Other/loop-pass-ordering.ll (revision 1469d82e1cb3edc939d6b93089046edfef0cf36c)
1; RUN: opt -disable-output -debug-pass-manager \
2; RUN:     -passes='no-op-loop' %s 2>&1 \
3; RUN:     | FileCheck %s
4
5;            @f()
6;           /    \
7;       loop.0   loop.1
8;      /      \        \
9; loop.0.0  loop.0.1  loop.1.0
10;
11; CHECK: Running pass: NoOpLoopPass on loop %loop.0.0 in function f
12; CHECK: Running pass: NoOpLoopPass on loop %loop.0.1 in function f
13; CHECK: Running pass: NoOpLoopPass on loop %loop.0 in function f
14; CHECK: Running pass: NoOpLoopPass on loop %loop.1.0 in function f
15; CHECK: Running pass: NoOpLoopPass on loop %loop.1 in function f
16
17define void @f(i1 %arg) {
18entry:
19  br label %loop.0
20loop.0:
21  br i1 %arg, label %loop.0.0, label %loop.1
22loop.0.0:
23  br i1 %arg, label %loop.0.0, label %loop.0.1
24loop.0.1:
25  br i1 %arg, label %loop.0.1, label %loop.0
26loop.1:
27  br i1 %arg, label %loop.1, label %loop.1.bb1
28loop.1.bb1:
29  br i1 %arg, label %loop.1, label %loop.1.bb2
30loop.1.bb2:
31  br i1 %arg, label %end, label %loop.1.0
32loop.1.0:
33  br i1 %arg, label %loop.1.0, label %loop.1
34end:
35  ret void
36}
37