29 lines
		
	
	
		
			551 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			551 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -march=hexagon < %s | FileCheck %s
 | |
| 
 | |
| declare i32 @ret_i32()
 | |
| 
 | |
| define i8 @test_i8() {
 | |
| ; CHECK-LABEL: test_i8:
 | |
| ; CHECK: jump ret_i32
 | |
|   %res = tail call i32 @ret_i32()
 | |
|   %val = trunc i32 %res to i8
 | |
|   ret i8 %val
 | |
| }
 | |
| 
 | |
| define i16 @test_i16() {
 | |
| ; CHECK-LABEL: test_i16:
 | |
| ; CHECK: jump ret_i32
 | |
|   %res = tail call i32 @ret_i32()
 | |
|   %val = trunc i32 %res to i16
 | |
|   ret i16 %val
 | |
| }
 | |
| 
 | |
| declare i64 @ret_i64()
 | |
| define i32 @test_i32() {
 | |
| ; CHECK-LABEL: test_i32:
 | |
| ; CHECK: call ret_i64
 | |
|   %res = tail call i64 @ret_i64()
 | |
|   %val = trunc i64 %res to i32
 | |
|   ret i32 42
 | |
| }
 |