30 lines
		
	
	
		
			508 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			508 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc < %s -march=avr | FileCheck %s
 | |
| 
 | |
| ; sext R17:R16, R13
 | |
| ; mov r16, r13
 | |
| ; mov r17, r13
 | |
| ; lsl r17
 | |
| ; sbc r17, r17
 | |
| define i16 @sext1(i8 %x, i8 %y) {
 | |
| ; CHECK-LABEL: sext1:
 | |
| ; CHECK: mov r24, r22
 | |
| ; CHECK: mov r25, r22
 | |
| ; CHECK: lsl r25
 | |
| ; CHECK: sbc r25, r25
 | |
|   %1 = sext i8 %y to i16
 | |
|   ret i16 %1
 | |
| }
 | |
| 
 | |
| ; sext R17:R16, R16
 | |
| ; mov r17, r16
 | |
| ; lsl r17
 | |
| ; sbc r17, r17
 | |
| define i16 @sext2(i8 %x) {
 | |
| ; CHECK-LABEL: sext2:
 | |
| ; CHECK: mov r25, r24
 | |
| ; CHECK: lsl r25
 | |
| ; CHECK: sbc r25, r25
 | |
|   %1 = sext i8 %x to i16
 | |
|   ret i16 %1
 | |
| }
 |