forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			798 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			798 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt -S -gvn-hoist < %s | FileCheck %s
 | |
| 
 | |
| ; Check that the call and fcmp are hoisted.
 | |
| ; CHECK-LABEL: define void @fun(
 | |
| ; CHECK: call float
 | |
| ; CHECK: fcmp oeq
 | |
| ; CHECK-NOT: call float
 | |
| ; CHECK-NOT: fcmp oeq
 | |
| 
 | |
| define void @fun(float %__b) minsize {
 | |
| entry:
 | |
|   br label %if.then
 | |
| 
 | |
| if.then:                                          ; preds = %entry
 | |
|   br i1 undef, label %if.then8, label %lor.lhs.false
 | |
| 
 | |
| lor.lhs.false:                                    ; preds = %if.then
 | |
|   %0 = call float @llvm.fabs.f32(float %__b) #2
 | |
|   %cmpinf7 = fcmp oeq float %0, 0x7FF0000000000000
 | |
|   unreachable
 | |
| 
 | |
| if.then8:                                         ; preds = %if.then
 | |
|   %1 = call float @llvm.fabs.f32(float %__b) #2
 | |
|   %cmpinf10 = fcmp oeq float %1, 0x7FF0000000000000
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| declare float @llvm.fabs.f32(float)
 |