brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · 226b42e Raw
312 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP323# RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP644--- |5 6  define void @float_in_fpr() {entry: ret void}7  define void @double_in_fpr() {entry: ret void}8  define void @float_in_gpr() {entry: ret void}9  define void @double_in_gpr() {entry: ret void}10  define void @call_float_in_fpr() {entry: ret void}11  define void @call_double_in_fpr() {entry: ret void}12  define void @call_float_in_gpr() {entry: ret void}13  define void @call_double_in_gpr() {entry: ret void}14 15...16---17name:            float_in_fpr18alignment:       419legalized:       true20regBankSelected: 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]+]]:fgr32 = COPY $f1429    ; FP32: $f0 = COPY [[COPY]]30    ; FP32: RetRA implicit $f031    ; FP64-LABEL: name: float_in_fpr32    ; FP64: liveins: $f12, $f1433    ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f1434    ; FP64: $f0 = COPY [[COPY]]35    ; FP64: RetRA implicit $f036    %1:fprb(s32) = COPY $f1437    $f0 = COPY %1(s32)38    RetRA implicit $f039 40...41---42name:            double_in_fpr43alignment:       444legalized:       true45regBankSelected: true46tracksRegLiveness: true47body:             |48  bb.1.entry:49    liveins: $d6, $d750 51    ; FP32-LABEL: name: double_in_fpr52    ; FP32: liveins: $d6, $d753    ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d754    ; FP32: $d0 = COPY [[COPY]]55    ; FP32: RetRA implicit $d056    ; FP64-LABEL: name: double_in_fpr57    ; FP64: liveins: $d6, $d758    ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d759    ; FP64: $d0 = COPY [[COPY]]60    ; FP64: RetRA implicit $d061    %1:fprb(s64) = COPY $d762    $d0 = COPY %1(s64)63    RetRA implicit $d064 65...66---67name:            float_in_gpr68alignment:       469legalized:       true70regBankSelected: true71tracksRegLiveness: true72body:             |73  bb.1.entry:74    liveins: $a0, $a175 76    ; FP32-LABEL: name: float_in_gpr77    ; FP32: liveins: $a0, $a178    ; FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a179    ; FP32: $f0 = COPY [[COPY]]80    ; FP32: RetRA implicit $f081    ; FP64-LABEL: name: float_in_gpr82    ; FP64: liveins: $a0, $a183    ; FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a184    ; FP64: $f0 = COPY [[COPY]]85    ; FP64: RetRA implicit $f086    %1:gprb(s32) = COPY $a187    $f0 = COPY %1(s32)88    RetRA implicit $f089 90...91---92name:            double_in_gpr93alignment:       494legalized:       true95regBankSelected: true96tracksRegLiveness: true97body:             |98  bb.1.entry:99    liveins: $a0, $a2, $a3100 101    ; FP32-LABEL: name: double_in_gpr102    ; FP32: liveins: $a0, $a2, $a3103    ; FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a2104    ; FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a3105    ; FP32: [[BuildPairF64_:%[0-9]+]]:afgr64 = BuildPairF64 [[COPY]], [[COPY1]]106    ; FP32: $d0 = COPY [[BuildPairF64_]]107    ; FP32: RetRA implicit $d0108    ; FP64-LABEL: name: double_in_gpr109    ; FP64: liveins: $a0, $a2, $a3110    ; FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a2111    ; FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a3112    ; FP64: [[BuildPairF64_64_:%[0-9]+]]:fgr64 = BuildPairF64_64 [[COPY]], [[COPY1]]113    ; FP64: $d0 = COPY [[BuildPairF64_64_]]114    ; FP64: RetRA implicit $d0115    %2:gprb(s32) = COPY $a2116    %3:gprb(s32) = COPY $a3117    %1:fprb(s64) = G_MERGE_VALUES %2(s32), %3(s32)118    $d0 = COPY %1(s64)119    RetRA implicit $d0120 121...122---123name:            call_float_in_fpr124alignment:       4125legalized:       true126regBankSelected: true127tracksRegLiveness: true128body:             |129  bb.1.entry:130    liveins: $f12, $f14131 132    ; FP32-LABEL: name: call_float_in_fpr133    ; FP32: liveins: $f12, $f14134    ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12135    ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14136    ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp137    ; FP32: $f12 = COPY [[COPY]]138    ; FP32: $f14 = COPY [[COPY1]]139    ; FP32: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0140    ; FP32: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0141    ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp142    ; FP32: $f0 = COPY [[COPY2]]143    ; FP32: RetRA implicit $f0144    ; FP64-LABEL: name: call_float_in_fpr145    ; FP64: liveins: $f12, $f14146    ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12147    ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14148    ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp149    ; FP64: $f12 = COPY [[COPY]]150    ; FP64: $f14 = COPY [[COPY1]]151    ; FP64: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0152    ; FP64: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0153    ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp154    ; FP64: $f0 = COPY [[COPY2]]155    ; FP64: RetRA implicit $f0156    %0:fprb(s32) = COPY $f12157    %1:fprb(s32) = COPY $f14158    ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp159    $f12 = COPY %0(s32)160    $f14 = COPY %1(s32)161    JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0162    %2:fprb(s32) = COPY $f0163    ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp164    $f0 = COPY %2(s32)165    RetRA implicit $f0166 167...168---169name:            call_double_in_fpr170alignment:       4171legalized:       true172regBankSelected: true173tracksRegLiveness: true174body:             |175  bb.1.entry:176    liveins: $d6, $d7177 178    ; FP32-LABEL: name: call_double_in_fpr179    ; FP32: liveins: $d6, $d7180    ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6181    ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7182    ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp183    ; FP32: $d6 = COPY [[COPY]]184    ; FP32: $d7 = COPY [[COPY1]]185    ; FP32: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0186    ; FP32: [[COPY2:%[0-9]+]]:afgr64 = COPY $d0187    ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp188    ; FP32: $d0 = COPY [[COPY2]]189    ; FP32: RetRA implicit $d0190    ; FP64-LABEL: name: call_double_in_fpr191    ; FP64: liveins: $d6, $d7192    ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6193    ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7194    ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp195    ; FP64: $d6 = COPY [[COPY]]196    ; FP64: $d7 = COPY [[COPY1]]197    ; FP64: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0198    ; FP64: [[COPY2:%[0-9]+]]:fgr64 = COPY $d0199    ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp200    ; FP64: $d0 = COPY [[COPY2]]201    ; FP64: RetRA implicit $d0202    %0:fprb(s64) = COPY $d6203    %1:fprb(s64) = COPY $d7204    ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp205    $d6 = COPY %0(s64)206    $d7 = COPY %1(s64)207    JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0208    %2:fprb(s64) = COPY $d0209    ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp210    $d0 = COPY %2(s64)211    RetRA implicit $d0212 213...214---215name:            call_float_in_gpr216alignment:       4217legalized:       true218regBankSelected: true219tracksRegLiveness: true220body:             |221  bb.1.entry:222    liveins: $a0, $a1223 224    ; FP32-LABEL: name: call_float_in_gpr225    ; FP32: liveins: $a0, $a1226    ; FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0227    ; FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1228    ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp229    ; FP32: $a0 = COPY [[COPY]]230    ; FP32: $a1 = COPY [[COPY1]]231    ; FP32: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0232    ; FP32: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0233    ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp234    ; FP32: $f0 = COPY [[COPY2]]235    ; FP32: RetRA implicit $f0236    ; FP64-LABEL: name: call_float_in_gpr237    ; FP64: liveins: $a0, $a1238    ; FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a0239    ; FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1240    ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp241    ; FP64: $a0 = COPY [[COPY]]242    ; FP64: $a1 = COPY [[COPY1]]243    ; FP64: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0244    ; FP64: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0245    ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp246    ; FP64: $f0 = COPY [[COPY2]]247    ; FP64: RetRA implicit $f0248    %0:gprb(s32) = COPY $a0249    %1:gprb(s32) = COPY $a1250    ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp251    $a0 = COPY %0(s32)252    $a1 = COPY %1(s32)253    JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0254    %2:fprb(s32) = COPY $f0255    ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp256    $f0 = COPY %2(s32)257    RetRA implicit $f0258 259...260---261name:            call_double_in_gpr262alignment:       4263legalized:       true264regBankSelected: true265tracksRegLiveness: true266body:             |267  bb.1.entry:268    liveins: $a0, $a2, $a3269 270    ; FP32-LABEL: name: call_double_in_gpr271    ; FP32: liveins: $a0, $a2, $a3272    ; FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0273    ; FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a2274    ; FP32: [[COPY2:%[0-9]+]]:gpr32 = COPY $a3275    ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp276    ; FP32: $a0 = COPY [[COPY]]277    ; FP32: $a2 = COPY [[COPY1]]278    ; FP32: $a3 = COPY [[COPY2]]279    ; FP32: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0280    ; FP32: [[COPY3:%[0-9]+]]:afgr64 = COPY $d0281    ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp282    ; FP32: $d0 = COPY [[COPY3]]283    ; FP32: RetRA implicit $d0284    ; FP64-LABEL: name: call_double_in_gpr285    ; FP64: liveins: $a0, $a2, $a3286    ; FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a0287    ; FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a2288    ; FP64: [[COPY2:%[0-9]+]]:gpr32 = COPY $a3289    ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp290    ; FP64: $a0 = COPY [[COPY]]291    ; FP64: $a2 = COPY [[COPY1]]292    ; FP64: $a3 = COPY [[COPY2]]293    ; FP64: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0294    ; FP64: [[COPY3:%[0-9]+]]:fgr64 = COPY $d0295    ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp296    ; FP64: $d0 = COPY [[COPY3]]297    ; FP64: RetRA implicit $d0298    %0:gprb(s32) = COPY $a0299    %2:gprb(s32) = COPY $a2300    %3:gprb(s32) = COPY $a3301    ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp302    $a0 = COPY %0(s32)303    $a2 = COPY %2(s32)304    $a3 = COPY %3(s32)305    JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0306    %4:fprb(s64) = COPY $d0307    ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp308    $d0 = COPY %4(s64)309    RetRA implicit $d0310 311...312