brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.8 KiB · 855764a Raw
367 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+zfh,+d -run-pass=instruction-select \3# RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s4# RUN: llc -mtriple=riscv64 -mattr=+zfh,+d -run-pass=instruction-select \5# RUN:   -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s6 7---8name:            fadd_f169legalized:       true10regBankSelected: true11tracksRegLiveness: true12body:             |13  bb.0:14    liveins: $f10_h, $f11_h15 16    ; CHECK-LABEL: name: fadd_f1617    ; CHECK: liveins: $f10_h, $f11_h18    ; CHECK-NEXT: {{  $}}19    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h20    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h21    ; CHECK-NEXT: [[FADD_H:%[0-9]+]]:fpr16 = nofpexcept FADD_H [[COPY]], [[COPY1]], 722    ; CHECK-NEXT: $f10_h = COPY [[FADD_H]]23    ; CHECK-NEXT: PseudoRET implicit $f10_h24    %0:fprb(s16) = COPY $f10_h25    %1:fprb(s16) = COPY $f11_h26    %2:fprb(s16) = G_FADD %0, %127    $f10_h = COPY %2(s16)28    PseudoRET implicit $f10_h29 30...31---32name:            fsub_f1633legalized:       true34regBankSelected: true35tracksRegLiveness: true36body:             |37  bb.0:38    liveins: $f10_h, $f11_h39 40    ; CHECK-LABEL: name: fsub_f1641    ; CHECK: liveins: $f10_h, $f11_h42    ; CHECK-NEXT: {{  $}}43    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h44    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h45    ; CHECK-NEXT: [[FSUB_H:%[0-9]+]]:fpr16 = nofpexcept FSUB_H [[COPY]], [[COPY1]], 746    ; CHECK-NEXT: $f10_h = COPY [[FSUB_H]]47    ; CHECK-NEXT: PseudoRET implicit $f10_h48    %0:fprb(s16) = COPY $f10_h49    %1:fprb(s16) = COPY $f11_h50    %2:fprb(s16) = G_FSUB %0, %151    $f10_h = COPY %2(s16)52    PseudoRET implicit $f10_h53 54...55---56name:            fmul_f1657legalized:       true58regBankSelected: true59tracksRegLiveness: true60body:             |61  bb.0:62    liveins: $f10_h, $f11_h63 64    ; CHECK-LABEL: name: fmul_f1665    ; CHECK: liveins: $f10_h, $f11_h66    ; CHECK-NEXT: {{  $}}67    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h68    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h69    ; CHECK-NEXT: [[FMUL_H:%[0-9]+]]:fpr16 = nofpexcept FMUL_H [[COPY]], [[COPY1]], 770    ; CHECK-NEXT: $f10_h = COPY [[FMUL_H]]71    ; CHECK-NEXT: PseudoRET implicit $f10_h72    %0:fprb(s16) = COPY $f10_h73    %1:fprb(s16) = COPY $f11_h74    %2:fprb(s16) = G_FMUL %0, %175    $f10_h = COPY %2(s16)76    PseudoRET implicit $f10_h77 78...79---80name:            fdiv_f1681legalized:       true82regBankSelected: true83tracksRegLiveness: true84body:             |85  bb.0:86    liveins: $f10_h, $f11_h87 88    ; CHECK-LABEL: name: fdiv_f1689    ; CHECK: liveins: $f10_h, $f11_h90    ; CHECK-NEXT: {{  $}}91    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h92    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h93    ; CHECK-NEXT: [[FDIV_H:%[0-9]+]]:fpr16 = nofpexcept FDIV_H [[COPY]], [[COPY1]], 794    ; CHECK-NEXT: $f10_h = COPY [[FDIV_H]]95    ; CHECK-NEXT: PseudoRET implicit $f10_h96    %0:fprb(s16) = COPY $f10_h97    %1:fprb(s16) = COPY $f11_h98    %2:fprb(s16) = G_FDIV %0, %199    $f10_h = COPY %2(s16)100    PseudoRET implicit $f10_h101 102...103---104name:            fma_f16105legalized:       true106regBankSelected: true107tracksRegLiveness: true108body:             |109  bb.0:110    liveins: $f10_h, $f11_h, $f12_h111 112    ; CHECK-LABEL: name: fma_f16113    ; CHECK: liveins: $f10_h, $f11_h, $f12_h114    ; CHECK-NEXT: {{  $}}115    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h116    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h117    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fpr16 = COPY $f12_h118    ; CHECK-NEXT: [[FMADD_H:%[0-9]+]]:fpr16 = nofpexcept FMADD_H [[COPY]], [[COPY1]], [[COPY2]], 7119    ; CHECK-NEXT: $f10_h = COPY [[FMADD_H]]120    ; CHECK-NEXT: PseudoRET implicit $f10_h121    %0:fprb(s16) = COPY $f10_h122    %1:fprb(s16) = COPY $f11_h123    %2:fprb(s16) = COPY $f12_h124    %3:fprb(s16) = G_FMA %0, %1, %2125    $f10_h = COPY %3(s16)126    PseudoRET implicit $f10_h127 128...129---130name:            fneg_f16131legalized:       true132regBankSelected: true133tracksRegLiveness: true134body:             |135  bb.0:136    liveins: $f10_h, $f11_h, $f12_h137 138    ; CHECK-LABEL: name: fneg_f16139    ; CHECK: liveins: $f10_h, $f11_h, $f12_h140    ; CHECK-NEXT: {{  $}}141    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h142    ; CHECK-NEXT: [[FSGNJN_H:%[0-9]+]]:fpr16 = FSGNJN_H [[COPY]], [[COPY]]143    ; CHECK-NEXT: $f10_h = COPY [[FSGNJN_H]]144    ; CHECK-NEXT: PseudoRET implicit $f10_h145    %0:fprb(s16) = COPY $f10_h146    %1:fprb(s16) = G_FNEG %0147    $f10_h = COPY %1(s16)148    PseudoRET implicit $f10_h149 150...151---152name:            fabs_f16153legalized:       true154regBankSelected: true155tracksRegLiveness: true156body:             |157  bb.0:158    liveins: $f10_h, $f11_h, $f12_h159 160    ; CHECK-LABEL: name: fabs_f16161    ; CHECK: liveins: $f10_h, $f11_h, $f12_h162    ; CHECK-NEXT: {{  $}}163    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h164    ; CHECK-NEXT: [[FSGNJX_H:%[0-9]+]]:fpr16 = FSGNJX_H [[COPY]], [[COPY]]165    ; CHECK-NEXT: $f10_h = COPY [[FSGNJX_H]]166    ; CHECK-NEXT: PseudoRET implicit $f10_h167    %0:fprb(s16) = COPY $f10_h168    %1:fprb(s16) = G_FABS %0169    $f10_h = COPY %1(s16)170    PseudoRET implicit $f10_h171 172...173---174name:            fsqrt_f16175legalized:       true176regBankSelected: true177tracksRegLiveness: true178body:             |179  bb.0:180    liveins: $f10_h, $f11_h, $f12_h181 182    ; CHECK-LABEL: name: fsqrt_f16183    ; CHECK: liveins: $f10_h, $f11_h, $f12_h184    ; CHECK-NEXT: {{  $}}185    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h186    ; CHECK-NEXT: [[FSQRT_H:%[0-9]+]]:fpr16 = nofpexcept FSQRT_H [[COPY]], 7187    ; CHECK-NEXT: $f10_h = COPY [[FSQRT_H]]188    ; CHECK-NEXT: PseudoRET implicit $f10_h189    %0:fprb(s16) = COPY $f10_h190    %1:fprb(s16) = G_FSQRT %0191    $f10_h = COPY %1(s16)192    PseudoRET implicit $f10_h193 194...195---196name:            fmaxnum_f16197legalized:       true198regBankSelected: true199tracksRegLiveness: true200body:             |201  bb.0:202    liveins: $f10_h, $f11_h203 204    ; CHECK-LABEL: name: fmaxnum_f16205    ; CHECK: liveins: $f10_h, $f11_h206    ; CHECK-NEXT: {{  $}}207    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h208    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h209    ; CHECK-NEXT: [[FMAX_H:%[0-9]+]]:fpr16 = nofpexcept FMAX_H [[COPY]], [[COPY1]]210    ; CHECK-NEXT: $f10_h = COPY [[FMAX_H]]211    ; CHECK-NEXT: PseudoRET implicit $f10_h212    %0:fprb(s16) = COPY $f10_h213    %1:fprb(s16) = COPY $f11_h214    %2:fprb(s16) = G_FMAXNUM %0, %1215    $f10_h = COPY %2(s16)216    PseudoRET implicit $f10_h217 218...219---220name:            fminnum_f16221legalized:       true222regBankSelected: true223tracksRegLiveness: true224body:             |225  bb.0:226    liveins: $f10_h, $f11_h227 228    ; CHECK-LABEL: name: fminnum_f16229    ; CHECK: liveins: $f10_h, $f11_h230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h232    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h233    ; CHECK-NEXT: [[FMIN_H:%[0-9]+]]:fpr16 = nofpexcept FMIN_H [[COPY]], [[COPY1]]234    ; CHECK-NEXT: $f10_h = COPY [[FMIN_H]]235    ; CHECK-NEXT: PseudoRET implicit $f10_h236    %0:fprb(s16) = COPY $f10_h237    %1:fprb(s16) = COPY $f11_h238    %2:fprb(s16) = G_FMINNUM %0, %1239    $f10_h = COPY %2(s16)240    PseudoRET implicit $f10_h241 242...243---244name:            fcopysign_f16_f16245legalized:       true246regBankSelected: true247tracksRegLiveness: true248body:             |249  bb.0:250    liveins: $f10_h, $f11_h251 252    ; CHECK-LABEL: name: fcopysign_f16_f16253    ; CHECK: liveins: $f10_h, $f11_h254    ; CHECK-NEXT: {{  $}}255    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h256    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h257    ; CHECK-NEXT: [[FSGNJ_H:%[0-9]+]]:fpr16 = FSGNJ_H [[COPY]], [[COPY1]]258    ; CHECK-NEXT: $f10_h = COPY [[FSGNJ_H]]259    ; CHECK-NEXT: PseudoRET implicit $f10_h260    %0:fprb(s16) = COPY $f10_h261    %1:fprb(s16) = COPY $f11_h262    %2:fprb(s16) = G_FCOPYSIGN %0, %1263    $f10_h = COPY %2(s16)264    PseudoRET implicit $f10_h265 266...267---268name:            fcopysign_f16_f32269legalized:       true270regBankSelected: true271tracksRegLiveness: true272body:             |273  bb.0:274    liveins: $f10_h, $f11_f275 276    ; CHECK-LABEL: name: fcopysign_f16_f32277    ; CHECK: liveins: $f10_h, $f11_f278    ; CHECK-NEXT: {{  $}}279    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h280    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY $f11_f281    ; CHECK-NEXT: [[FCVT_H_S:%[0-9]+]]:fpr16 = nofpexcept FCVT_H_S [[COPY1]], 7282    ; CHECK-NEXT: [[FSGNJ_H:%[0-9]+]]:fpr16 = FSGNJ_H [[COPY]], [[FCVT_H_S]]283    ; CHECK-NEXT: $f10_h = COPY [[FSGNJ_H]]284    ; CHECK-NEXT: PseudoRET implicit $f10_h285    %0:fprb(s16) = COPY $f10_h286    %1:fprb(s32) = COPY $f11_f287    %2:fprb(s16) = G_FCOPYSIGN %0, %1288    $f10_h = COPY %2(s16)289    PseudoRET implicit $f10_h290 291...292---293name:            fcopysign_f32_f16294legalized:       true295regBankSelected: true296tracksRegLiveness: true297body:             |298  bb.0:299    liveins: $f10_f, $f11_h300 301    ; CHECK-LABEL: name: fcopysign_f32_f16302    ; CHECK: liveins: $f10_f, $f11_h303    ; CHECK-NEXT: {{  $}}304    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr32 = COPY $f10_f305    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h306    ; CHECK-NEXT: [[FCVT_S_H:%[0-9]+]]:fpr32 = nofpexcept FCVT_S_H [[COPY1]], 0307    ; CHECK-NEXT: [[FSGNJ_S:%[0-9]+]]:fpr32 = FSGNJ_S [[COPY]], [[FCVT_S_H]]308    ; CHECK-NEXT: $f10_f = COPY [[FSGNJ_S]]309    ; CHECK-NEXT: PseudoRET implicit $f10_f310    %0:fprb(s32) = COPY $f10_f311    %1:fprb(s16) = COPY $f11_h312    %2:fprb(s32) = G_FCOPYSIGN %0, %1313    $f10_f = COPY %2(s32)314    PseudoRET implicit $f10_f315 316...317---318name:            fcopysign_f16_f64319legalized:       true320regBankSelected: true321tracksRegLiveness: true322body:             |323  bb.0:324    liveins: $f10_h, $f11_d325 326    ; CHECK-LABEL: name: fcopysign_f16_f64327    ; CHECK: liveins: $f10_h, $f11_d328    ; CHECK-NEXT: {{  $}}329    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr16 = COPY $f10_h330    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $f11_d331    ; CHECK-NEXT: [[FCVT_H_D:%[0-9]+]]:fpr16 = nofpexcept FCVT_H_D [[COPY1]], 7332    ; CHECK-NEXT: [[FSGNJ_H:%[0-9]+]]:fpr16 = FSGNJ_H [[COPY]], [[FCVT_H_D]]333    ; CHECK-NEXT: $f10_h = COPY [[FSGNJ_H]]334    ; CHECK-NEXT: PseudoRET implicit $f10_h335    %0:fprb(s16) = COPY $f10_h336    %1:fprb(s64) = COPY $f11_d337    %2:fprb(s16) = G_FCOPYSIGN %0, %1338    $f10_h = COPY %2(s16)339    PseudoRET implicit $f10_h340 341...342---343name:            fcopysign_f64_f16344legalized:       true345regBankSelected: true346tracksRegLiveness: true347body:             |348  bb.0:349    liveins: $f10_d, $f11_h350 351    ; CHECK-LABEL: name: fcopysign_f64_f16352    ; CHECK: liveins: $f10_d, $f11_h353    ; CHECK-NEXT: {{  $}}354    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $f10_d355    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY $f11_h356    ; CHECK-NEXT: [[FCVT_D_H:%[0-9]+]]:fpr64 = nofpexcept FCVT_D_H [[COPY1]], 0357    ; CHECK-NEXT: [[FSGNJ_D:%[0-9]+]]:fpr64 = FSGNJ_D [[COPY]], [[FCVT_D_H]]358    ; CHECK-NEXT: $f10_d = COPY [[FSGNJ_D]]359    ; CHECK-NEXT: PseudoRET implicit $f10_d360    %0:fprb(s64) = COPY $f10_d361    %1:fprb(s16) = COPY $f11_h362    %2:fprb(s64) = G_FCOPYSIGN %0, %1363    $f10_d = COPY %2(s64)364    PseudoRET implicit $f10_d365 366...367