41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt -S -lowerswitch %s | FileCheck %s
 | |
| 
 | |
| ; CHECK-LABEL: @phi_in_dead_block(
 | |
| ; CHECK-NOT: switch
 | |
| define void @phi_in_dead_block() {
 | |
| bb:
 | |
|   br i1 undef, label %bb2, label %bb3
 | |
| 
 | |
| bb1:                                              ; No predecessors!
 | |
|   switch i32 undef, label %bb2 [
 | |
|     i32 9, label %bb3
 | |
|   ]
 | |
| 
 | |
| bb2:                                              ; preds = %bb1, %bb
 | |
|   %tmp = phi i64 [ undef, %bb1 ], [ undef, %bb ]
 | |
|   unreachable
 | |
| 
 | |
| bb3:                                              ; preds = %bb1, %bb
 | |
|   unreachable
 | |
| }
 | |
| 
 | |
| ; CHECK-LABEL: @phi_in_dead_block_br_to_self(
 | |
| ; CHECK-NOT: switch
 | |
| define void @phi_in_dead_block_br_to_self() {
 | |
| bb:
 | |
|   br i1 undef, label %bb2, label %bb3
 | |
| 
 | |
| bb1:                                              ; No predecessors!
 | |
|   switch i32 undef, label %bb2 [
 | |
|     i32 9, label %bb3
 | |
|     i32 10, label %bb1
 | |
|   ]
 | |
| 
 | |
| bb2:                                              ; preds = %bb1, %bb
 | |
|   %tmp = phi i64 [ undef, %bb1 ], [ undef, %bb ]
 | |
|   unreachable
 | |
| 
 | |
| bb3:                                              ; preds = %bb1, %bb
 | |
|   unreachable
 | |
| }
 |