forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; This (complex) testcase causes an assertion failure because a preheader is 
 | 
						|
; inserted for the "fail" loop, but the exit block of a loop is not updated
 | 
						|
; to be the preheader instead of the exit loop itself.
 | 
						|
 | 
						|
; RUN: opt < %s -loop-simplify
 | 
						|
define i32 @re_match_2() {
 | 
						|
	br label %loopentry.1
 | 
						|
loopentry.1:		; preds = %endif.82, %0
 | 
						|
	br label %shortcirc_done.36
 | 
						|
shortcirc_done.36:		; preds = %loopentry.1
 | 
						|
	br i1 false, label %fail, label %endif.40
 | 
						|
endif.40:		; preds = %shortcirc_done.36
 | 
						|
	br label %loopexit.20
 | 
						|
loopentry.20:		; preds = %endif.46
 | 
						|
	br label %loopexit.20
 | 
						|
loopexit.20:		; preds = %loopentry.20, %endif.40
 | 
						|
	br label %loopentry.21
 | 
						|
loopentry.21:		; preds = %no_exit.19, %loopexit.20
 | 
						|
	br i1 false, label %no_exit.19, label %loopexit.21
 | 
						|
no_exit.19:		; preds = %loopentry.21
 | 
						|
	br i1 false, label %fail, label %loopentry.21
 | 
						|
loopexit.21:		; preds = %loopentry.21
 | 
						|
	br label %endif.45
 | 
						|
endif.45:		; preds = %loopexit.21
 | 
						|
	br label %cond_true.15
 | 
						|
cond_true.15:		; preds = %endif.45
 | 
						|
	br i1 false, label %fail, label %endif.46
 | 
						|
endif.46:		; preds = %cond_true.15
 | 
						|
	br label %loopentry.20
 | 
						|
fail:		; preds = %loopexit.37, %cond_true.15, %no_exit.19, %shortcirc_done.36
 | 
						|
	br label %then.80
 | 
						|
then.80:		; preds = %fail
 | 
						|
	br label %endif.81
 | 
						|
endif.81:		; preds = %then.80
 | 
						|
	br label %loopexit.37
 | 
						|
loopexit.37:		; preds = %endif.81
 | 
						|
	br i1 false, label %fail, label %endif.82
 | 
						|
endif.82:		; preds = %loopexit.37
 | 
						|
	br label %loopentry.1
 | 
						|
}
 | 
						|
 | 
						|
 |