xref: /llvm-project/llvm/test/Other/loopnest-pass-ordering.ll (revision 1469d82e1cb3edc939d6b93089046edfef0cf36c)
1; RUN: opt -disable-output -debug-pass-manager \
2; RUN:     -passes='no-op-loopnest' %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: NoOpLoopNestPass on loop %loop.0 in function f
12; CHECK: Running pass: NoOpLoopNestPass on loop %loop.1 in function f
13; CHECK-NOT: Running pass: NoOpLoopNestPass on {{loop\..*\..*}}
14
15define void @f(i1 %arg) {
16entry:
17  br label %loop.0
18loop.0:
19  br i1 %arg, label %loop.0.0, label %loop.1
20loop.0.0:
21  br i1 %arg, label %loop.0.0, label %loop.0.1
22loop.0.1:
23  br i1 %arg, label %loop.0.1, label %loop.0
24loop.1:
25  br i1 %arg, label %loop.1, label %loop.1.bb1
26loop.1.bb1:
27  br i1 %arg, label %loop.1, label %loop.1.bb2
28loop.1.bb2:
29  br i1 %arg, label %end, label %loop.1.0
30loop.1.0:
31  br i1 %arg, label %loop.1.0, label %loop.1
32end:
33  ret void
34}
35