76 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt < %s -jump-threading -disable-output -verify-dom-info
 | |
| @global = external global i64, align 8
 | |
| 
 | |
| define void @f() {
 | |
| bb:
 | |
|   br label %bb1
 | |
| 
 | |
| bb1:
 | |
|   %tmp = load i64, i64* @global, align 8
 | |
|   %tmp2 = icmp eq i64 %tmp, 0
 | |
|   br i1 %tmp2, label %bb27, label %bb3
 | |
| 
 | |
| bb3:
 | |
|   %tmp4 = load i64, i64* @global, align 8
 | |
|   %tmp5 = icmp eq i64 %tmp4, 0
 | |
|   br i1 %tmp5, label %bb6, label %bb7
 | |
| 
 | |
| bb6:
 | |
|   br label %bb7
 | |
| 
 | |
| bb7:
 | |
|   %tmp8 = phi i1 [ true, %bb3 ], [ undef, %bb6 ]
 | |
|   %tmp9 = select i1 %tmp8, i64 %tmp4, i64 0
 | |
|   br i1 false, label %bb10, label %bb23
 | |
| 
 | |
| bb10:
 | |
|   %tmp11 = load i64, i64* @global, align 8
 | |
|   %tmp12 = icmp slt i64 %tmp11, 5
 | |
|   br i1 %tmp12, label %bb13, label %bb17
 | |
| 
 | |
| bb13:
 | |
|   br label %bb14
 | |
| 
 | |
| bb14:
 | |
|   br i1 undef, label %bb15, label %bb16
 | |
| 
 | |
| bb15:
 | |
|   unreachable
 | |
| 
 | |
| bb16:
 | |
|   br label %bb10
 | |
| 
 | |
| bb17:
 | |
|   br label %bb18
 | |
| 
 | |
| bb18:
 | |
|   br i1 undef, label %bb22, label %bb13
 | |
| 
 | |
| bb19:
 | |
|   br i1 undef, label %bb20, label %bb21
 | |
| 
 | |
| bb20:
 | |
|   unreachable
 | |
| 
 | |
| bb21:
 | |
|   br label %bb18
 | |
| 
 | |
| bb22:
 | |
|   br label %bb23
 | |
| 
 | |
| bb23:
 | |
|   br i1 undef, label %bb24, label %bb13
 | |
| 
 | |
| bb24:
 | |
|   br i1 undef, label %bb26, label %bb25
 | |
| 
 | |
| bb25:
 | |
|   br label %bb19
 | |
| 
 | |
| bb26:
 | |
|   br label %bb1
 | |
| 
 | |
| bb27:
 | |
|   br label %bb24
 | |
| }
 |