| ; LoopInfo is incorrectly calculating loop nesting! In this case it doesn't |
| ; figure out that loop "Inner" should be nested inside of leep "LoopHeader", |
| ; and instead nests it just inside loop "Top" |
| ; |
| ; RUN: opt < %s -analyze -loops | \ |
| ; RUN: grep { Loop at depth 3 containing: %Inner<header><latch><exiting>} |
| ; |
| define void @test() { |
| br label %Top |
| |
| Top: ; preds = %Out, %0 |
| br label %LoopHeader |
| |
| Next: ; preds = %LoopHeader |
| br i1 false, label %Inner, label %Out |
| |
| Inner: ; preds = %Inner, %Next |
| br i1 false, label %Inner, label %LoopHeader |
| |
| LoopHeader: ; preds = %Inner, %Top |
| br label %Next |
| |
| Out: ; preds = %Next |
| br i1 false, label %Top, label %Done |
| |
| Done: ; preds = %Out |
| ret void |
| } |
| |