19 lines
		
	
	
		
			385 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			385 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc < %s -march=x86 | FileCheck %s 
 | |
| 
 | |
| @foo = global i8 127
 | |
| 
 | |
| define i32 @main() nounwind {
 | |
| ; CHECK-LABEL: main:
 | |
| ; CHECK-NOT: ret
 | |
| ; CHECK: sar{{.}} $5
 | |
| ; CHECK: ret
 | |
| 
 | |
|    %tmp = load i8, i8* @foo
 | |
|    %bf.lo = lshr i8 %tmp, 5
 | |
|    %bf.lo.cleared = and i8 %bf.lo, 7
 | |
|    %1 = shl i8 %bf.lo.cleared, 5
 | |
|    %bf.val.sext = ashr i8 %1, 5
 | |
|    %conv = sext i8 %bf.val.sext to i32
 | |
|    ret i32 %conv
 | |
| }
 |