brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · b4ea926 Raw
270 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=riscv64 -mattr='+d,+zfa,+v,+xtheadmempair' -verify-machineinstrs -run-pass=riscv-opt-w-instrs %s -o - | FileCheck %s3 4---5name:            fcvtmod_w_d6tracksRegLiveness: true7body:             |8  bb.0.entry:9    liveins: $x1010 11    ; CHECK-LABEL: name: fcvtmod_w_d12    ; CHECK: liveins: $x1013    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $x1015    ; CHECK-NEXT: [[FCVTMOD_W_D:%[0-9]+]]:gpr = nofpexcept FCVTMOD_W_D [[COPY]], 116    ; CHECK-NEXT: $x10 = COPY [[FCVTMOD_W_D]]17    ; CHECK-NEXT: PseudoRET18    %0:fpr64 = COPY $x1019 20    %1:gpr = nofpexcept FCVTMOD_W_D %0, 121    %2:gpr = ADDIW %1, 022    $x10 = COPY %223    PseudoRET24...25 26---27name:            physreg28tracksRegLiveness: true29body:             |30  bb.0.entry:31    liveins: $x10, $x1132 33    ; CHECK-LABEL: name: physreg34    ; CHECK: liveins: $x10, $x1135    ; CHECK-NEXT: {{  $}}36    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1037    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 038    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]39    ; CHECK-NEXT: PseudoRET40    %0:gpr = COPY $x1041    %1:gpr = ADDIW %0, 042    $x10 = COPY %143    PseudoRET44...45---46 name:            vfirst47 tracksRegLiveness: true48 body:             |49   bb.0.entry:50     liveins: $x10, $v851 52    ; CHECK-LABEL: name: vfirst53    ; CHECK: liveins: $x10, $v854    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v856    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x1057    ; CHECK-NEXT: [[PseudoVFIRST_M_B1_:%[0-9]+]]:gpr = PseudoVFIRST_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */58    ; CHECK-NEXT: $x11 = COPY [[PseudoVFIRST_M_B1_]]59    ; CHECK-NEXT: PseudoRET60     %0:vr = COPY $v861     %1:gprnox0 = COPY $x1062 63     %2:gpr = PseudoVFIRST_M_B1 %0:vr, %1:gprnox0, 064     %3:gpr = ADDIW %2, 065     $x11 = COPY %366     PseudoRET67...68---69 name:            vcpop70 tracksRegLiveness: true71 body:             |72   bb.0.entry:73     liveins: $x10, $v874 75    ; CHECK-LABEL: name: vcpop76    ; CHECK: liveins: $x10, $v877    ; CHECK-NEXT: {{  $}}78    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v879    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x1080    ; CHECK-NEXT: [[PseudoVCPOP_M_B1_:%[0-9]+]]:gpr = PseudoVCPOP_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */81    ; CHECK-NEXT: $x11 = COPY [[PseudoVCPOP_M_B1_]]82    ; CHECK-NEXT: PseudoRET83     %0:vr = COPY $v884     %1:gprnox0 = COPY $x1085 86     %2:gpr = PseudoVCPOP_M_B1 %0:vr, %1:gprnox0, 087     %3:gpr = ADDIW %2, 088     $x11 = COPY %389     PseudoRET90...91---92 name:            th_lwd93 tracksRegLiveness: true94 body:             |95   bb.0.entry:96     liveins: $x1097    ; CHECK-LABEL: name: th_lwd98    ; CHECK: liveins: $x1099    ; CHECK-NEXT: {{  $}}100    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10101    ; CHECK-NEXT: early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD [[COPY]], 2, 3102    ; CHECK-NEXT: $x10 = COPY %1103    ; CHECK-NEXT: $x11 = COPY %2104    ; CHECK-NEXT: PseudoRET105     %0:gpr = COPY $x10106     early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD %0, 2, 3107     %3:gpr = ADDIW %1, 0108     %4:gpr = ADDIW %2, 0109     $x10 = COPY %3110     $x11 = COPY %4111     PseudoRET112...113---114name:            movgprnox0_1115tracksRegLiveness: true116body:             |117  bb.0:118    liveins: $x10, $x11, $x12, $x13119    ; CHECK-LABEL: name: movgprnox0_1120    ; CHECK: liveins: $x10, $x11, $x12, $x13121    ; CHECK-NEXT: {{  $}}122    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10123    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11124    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gprnox0 = COPY $x12125    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gprnox0 = COPY $x13126    ; CHECK-NEXT: [[PseudoCCMOVGPRNoX0_:%[0-9]+]]:gprnox0 = PseudoCCMOVGPRNoX0 [[COPY]], [[COPY1]], 1, [[COPY2]], [[COPY3]]127    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[PseudoCCMOVGPRNoX0_]], 0128    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]129    ; CHECK-NEXT: PseudoRET implicit $x10130    %0:gpr = COPY $x10131    %1:gpr = COPY $x11132    %2:gpr = COPY $x12133    %3:gpr = COPY $x13134    %4:gprnox0 = ADDIW %2, 0135    %5:gprnox0 = ADDIW %3, 0136    %6:gprnox0 = PseudoCCMOVGPRNoX0 %0, %1, 1, %4, %5137    %7:gpr = ADDIW %6, 0138    $x10 = COPY %7139    PseudoRET implicit $x10140 141...142---143name:            movgprnox0_2144tracksRegLiveness: true145body:             |146  bb.0:147    liveins: $x10, $x11, $x12, $x13148    ; CHECK-LABEL: name: movgprnox0_2149    ; CHECK: liveins: $x10, $x11, $x12, $x13150    ; CHECK-NEXT: {{  $}}151    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10152    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11153    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x12154    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr = COPY $x13155    ; CHECK-NEXT: [[SRAIW:%[0-9]+]]:gprnox0 = SRAIW [[COPY2]], 0156    ; CHECK-NEXT: [[SRAIW1:%[0-9]+]]:gprnox0 = SRAIW [[COPY3]], 0157    ; CHECK-NEXT: [[PseudoCCMOVGPRNoX0_:%[0-9]+]]:gprnox0 = PseudoCCMOVGPRNoX0 [[COPY]], [[COPY1]], 1, [[SRAIW]], [[SRAIW1]]158    ; CHECK-NEXT: $x10 = COPY [[PseudoCCMOVGPRNoX0_]]159    ; CHECK-NEXT: PseudoRET implicit $x10160    %0:gpr = COPY $x10161    %1:gpr = COPY $x11162    %2:gpr = COPY $x12163    %3:gpr = COPY $x13164    %4:gprnox0 = SRAIW %2, 0165    %5:gprnox0 = SRAIW %3, 0166    %6:gprnox0 = PseudoCCMOVGPRNoX0 %0, %1, 1, %4, %5167    %7:gpr = ADDIW %6, 0168    $x10 = COPY %7169    PseudoRET implicit $x10170 171...172---173name:            lui_addi_1174tracksRegLiveness: true175body:             |176  ; CHECK-LABEL: name: lui_addi_1177  ; CHECK: bb.0:178  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)179  ; CHECK-NEXT:   liveins: $x10180  ; CHECK-NEXT: {{  $}}181  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr = COPY $x10182  ; CHECK-NEXT:   [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 0183  ; CHECK-NEXT:   [[LUI:%[0-9]+]]:gpr = LUI 11184  ; CHECK-NEXT:   [[ADDI:%[0-9]+]]:gpr = ADDI killed [[LUI]], -1756185  ; CHECK-NEXT:   BEQ killed [[ADDIW]], [[ADDI]], %bb.2186  ; CHECK-NEXT:   PseudoBR %bb.1187  ; CHECK-NEXT: {{  $}}188  ; CHECK-NEXT: bb.1:189  ; CHECK-NEXT:   successors: %bb.2(0x80000000)190  ; CHECK-NEXT: {{  $}}191  ; CHECK-NEXT:   [[LW:%[0-9]+]]:gpr = LW $x0, 0192  ; CHECK-NEXT: {{  $}}193  ; CHECK-NEXT: bb.2:194  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:gpr = PHI [[ADDI]], %bb.0, [[LW]], %bb.1195  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gprtc = COPY $x0196  ; CHECK-NEXT:   $x10 = COPY [[COPY1]]197  ; CHECK-NEXT:   $x11 = COPY [[PHI]]198  ; CHECK-NEXT:   PseudoTAILIndirect [[COPY1]], csr_ilp32_lp64, implicit $x2, implicit $x10, implicit $x11199  bb.0:200    liveins: $x10201 202    %2:gpr = COPY $x10203    %4:gpr = ADDIW %2, 0204    %5:gpr = LUI 11205    %3:gpr = ADDI killed %5, -1756206    BEQ killed %4, %3, %bb.2207    PseudoBR %bb.1208 209  bb.1:210    %0:gpr = LW $x0, 0211 212  bb.2:213    %1:gpr = PHI %3, %bb.0, %0, %bb.1214    %6:gpr = ADDIW %1, 0215    %7:gprtc = COPY $x0216    $x10 = COPY %7217    $x11 = COPY %6218    PseudoTAILIndirect %7, csr_ilp32_lp64, implicit $x2, implicit $x10, implicit $x11219...220---221# The sext.w was erroneously removed in an earlier broken version of the patch222# for RISCVOptWInstrs that added lui/addi handling.223name:            lui_addi_2224tracksRegLiveness: true225body:             |226  ; CHECK-LABEL: name: lui_addi_2227  ; CHECK: bb.0.entry:228  ; CHECK-NEXT:   successors: %bb.1(0x80000000)229  ; CHECK-NEXT: {{  $}}230  ; CHECK-NEXT:   [[LUI:%[0-9]+]]:gpr = LUI 524289231  ; CHECK-NEXT:   [[ADDI:%[0-9]+]]:gpr = ADDI [[LUI]], -2048232  ; CHECK-NEXT: {{  $}}233  ; CHECK-NEXT: bb.1:234  ; CHECK-NEXT:   [[LWU:%[0-9]+]]:gpr = LWU $x0, 0 :: (load (s32) from `ptr null`)235  ; CHECK-NEXT:   [[AND:%[0-9]+]]:gpr = AND [[LWU]], [[ADDI]]236  ; CHECK-NEXT:   [[ADDIW:%[0-9]+]]:gpr = ADDIW killed [[AND]], 0237  ; CHECK-NEXT:   $x10 = COPY [[ADDIW]]238  ; CHECK-NEXT:   PseudoRET implicit $x10239  ; CHECK-NEXT: {{  $}}240  ; CHECK-NEXT: bb.2:241  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2242  ; CHECK-NEXT:   $x10 = COPY [[ADDIW]]243  ; CHECK-NEXT:   %call_target_dummy:gprjalr = COPY $x0244  ; CHECK-NEXT:   PseudoCALLIndirect %call_target_dummy, csr_ilp32_lp64, implicit-def $x1, implicit $x10245  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2246  ; CHECK-NEXT:   $x10 = COPY [[LWU]]247  ; CHECK-NEXT:   PseudoRET implicit $x10248  bb.0.entry:249    %13:gpr = LUI 524289250    %14:gpr = ADDI %13, -2048251 252  bb.1:253    %1:gpr = LWU $x0, 0 :: (load (s32) from `ptr null`)254    %15:gpr = AND %1, %14255    %16:gpr = ADDIW killed %15, 0256 257    $x10 = COPY %16258    PseudoRET implicit $x10259 260  bb.2:261    ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2262    $x10 = COPY %16263    %call_target_dummy:gprjalr = COPY $x0264    PseudoCALLIndirect %call_target_dummy, csr_ilp32_lp64, implicit-def $x1, implicit $x10265    ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2266 267    $x10 = COPY %1268    PseudoRET implicit $x10269...270