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
 | 
						|
}
 | 
						|
 |