18 lines
		
	
	
		
			609 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			609 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 | |
| ; RUN: opt -S -instcombine < %s | FileCheck %s
 | |
| 
 | |
| define float @test1(i32 %scale) {
 | |
| ; CHECK-LABEL: @test1(
 | |
| ; CHECK-NEXT:    [[TMP1:%.*]] = icmp sgt i32 [[SCALE:%.*]], 1
 | |
| ; CHECK-NEXT:    [[TMP2:%.*]] = select i1 [[TMP1]], i32 [[SCALE]], i32 1
 | |
| ; CHECK-NEXT:    [[TMP3:%.*]] = sitofp i32 [[TMP2]] to float
 | |
| ; CHECK-NEXT:    ret float [[TMP3]]
 | |
| ;
 | |
|   %1 = icmp sgt i32 1, %scale
 | |
|   %2 = select i1 %1, i32 1, i32 %scale
 | |
|   %3 = sitofp i32 %2 to float
 | |
|   %4 = icmp sgt i32 %2, 0
 | |
|   %sel = select i1 %4, float %3, float 0.000000e+00
 | |
|   ret float %sel
 | |
| }
 |