305 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP323# RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP644 5--- |6 7 define void @float_in_fpr() {entry: ret void}8 define void @double_in_fpr() {entry: ret void}9 define void @float_in_gpr() {entry: ret void}10 define void @double_in_gpr() {entry: ret void}11 define void @call_float_in_fpr() {entry: ret void}12 define void @call_double_in_fpr() {entry: ret void}13 define void @call_float_in_gpr() {entry: ret void}14 define void @call_double_in_gpr() {entry: ret void}15 16...17---18name: float_in_fpr19alignment: 420legalized: true21tracksRegLiveness: true22body: |23 bb.1.entry:24 liveins: $f12, $f1425 26 ; FP32-LABEL: name: float_in_fpr27 ; FP32: liveins: $f12, $f1428 ; FP32: [[COPY:%[0-9]+]]:fprb(s32) = COPY $f1429 ; FP32: $f0 = COPY [[COPY]](s32)30 ; FP32: RetRA implicit $f031 ; FP64-LABEL: name: float_in_fpr32 ; FP64: liveins: $f12, $f1433 ; FP64: [[COPY:%[0-9]+]]:fprb(s32) = COPY $f1434 ; FP64: $f0 = COPY [[COPY]](s32)35 ; FP64: RetRA implicit $f036 %1:_(s32) = COPY $f1437 $f0 = COPY %1(s32)38 RetRA implicit $f039 40...41---42name: double_in_fpr43alignment: 444legalized: true45tracksRegLiveness: true46body: |47 bb.1.entry:48 liveins: $d6, $d749 50 ; FP32-LABEL: name: double_in_fpr51 ; FP32: liveins: $d6, $d752 ; FP32: [[COPY:%[0-9]+]]:fprb(s64) = COPY $d753 ; FP32: $d0 = COPY [[COPY]](s64)54 ; FP32: RetRA implicit $d055 ; FP64-LABEL: name: double_in_fpr56 ; FP64: liveins: $d6, $d757 ; FP64: [[COPY:%[0-9]+]]:fprb(s64) = COPY $d758 ; FP64: $d0 = COPY [[COPY]](s64)59 ; FP64: RetRA implicit $d060 %1:_(s64) = COPY $d761 $d0 = COPY %1(s64)62 RetRA implicit $d063 64...65---66name: float_in_gpr67alignment: 468legalized: true69tracksRegLiveness: true70body: |71 bb.1.entry:72 liveins: $a0, $a173 74 ; FP32-LABEL: name: float_in_gpr75 ; FP32: liveins: $a0, $a176 ; FP32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a177 ; FP32: $f0 = COPY [[COPY]](s32)78 ; FP32: RetRA implicit $f079 ; FP64-LABEL: name: float_in_gpr80 ; FP64: liveins: $a0, $a181 ; FP64: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a182 ; FP64: $f0 = COPY [[COPY]](s32)83 ; FP64: RetRA implicit $f084 %1:_(s32) = COPY $a185 $f0 = COPY %1(s32)86 RetRA implicit $f087 88...89---90name: double_in_gpr91alignment: 492legalized: true93tracksRegLiveness: true94body: |95 bb.1.entry:96 liveins: $a0, $a2, $a397 98 ; FP32-LABEL: name: double_in_gpr99 ; FP32: liveins: $a0, $a2, $a3100 ; FP32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a2101 ; FP32: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a3102 ; FP32: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)103 ; FP32: $d0 = COPY [[MV]](s64)104 ; FP32: RetRA implicit $d0105 ; FP64-LABEL: name: double_in_gpr106 ; FP64: liveins: $a0, $a2, $a3107 ; FP64: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a2108 ; FP64: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a3109 ; FP64: [[MV:%[0-9]+]]:fprb(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)110 ; FP64: $d0 = COPY [[MV]](s64)111 ; FP64: RetRA implicit $d0112 %2:_(s32) = COPY $a2113 %3:_(s32) = COPY $a3114 %1:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)115 $d0 = COPY %1(s64)116 RetRA implicit $d0117 118...119---120name: call_float_in_fpr121alignment: 4122legalized: true123tracksRegLiveness: true124body: |125 bb.1.entry:126 liveins: $f12, $f14127 128 ; FP32-LABEL: name: call_float_in_fpr129 ; FP32: liveins: $f12, $f14130 ; FP32: [[COPY:%[0-9]+]]:fprb(s32) = COPY $f12131 ; FP32: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f14132 ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp133 ; FP32: $f12 = COPY [[COPY]](s32)134 ; FP32: $f14 = COPY [[COPY1]](s32)135 ; FP32: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0136 ; FP32: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f0137 ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp138 ; FP32: $f0 = COPY [[COPY2]](s32)139 ; FP32: RetRA implicit $f0140 ; FP64-LABEL: name: call_float_in_fpr141 ; FP64: liveins: $f12, $f14142 ; FP64: [[COPY:%[0-9]+]]:fprb(s32) = COPY $f12143 ; FP64: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f14144 ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp145 ; FP64: $f12 = COPY [[COPY]](s32)146 ; FP64: $f14 = COPY [[COPY1]](s32)147 ; FP64: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0148 ; FP64: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f0149 ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp150 ; FP64: $f0 = COPY [[COPY2]](s32)151 ; FP64: RetRA implicit $f0152 %0:_(s32) = COPY $f12153 %1:_(s32) = COPY $f14154 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp155 $f12 = COPY %0(s32)156 $f14 = COPY %1(s32)157 JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0158 %2:_(s32) = COPY $f0159 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp160 $f0 = COPY %2(s32)161 RetRA implicit $f0162 163...164---165name: call_double_in_fpr166alignment: 4167legalized: true168tracksRegLiveness: true169body: |170 bb.1.entry:171 liveins: $d6, $d7172 173 ; FP32-LABEL: name: call_double_in_fpr174 ; FP32: liveins: $d6, $d7175 ; FP32: [[COPY:%[0-9]+]]:fprb(s64) = COPY $d6176 ; FP32: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $d7177 ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp178 ; FP32: $d6 = COPY [[COPY]](s64)179 ; FP32: $d7 = COPY [[COPY1]](s64)180 ; FP32: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0181 ; FP32: [[COPY2:%[0-9]+]]:fprb(s64) = COPY $d0182 ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp183 ; FP32: $d0 = COPY [[COPY2]](s64)184 ; FP32: RetRA implicit $d0185 ; FP64-LABEL: name: call_double_in_fpr186 ; FP64: liveins: $d6, $d7187 ; FP64: [[COPY:%[0-9]+]]:fprb(s64) = COPY $d6188 ; FP64: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $d7189 ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp190 ; FP64: $d6 = COPY [[COPY]](s64)191 ; FP64: $d7 = COPY [[COPY1]](s64)192 ; FP64: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0193 ; FP64: [[COPY2:%[0-9]+]]:fprb(s64) = COPY $d0194 ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp195 ; FP64: $d0 = COPY [[COPY2]](s64)196 ; FP64: RetRA implicit $d0197 %0:_(s64) = COPY $d6198 %1:_(s64) = COPY $d7199 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp200 $d6 = COPY %0(s64)201 $d7 = COPY %1(s64)202 JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0203 %2:_(s64) = COPY $d0204 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp205 $d0 = COPY %2(s64)206 RetRA implicit $d0207 208...209---210name: call_float_in_gpr211alignment: 4212legalized: true213tracksRegLiveness: true214body: |215 bb.1.entry:216 liveins: $a0, $a1217 218 ; FP32-LABEL: name: call_float_in_gpr219 ; FP32: liveins: $a0, $a1220 ; FP32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0221 ; FP32: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1222 ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp223 ; FP32: $a0 = COPY [[COPY]](s32)224 ; FP32: $a1 = COPY [[COPY1]](s32)225 ; FP32: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0226 ; FP32: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f0227 ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp228 ; FP32: $f0 = COPY [[COPY2]](s32)229 ; FP32: RetRA implicit $f0230 ; FP64-LABEL: name: call_float_in_gpr231 ; FP64: liveins: $a0, $a1232 ; FP64: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0233 ; FP64: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1234 ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp235 ; FP64: $a0 = COPY [[COPY]](s32)236 ; FP64: $a1 = COPY [[COPY1]](s32)237 ; FP64: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0238 ; FP64: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f0239 ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp240 ; FP64: $f0 = COPY [[COPY2]](s32)241 ; FP64: RetRA implicit $f0242 %0:_(s32) = COPY $a0243 %1:_(s32) = COPY $a1244 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp245 $a0 = COPY %0(s32)246 $a1 = COPY %1(s32)247 JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0248 %2:_(s32) = COPY $f0249 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp250 $f0 = COPY %2(s32)251 RetRA implicit $f0252 253...254---255name: call_double_in_gpr256alignment: 4257legalized: true258tracksRegLiveness: true259body: |260 bb.1.entry:261 liveins: $a0, $a2, $a3262 263 ; FP32-LABEL: name: call_double_in_gpr264 ; FP32: liveins: $a0, $a2, $a3265 ; FP32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0266 ; FP32: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a2267 ; FP32: [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a3268 ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp269 ; FP32: $a0 = COPY [[COPY]](s32)270 ; FP32: $a2 = COPY [[COPY1]](s32)271 ; FP32: $a3 = COPY [[COPY2]](s32)272 ; FP32: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0273 ; FP32: [[COPY3:%[0-9]+]]:fprb(s64) = COPY $d0274 ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp275 ; FP32: $d0 = COPY [[COPY3]](s64)276 ; FP32: RetRA implicit $d0277 ; FP64-LABEL: name: call_double_in_gpr278 ; FP64: liveins: $a0, $a2, $a3279 ; FP64: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0280 ; FP64: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a2281 ; FP64: [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a3282 ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp283 ; FP64: $a0 = COPY [[COPY]](s32)284 ; FP64: $a2 = COPY [[COPY1]](s32)285 ; FP64: $a3 = COPY [[COPY2]](s32)286 ; FP64: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0287 ; FP64: [[COPY3:%[0-9]+]]:fprb(s64) = COPY $d0288 ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp289 ; FP64: $d0 = COPY [[COPY3]](s64)290 ; FP64: RetRA implicit $d0291 %0:_(s32) = COPY $a0292 %2:_(s32) = COPY $a2293 %3:_(s32) = COPY $a3294 ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp295 $a0 = COPY %0(s32)296 $a2 = COPY %2(s32)297 $a3 = COPY %3(s32)298 JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0299 %4:_(s64) = COPY $d0300 ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp301 $d0 = COPY %4(s64)302 RetRA implicit $d0303 304...305