• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt < %s -scalar-evolution -licm -loop-unroll -disable-output
2; Test triggered an assertion in doFinalization() because loop unroll was deleting
3; the inner loop which caused the loop to not get removed from the
4; LoopToAliasSetMap.
5; Test case taken from test/Transforms/LoopUnroll/unloop.ll.
6
7declare i1 @check() nounwind
8define void @skiplevelexit() nounwind {
9entry:
10  br label %outer
11
12outer:
13  br label %inner
14
15inner:
16  %iv = phi i32 [ 0, %outer ], [ %inc, %tail ]
17  %inc = add i32 %iv, 1
18  call zeroext i1 @check()
19  br i1 true, label %outer.backedge, label %tail
20
21tail:
22  br i1 false, label %inner, label %exit
23
24outer.backedge:
25  br label %outer
26
27exit:
28  ret void
29}
30
31