203 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+d,+zfh -run-pass=regbankselect \3# RUN: -disable-gisel-legality-check -simplify-mir -verify-machineinstrs %s \4# RUN: -o - | FileCheck %s --check-prefixes=CHECK5# RUN: llc -mtriple=riscv64 -mattr=+d,+zfh -run-pass=regbankselect \6# RUN: -disable-gisel-legality-check -simplify-mir -verify-machineinstrs %s \7# RUN: -o - | FileCheck %s --check-prefixes=CHECK8 9---10name: fp_store_fp_def_f3211legalized: true12tracksRegLiveness: true13body: |14 bb.1:15 liveins: $x10, $f10_f, $f11_f16 17 ; CHECK-LABEL: name: fp_store_fp_def_f3218 ; CHECK: liveins: $x10, $f10_f, $f11_f19 ; CHECK-NEXT: {{ $}}20 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1021 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f10_f22 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f11_f23 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s32) = G_FADD [[COPY1]], [[COPY2]]24 ; CHECK-NEXT: G_STORE [[FADD]](s32), [[COPY]](p0) :: (store (s32))25 ; CHECK-NEXT: PseudoRET26 %0:_(p0) = COPY $x1027 %1:_(s32) = COPY $f10_f28 %2:_(s32) = COPY $f11_f29 %3:_(s32) = G_FADD %1, %230 G_STORE %3(s32), %0(p0) :: (store (s32))31 PseudoRET32 33...34---35name: fp_store_fp_def_f6436legalized: true37tracksRegLiveness: true38body: |39 bb.1:40 liveins: $x10, $f10_d, $f11_d41 42 ; CHECK-LABEL: name: fp_store_fp_def_f6443 ; CHECK: liveins: $x10, $f10_d, $f11_d44 ; CHECK-NEXT: {{ $}}45 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1046 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d47 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fprb(s64) = COPY $f11_d48 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s64) = G_FADD [[COPY1]], [[COPY2]]49 ; CHECK-NEXT: G_STORE [[FADD]](s64), [[COPY]](p0) :: (store (s64))50 ; CHECK-NEXT: PseudoRET51 %0:_(p0) = COPY $x1052 %1:_(s64) = COPY $f10_d53 %2:_(s64) = COPY $f11_d54 %3:_(s64) = G_FADD %1, %255 G_STORE %3(s64), %0(p0) :: (store (s64))56 PseudoRET57 58...59---60name: fp_store_no_def_f6461legalized: true62tracksRegLiveness: true63body: |64 bb.1:65 liveins: $x10, $f10_d66 67 ; CHECK-LABEL: name: fp_store_no_def_f6468 ; CHECK: liveins: $x10, $f10_d69 ; CHECK-NEXT: {{ $}}70 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1071 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d72 ; CHECK-NEXT: G_STORE [[COPY1]](s64), [[COPY]](p0) :: (store (s64))73 ; CHECK-NEXT: PseudoRET74 %0:_(p0) = COPY $x1075 %1:_(s64) = COPY $f10_d76 G_STORE %1(s64), %0(p0) :: (store (s64))77 PseudoRET78 79...80---81name: fp_load_fp_use_f3282legalized: true83tracksRegLiveness: true84body: |85 bb.1:86 liveins: $x10, $f10_f87 88 ; CHECK-LABEL: name: fp_load_fp_use_f3289 ; CHECK: liveins: $x10, $f10_f90 ; CHECK-NEXT: {{ $}}91 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1092 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f10_f93 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:fprb(s32) = G_LOAD [[COPY]](p0) :: (load (s32))94 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s32) = G_FADD [[LOAD]], [[COPY1]]95 ; CHECK-NEXT: $f10_f = COPY [[FADD]](s32)96 ; CHECK-NEXT: PseudoRET implicit $f10_f97 %0:_(p0) = COPY $x1098 %1:_(s32) = COPY $f10_f99 %2:_(s32) = G_LOAD %0(p0) :: (load (s32))100 %3:_(s32) = G_FADD %2, %1101 $f10_f = COPY %3(s32)102 PseudoRET implicit $f10_f103 104...105---106name: fp_load_fp_use_f64107legalized: true108tracksRegLiveness: true109body: |110 bb.1:111 liveins: $x10, $f10_d112 113 ; CHECK-LABEL: name: fp_load_fp_use_f64114 ; CHECK: liveins: $x10, $f10_d115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10117 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d118 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY]](p0) :: (load (s64))119 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s64) = G_FADD [[LOAD]], [[COPY1]]120 ; CHECK-NEXT: $f10_d = COPY [[FADD]](s64)121 ; CHECK-NEXT: PseudoRET implicit $f10_d122 %0:_(p0) = COPY $x10123 %1:_(s64) = COPY $f10_d124 %2:_(s64) = G_LOAD %0(p0) :: (load (s64))125 %3:_(s64) = G_FADD %2, %1126 $f10_d = COPY %3(s64)127 PseudoRET implicit $f10_d128 129...130---131name: fp_load_no_use_f64132legalized: true133tracksRegLiveness: true134body: |135 bb.1:136 liveins: $x10, $f10_d137 138 ; CHECK-LABEL: name: fp_load_no_use_f64139 ; CHECK: liveins: $x10, $f10_d140 ; CHECK-NEXT: {{ $}}141 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10142 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d143 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:fprb(s64) = G_LOAD [[COPY]](p0) :: (load (s64))144 ; CHECK-NEXT: $f10_d = COPY [[LOAD]](s64)145 ; CHECK-NEXT: PseudoRET implicit $f10_d146 %0:_(p0) = COPY $x10147 %1:_(s64) = COPY $f10_d148 %2:_(s64) = G_LOAD %0(p0) :: (load (s64))149 $f10_d = COPY %2(s64)150 PseudoRET implicit $f10_d151 152...153---154name: fp_store_fp_def_f16155legalized: true156tracksRegLiveness: true157body: |158 bb.1:159 liveins: $x10, $f10_h, $f11_h160 161 ; CHECK-LABEL: name: fp_store_fp_def_f16162 ; CHECK: liveins: $x10, $f10_h, $f11_h163 ; CHECK-NEXT: {{ $}}164 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10165 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s16) = COPY $f10_h166 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fprb(s16) = COPY $f11_h167 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s16) = G_FADD [[COPY1]], [[COPY2]]168 ; CHECK-NEXT: G_STORE [[FADD]](s16), [[COPY]](p0) :: (store (s16))169 ; CHECK-NEXT: PseudoRET170 %0:_(p0) = COPY $x10171 %1:_(s16) = COPY $f10_h172 %2:_(s16) = COPY $f11_h173 %3:_(s16) = G_FADD %1, %2174 G_STORE %3(s16), %0(p0) :: (store (s16))175 PseudoRET176 177...178---179name: fp_load_fp_use_f16180legalized: true181tracksRegLiveness: true182body: |183 bb.1:184 liveins: $x10, $f10_h185 186 ; CHECK-LABEL: name: fp_load_fp_use_f16187 ; CHECK: liveins: $x10, $f10_h188 ; CHECK-NEXT: {{ $}}189 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10190 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fprb(s16) = COPY $f10_h191 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:fprb(s16) = G_LOAD [[COPY]](p0) :: (load (s16))192 ; CHECK-NEXT: [[FADD:%[0-9]+]]:fprb(s16) = G_FADD [[LOAD]], [[COPY1]]193 ; CHECK-NEXT: $f10_h = COPY [[FADD]](s16)194 ; CHECK-NEXT: PseudoRET implicit $f10_h195 %0:_(p0) = COPY $x10196 %1:_(s16) = COPY $f10_h197 %2:_(s16) = G_LOAD %0(p0) :: (load (s16))198 %3:_(s16) = G_FADD %2, %1199 $f10_h = COPY %3(s16)200 PseudoRET implicit $f10_h201 202...203