forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			568 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			568 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; Test merging of blocks that only have PHI nodes in them.  This tests the case
 | |
| ; where the mergedinto block doesn't have any PHI nodes, and is in fact 
 | |
| ; dominated by the block-to-be-eliminated
 | |
| ;
 | |
| ; RUN: opt < %s -simplifycfg -S | not grep N:
 | |
| ;
 | |
| 
 | |
| declare i1 @foo()
 | |
| 
 | |
| define i32 @test(i1 %a, i1 %b) {
 | |
|         %c = call i1 @foo()
 | |
| 	br i1 %c, label %N, label %P
 | |
| P:
 | |
|         %d = call i1 @foo()
 | |
| 	br i1 %d, label %N, label %Q
 | |
| Q:
 | |
| 	br label %N
 | |
| N:
 | |
| 	%W = phi i32 [0, %0], [1, %Q], [2, %P]
 | |
| 	; This block should be foldable into M
 | |
| 	br label %M
 | |
| 
 | |
| M:
 | |
| 	%R = add i32 %W, 1
 | |
| 	ret i32 %R
 | |
| }
 | |
| 
 |