90 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 3declare void @ret_void_args_i8(i8 %a)4declare void @ret_void_args_i8_i32(i8 %a, i32 %b)5declare void @ret_void_args_i8_i8_i8_i8(i8 %a, i8 %b, i8 %c, i8 %d)6declare void @ret_void_args_i32_i16_i8(i32 %a, i16 %b, i8 %c)7declare void @ret_void_args_i64(i64 %a)8declare void @ret_void_args_i64_i64(i64 %a, i64 %b)9declare void @ret_void_args_i64_i64_i16(i64 %a, i64 %b, i16 %c)10 11; CHECK-LABEL: call_void_args_i812define void @call_void_args_i8() {13 ; CHECK: ldi r24, 6414 call void @ret_void_args_i8 (i8 64)15 ret void16}17 18; CHECK-LABEL: call_void_args_i8_i3219define void @call_void_args_i8_i32() {20 ; CHECK: ldi r20, 421 ; CHECK-NEXT: ldi r21, 322 ; CHECK-NEXT: ldi r22, 223 ; CHECK-NEXT: ldi r23, 124 ; CHECK-NEXT: ldi r24, 6425 call void @ret_void_args_i8_i32 (i8 64, i32 16909060)26 ret void27}28 29; CHECK-LABEL: call_void_args_i8_i8_i8_i830define void @call_void_args_i8_i8_i8_i8() {31 ; CHECK: ldi r24, 132 ; CHECK-NEXT: ldi r22, 233 ; CHECK-NEXT: ldi r20, 334 ; CHECK-NEXT: ldi r18, 435 call void @ret_void_args_i8_i8_i8_i8(i8 1, i8 2, i8 3, i8 4)36 ret void37}38 39; CHECK-LABEL: call_void_args_i32_i16_i840define void @call_void_args_i32_i16_i8() {41 ; CHECK: ldi r22, 442 ; CHECK-NEXT: ldi r23, 343 ; CHECK-NEXT: ldi r24, 244 ; CHECK-NEXT: ldi r25, 145 ; CHECK-NEXT: ldi r20, 146 ; CHECK-NEXT: ldi r21, 447 ; CHECK-NEXT: ldi r18, 6448 call void @ret_void_args_i32_i16_i8(i32 16909060, i16 1025, i8 64)49 ret void50}51 52; CHECK-LABEL: call_void_args_i6453define void @call_void_args_i64() {54 ; CHECK: ldi r18, 855 ; CHECK-NEXT: ldi r19, 756 ; CHECK-NEXT: ldi r20, 657 ; CHECK-NEXT: ldi r21, 558 ; CHECK-NEXT: ldi r22, 459 ; CHECK-NEXT: ldi r23, 360 ; CHECK-NEXT: ldi r24, 261 ; CHECK-NEXT: ldi r25, 162 call void @ret_void_args_i64(i64 72623859790382856)63 ret void64}65 66; CHECK-LABEL: call_void_args_i64_i6467define void @call_void_args_i64_i64() {68 ; CHECK: ldi r18, 869 ; CHECK-NEXT: ldi r19, 770 ; CHECK-NEXT: ldi r20, 671 ; CHECK-NEXT: ldi r21, 572 ; CHECK-NEXT: ldi r22, 473 ; CHECK-NEXT: ldi r23, 374 ; CHECK-NEXT: ldi r24, 275 ; CHECK-NEXT: ldi r25, 176 ; the second arg is in r10:r17, but unordered77 ; CHECK: r17,78 ; CHECK: r10,79 call void @ret_void_args_i64_i64(i64 72623859790382856, i64 651345242494996224)80 ret void81}82 83; CHECK-LABEL: call_void_args_i64_i64_i1684define void @call_void_args_i64_i64_i16() {85 ; CHECK: r8,86 ; CHECK: r9,87 call void @ret_void_args_i64_i64_i16(i64 72623859790382856, i64 651345242494996224, i16 5655)88 ret void89}90