31 lines
681 B
LLVM
31 lines
681 B
LLVM
; RUN: opt < %s -scalar-evolution -licm -loop-unroll -disable-output
|
|
; Test triggered an assertion in doFinalization() because loop unroll was deleting
|
|
; the inner loop which caused the loop to not get removed from the
|
|
; LoopToAliasSetMap.
|
|
; Test case taken from test/Transforms/LoopUnroll/unloop.ll.
|
|
|
|
declare i1 @check() nounwind
|
|
define void @skiplevelexit() nounwind {
|
|
entry:
|
|
br label %outer
|
|
|
|
outer:
|
|
br label %inner
|
|
|
|
inner:
|
|
%iv = phi i32 [ 0, %outer ], [ %inc, %tail ]
|
|
%inc = add i32 %iv, 1
|
|
call zeroext i1 @check()
|
|
br i1 true, label %outer.backedge, label %tail
|
|
|
|
tail:
|
|
br i1 false, label %inner, label %exit
|
|
|
|
outer.backedge:
|
|
br label %outer
|
|
|
|
exit:
|
|
ret void
|
|
}
|
|
|