xref: /llvm-project/llvm/test/Analysis/LoopInfo/2003-02-19-LoopInfoNestingBug.ll (revision 50153213c80286c6c91da4612aaf234cc6438c63)
1; LoopInfo is incorrectly calculating loop nesting!  In this case it doesn't
2; figure out that loop "Inner" should be nested inside of leep "LoopHeader",
3; and instead nests it just inside loop "Top"
4;
5; RUN: opt < %s -passes='print<loops>' -disable-output 2>&1 | FileCheck %s
6
7; CHECK:  Loop at depth 3 containing: %Inner<header><latch><exiting>
8define void @test() {
9        br label %Top
10
11Top:            ; preds = %Out, %0
12        br label %LoopHeader
13
14Next:           ; preds = %LoopHeader
15        br i1 false, label %Inner, label %Out
16
17Inner:          ; preds = %Inner, %Next
18        br i1 false, label %Inner, label %LoopHeader
19
20LoopHeader:             ; preds = %Inner, %Top
21        br label %Next
22
23Out:            ; preds = %Next
24        br i1 false, label %Top, label %Done
25
26Done:           ; preds = %Out
27        ret void
28}
29
30