brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 28bfdca Raw
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