blob: 267b0e8986d27a0335740d2ab60531288c21e23f [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001; 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;
Dan Gohman3c7d3082009-09-11 18:01:28 +00005; RUN: opt < %s -analyze -loops | \
Dan Gohmanf0a92962009-02-27 00:20:19 +00006; RUN: grep { Loop at depth 3 containing: %Inner<header><latch><exit>}
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007;
Tanya Lattner366c2032008-02-19 01:44:26 +00008define void @test() {
9 br label %Top
Dan Gohmanf17a25c2007-07-18 16:29:46 +000010
Tanya Lattner366c2032008-02-19 01:44:26 +000011Top: ; preds = %Out, %0
12 br label %LoopHeader
Dan Gohmanf17a25c2007-07-18 16:29:46 +000013
Tanya Lattner366c2032008-02-19 01:44:26 +000014Next: ; preds = %LoopHeader
15 br i1 false, label %Inner, label %Out
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016
Tanya Lattner366c2032008-02-19 01:44:26 +000017Inner: ; preds = %Inner, %Next
18 br i1 false, label %Inner, label %LoopHeader
Dan Gohmanf17a25c2007-07-18 16:29:46 +000019
Tanya Lattner366c2032008-02-19 01:44:26 +000020LoopHeader: ; preds = %Inner, %Top
21 br label %Next
Dan Gohmanf17a25c2007-07-18 16:29:46 +000022
Tanya Lattner366c2032008-02-19 01:44:26 +000023Out: ; preds = %Next
24 br i1 false, label %Top, label %Done
25
26Done: ; preds = %Out
27 ret void
Dan Gohmanf17a25c2007-07-18 16:29:46 +000028}
Tanya Lattner366c2032008-02-19 01:44:26 +000029