xref: /llvm-project/llvm/test/CodeGen/AVR/calling-conv/c/return.ll (revision 9ef1d37ffb5f56a9b949a6307bbb16c2ea0130e3)
1; RUN: llc < %s -mtriple=avr | FileCheck %s
2
3; CHECK-LABEL: ret_i8
4define i8 @ret_i8() {
5  ; CHECK: ldi r24, 64
6  ret i8 64
7}
8
9; CHECK-LABEL: ret_i16
10define i16 @ret_i16() {
11  ; CHECK:      ldi     r24, 0
12  ; CHECK-NEXT: ldi     r25, 4
13  ret i16 1024
14}
15
16; CHECK-LABEL: ret_i32
17define i32 @ret_i32() {
18  ; CHECK:      ldi     r22, 78
19  ; CHECK-NEXT: ldi     r23, 97
20  ; CHECK-NEXT: ldi     r24, 188
21  ; CHECK-NEXT: ldi     r25, 0
22  ret i32 12345678
23}
24
25; CHECK-LABEL: ret_i64
26define i64 @ret_i64() {
27  ; CHECK:      ldi     r18, 0
28  ; CHECK-NEXT: ldi     r19, 255
29  ; CHECK-NEXT: mov     r20, r18
30  ; CHECK-NEXT: mov     r21, r19
31  ; CHECK-NEXT: mov     r22, r18
32  ; CHECK-NEXT: mov     r23, r19
33  ; CHECK-NEXT: mov     r24, r18
34  ; CHECK-NEXT: mov     r25, r19
35  ret i64 18374966859414961920
36}
37