1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32 3--- | 4 5 declare void @f_i32(i32) 6 define void @g_i32() {entry: ret void} 7 8 declare void @f_i64(i64) 9 define void @g_i64() {entry: ret void} 10 11 declare void @f_float(float) 12 define void @g_float() {entry: ret void} 13 14 declare void @f_double(double) 15 define void @g_double() {entry: ret void} 16 17... 18--- 19name: g_i32 20alignment: 2 21legalized: true 22tracksRegLiveness: true 23body: | 24 bb.1.entry: 25 ; MIPS32-LABEL: name: g_i32 26 ; MIPS32: [[DEF:%[0-9]+]]:gprb(s32) = G_IMPLICIT_DEF 27 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 28 ; MIPS32: $a0 = COPY [[DEF]](s32) 29 ; MIPS32: JAL @f_i32, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0 30 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 31 ; MIPS32: RetRA 32 %0:_(s32) = G_IMPLICIT_DEF 33 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 34 $a0 = COPY %0(s32) 35 JAL @f_i32, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0 36 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 37 RetRA 38 39... 40--- 41name: g_i64 42alignment: 2 43legalized: true 44tracksRegLiveness: true 45body: | 46 bb.1.entry: 47 ; MIPS32-LABEL: name: g_i64 48 ; MIPS32: [[DEF:%[0-9]+]]:gprb(s32) = G_IMPLICIT_DEF 49 ; MIPS32: [[DEF1:%[0-9]+]]:gprb(s32) = G_IMPLICIT_DEF 50 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 51 ; MIPS32: $a0 = COPY [[DEF]](s32) 52 ; MIPS32: $a1 = COPY [[DEF1]](s32) 53 ; MIPS32: JAL @f_i64, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1 54 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 55 ; MIPS32: RetRA 56 %0:_(s64) = G_IMPLICIT_DEF 57 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 58 %1:_(s32), %2:_(s32) = G_UNMERGE_VALUES %0(s64) 59 $a0 = COPY %1(s32) 60 $a1 = COPY %2(s32) 61 JAL @f_i64, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1 62 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 63 RetRA 64 65... 66--- 67name: g_float 68alignment: 2 69legalized: true 70tracksRegLiveness: true 71body: | 72 bb.1.entry: 73 ; MIPS32-LABEL: name: g_float 74 ; MIPS32: [[DEF:%[0-9]+]]:fprb(s32) = G_IMPLICIT_DEF 75 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 76 ; MIPS32: $f12 = COPY [[DEF]](s32) 77 ; MIPS32: JAL @f_float, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12 78 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 79 ; MIPS32: RetRA 80 %0:_(s32) = G_IMPLICIT_DEF 81 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 82 $f12 = COPY %0(s32) 83 JAL @f_float, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12 84 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 85 RetRA 86 87... 88--- 89name: g_double 90alignment: 2 91legalized: true 92tracksRegLiveness: true 93registers: 94body: | 95 bb.1.entry: 96 ; MIPS32-LABEL: name: g_double 97 ; MIPS32: [[DEF:%[0-9]+]]:fprb(s64) = G_IMPLICIT_DEF 98 ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 99 ; MIPS32: $d6 = COPY [[DEF]](s64) 100 ; MIPS32: JAL @f_double, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6 101 ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 102 ; MIPS32: RetRA 103 %0:_(s64) = G_IMPLICIT_DEF 104 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp 105 $d6 = COPY %0(s64) 106 JAL @f_double, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6 107 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp 108 RetRA 109 110... 111