30 lines
		
	
	
		
			818 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			818 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; LoopInfo is incorrectly calculating loop nesting!  In this case it doesn't 
 | |
| ; figure out that loop "Inner" should be nested inside of leep "LoopHeader", 
 | |
| ; and instead nests it just inside loop "Top"
 | |
| ;
 | |
| ; RUN: llvm-as < %s | opt -analyze -loops | \
 | |
| ; RUN:   grep {     Loop at depth 3 containing: %Inner<header><latch><exit>}
 | |
| ;
 | |
| define void @test() {
 | |
|         br label %Top
 | |
| 
 | |
| Top:            ; preds = %Out, %0
 | |
|         br label %LoopHeader
 | |
| 
 | |
| Next:           ; preds = %LoopHeader
 | |
|         br i1 false, label %Inner, label %Out
 | |
| 
 | |
| Inner:          ; preds = %Inner, %Next
 | |
|         br i1 false, label %Inner, label %LoopHeader
 | |
| 
 | |
| LoopHeader:             ; preds = %Inner, %Top
 | |
|         br label %Next
 | |
| 
 | |
| Out:            ; preds = %Next
 | |
|         br i1 false, label %Top, label %Done
 | |
| 
 | |
| Done:           ; preds = %Out
 | |
|         ret void
 | |
| }
 | |
| 
 |