; RUN: llc < %s -march=avr | FileCheck %s declare void @ret_void_args_i8(i8 %a) declare void @ret_void_args_i8_i32(i8 %a, i32 %b) declare void @ret_void_args_i8_i8_i8_i8(i8 %a, i8 %b, i8 %c, i8 %d) declare void @ret_void_args_i32_i16_i8(i32 %a, i16 %b, i8 %c) declare void @ret_void_args_i64(i64 %a) declare void @ret_void_args_i64_i64(i64 %a, i64 %b) declare void @ret_void_args_i64_i64_i16(i64 %a, i64 %b, i16 %c) ; CHECK-LABEL: call_void_args_i8 define void @call_void_args_i8() { ; CHECK: ldi r24, 64 call void @ret_void_args_i8 (i8 64) ret void } ; CHECK-LABEL: call_void_args_i8_i32 define void @call_void_args_i8_i32() { ; CHECK: ldi r20, 4 ; CHECK-NEXT: ldi r21, 3 ; CHECK-NEXT: ldi r22, 2 ; CHECK-NEXT: ldi r23, 1 ; CHECK-NEXT: ldi r24, 64 call void @ret_void_args_i8_i32 (i8 64, i32 16909060) ret void } ; CHECK-LABEL: call_void_args_i8_i8_i8_i8 define void @call_void_args_i8_i8_i8_i8() { ; CHECK: ldi r24, 1 ; CHECK-NEXT: ldi r22, 2 ; CHECK-NEXT: ldi r20, 3 ; CHECK-NEXT: ldi r18, 4 call void @ret_void_args_i8_i8_i8_i8(i8 1, i8 2, i8 3, i8 4) ret void } ; CHECK-LABEL: call_void_args_i32_i16_i8 define void @call_void_args_i32_i16_i8() { ; CHECK: ldi r22, 4 ; CHECK-NEXT: ldi r23, 3 ; CHECK-NEXT: ldi r24, 2 ; CHECK-NEXT: ldi r25, 1 ; CHECK-NEXT: ldi r20, 1 ; CHECK-NEXT: ldi r21, 4 ; CHECK-NEXT: ldi r18, 64 call void @ret_void_args_i32_i16_i8(i32 16909060, i16 1025, i8 64) ret void } ; CHECK-LABEL: call_void_args_i64 define void @call_void_args_i64() { ; CHECK: ldi r18, 8 ; CHECK-NEXT: ldi r19, 7 ; CHECK-NEXT: ldi r20, 6 ; CHECK-NEXT: ldi r21, 5 ; CHECK-NEXT: ldi r22, 4 ; CHECK-NEXT: ldi r23, 3 ; CHECK-NEXT: ldi r24, 2 ; CHECK-NEXT: ldi r25, 1 call void @ret_void_args_i64(i64 72623859790382856) ret void } ; CHECK-LABEL: call_void_args_i64_i64 define void @call_void_args_i64_i64() { ; CHECK: ldi r18, 8 ; CHECK-NEXT: ldi r19, 7 ; CHECK-NEXT: ldi r20, 6 ; CHECK-NEXT: ldi r21, 5 ; CHECK-NEXT: ldi r22, 4 ; CHECK-NEXT: ldi r23, 3 ; CHECK-NEXT: ldi r24, 2 ; CHECK-NEXT: ldi r25, 1 ; the second arg is in r10:r17, but unordered ; CHECK: r17, ; CHECK: r10, call void @ret_void_args_i64_i64(i64 72623859790382856, i64 651345242494996224) ret void } ; CHECK-LABEL: call_void_args_i64_i64_i16 define void @call_void_args_i64_i64_i16() { ; CHECK: r8, ; CHECK: r9, call void @ret_void_args_i64_i64_i16(i64 72623859790382856, i64 651345242494996224, i16 5655) ret void }