diff options
Diffstat (limited to 'test/Other/2003-02-19-LoopInfoNestingBug.ll')
-rw-r--r-- | test/Other/2003-02-19-LoopInfoNestingBug.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/Other/2003-02-19-LoopInfoNestingBug.ll b/test/Other/2003-02-19-LoopInfoNestingBug.ll new file mode 100644 index 000000000000..d2945536ea79 --- /dev/null +++ b/test/Other/2003-02-19-LoopInfoNestingBug.ll @@ -0,0 +1,29 @@ +; 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: llvm-as < %s | opt -analyze -loops | \ +; RUN: grep { Loop at depth 3 containing: %Inner<header><latch><exit>} +; +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 +} + |