brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.1 KiB · 9410488 Raw
354 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX7 %s3# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s4# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s5# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX11 %s6 7---8 9name: load_local_v4s32_align1610legalized:       true11regBankSelected: true12tracksRegLiveness: true13 14body: |15  bb.0:16    liveins:  $vgpr017 18    ; GFX7-LABEL: name: load_local_v4s32_align1619    ; GFX7: liveins: $vgpr020    ; GFX7-NEXT: {{  $}}21    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr022    ; GFX7-NEXT: $m0 = S_MOV_B32 -123    ; GFX7-NEXT: [[DS_READ_B128_:%[0-9]+]]:vreg_128 = DS_READ_B128 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<4 x s32>), addrspace 3)24    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ_B128_]]25    ; GFX9-LABEL: name: load_local_v4s32_align1626    ; GFX9: liveins: $vgpr027    ; GFX9-NEXT: {{  $}}28    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr029    ; GFX9-NEXT: [[DS_READ_B128_gfx9_:%[0-9]+]]:vreg_128 = DS_READ_B128_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<4 x s32>), addrspace 3)30    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ_B128_gfx9_]]31    ; GFX10-LABEL: name: load_local_v4s32_align1632    ; GFX10: liveins: $vgpr033    ; GFX10-NEXT: {{  $}}34    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr035    ; GFX10-NEXT: [[DS_READ_B128_gfx9_:%[0-9]+]]:vreg_128 = DS_READ_B128_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<4 x s32>), addrspace 3)36    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ_B128_gfx9_]]37    ; GFX11-LABEL: name: load_local_v4s32_align1638    ; GFX11: liveins: $vgpr039    ; GFX11-NEXT: {{  $}}40    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr041    ; GFX11-NEXT: [[DS_READ_B128_gfx9_:%[0-9]+]]:vreg_128 = DS_READ_B128_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<4 x s32>), addrspace 3)42    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ_B128_gfx9_]]43    %0:vgpr(p3) = COPY $vgpr044    %1:vgpr(<4 x s32>) = G_LOAD %0 :: (load (<4 x s32>), align 16, addrspace 3)45    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %146 47...48 49---50 51name: load_local_v4s32_align_852legalized:       true53regBankSelected: true54tracksRegLiveness: true55 56body: |57  bb.0:58    liveins:  $vgpr059 60    ; GFX7-LABEL: name: load_local_v4s32_align_861    ; GFX7: liveins: $vgpr062    ; GFX7-NEXT: {{  $}}63    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr064    ; GFX7-NEXT: $m0 = S_MOV_B32 -165    ; GFX7-NEXT: [[DS_READ2_B64_:%[0-9]+]]:vreg_128 = DS_READ2_B64 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)66    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_]]67    ; GFX9-LABEL: name: load_local_v4s32_align_868    ; GFX9: liveins: $vgpr069    ; GFX9-NEXT: {{  $}}70    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr071    ; GFX9-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)72    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]73    ; GFX10-LABEL: name: load_local_v4s32_align_874    ; GFX10: liveins: $vgpr075    ; GFX10-NEXT: {{  $}}76    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr077    ; GFX10-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)78    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]79    ; GFX11-LABEL: name: load_local_v4s32_align_880    ; GFX11: liveins: $vgpr081    ; GFX11-NEXT: {{  $}}82    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr083    ; GFX11-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)84    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]85    %0:vgpr(p3) = COPY $vgpr086    %1:vgpr(<4 x s32>) = G_LOAD %0 :: (load (<4 x s32>), align 8, addrspace 3)87    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %188 89...90 91---92 93name: load_local_v4s32_align_8_offset_16094legalized:       true95regBankSelected: true96tracksRegLiveness: true97 98body: |99  bb.0:100    liveins:  $vgpr0101 102    ; GFX7-LABEL: name: load_local_v4s32_align_8_offset_160103    ; GFX7: liveins: $vgpr0104    ; GFX7-NEXT: {{  $}}105    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0106    ; GFX7-NEXT: $m0 = S_MOV_B32 -1107    ; GFX7-NEXT: [[DS_READ2_B64_:%[0-9]+]]:vreg_128 = DS_READ2_B64 [[COPY]], 50, 51, 0, implicit $m0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)108    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_]]109    ; GFX9-LABEL: name: load_local_v4s32_align_8_offset_160110    ; GFX9: liveins: $vgpr0111    ; GFX9-NEXT: {{  $}}112    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0113    ; GFX9-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 50, 51, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)114    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]115    ; GFX10-LABEL: name: load_local_v4s32_align_8_offset_160116    ; GFX10: liveins: $vgpr0117    ; GFX10-NEXT: {{  $}}118    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0119    ; GFX10-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 50, 51, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)120    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]121    ; GFX11-LABEL: name: load_local_v4s32_align_8_offset_160122    ; GFX11: liveins: $vgpr0123    ; GFX11-NEXT: {{  $}}124    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0125    ; GFX11-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 50, 51, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)126    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]127    %0:vgpr(p3) = COPY $vgpr0128    %1:vgpr(s32) = G_CONSTANT i32 400129    %2:vgpr(p3) = G_PTR_ADD %0, %1130    %3:vgpr(<4 x s32>) = G_LOAD %2 :: (load (<4 x s32>), align 8, addrspace 3)131    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %3132 133...134 135---136 137name: load_local_v4s32_align_8_offset_320138legalized:       true139regBankSelected: true140tracksRegLiveness: true141 142body: |143  bb.0:144    liveins:  $vgpr0145 146    ; GFX7-LABEL: name: load_local_v4s32_align_8_offset_320147    ; GFX7: liveins: $vgpr0148    ; GFX7-NEXT: {{  $}}149    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0150    ; GFX7-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4000, implicit $exec151    ; GFX7-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec152    ; GFX7-NEXT: $m0 = S_MOV_B32 -1153    ; GFX7-NEXT: [[DS_READ2_B64_:%[0-9]+]]:vreg_128 = DS_READ2_B64 [[V_ADD_CO_U32_e64_]], 0, 1, 0, implicit $m0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)154    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_]]155    ; GFX9-LABEL: name: load_local_v4s32_align_8_offset_320156    ; GFX9: liveins: $vgpr0157    ; GFX9-NEXT: {{  $}}158    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0159    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4000, implicit $exec160    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec161    ; GFX9-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[V_ADD_U32_e64_]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)162    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]163    ; GFX10-LABEL: name: load_local_v4s32_align_8_offset_320164    ; GFX10: liveins: $vgpr0165    ; GFX10-NEXT: {{  $}}166    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0167    ; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4000, implicit $exec168    ; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec169    ; GFX10-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[V_ADD_U32_e64_]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)170    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]171    ; GFX11-LABEL: name: load_local_v4s32_align_8_offset_320172    ; GFX11: liveins: $vgpr0173    ; GFX11-NEXT: {{  $}}174    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0175    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4000, implicit $exec176    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec177    ; GFX11-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[V_ADD_U32_e64_]], 0, 1, 0, implicit $exec :: (load (<4 x s32>), align 8, addrspace 3)178    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]179    %0:vgpr(p3) = COPY $vgpr0180    %1:vgpr(s32) = G_CONSTANT i32 4000181    %2:vgpr(p3) = G_PTR_ADD %0, %1182    %3:vgpr(<4 x s32>) = G_LOAD %2 :: (load (<4 x s32>), align 8, addrspace 3)183    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %3184 185...186 187---188 189name: load_local_v2s64190legalized:       true191regBankSelected: true192tracksRegLiveness: true193 194body: |195  bb.0:196    liveins:  $vgpr0197 198    ; GFX7-LABEL: name: load_local_v2s64199    ; GFX7: liveins: $vgpr0200    ; GFX7-NEXT: {{  $}}201    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0202    ; GFX7-NEXT: $m0 = S_MOV_B32 -1203    ; GFX7-NEXT: [[DS_READ2_B64_:%[0-9]+]]:vreg_128 = DS_READ2_B64 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (<2 x s64>), align 8, addrspace 3)204    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_]]205    ; GFX9-LABEL: name: load_local_v2s64206    ; GFX9: liveins: $vgpr0207    ; GFX9-NEXT: {{  $}}208    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0209    ; GFX9-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<2 x s64>), align 8, addrspace 3)210    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]211    ; GFX10-LABEL: name: load_local_v2s64212    ; GFX10: liveins: $vgpr0213    ; GFX10-NEXT: {{  $}}214    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0215    ; GFX10-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<2 x s64>), align 8, addrspace 3)216    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]217    ; GFX11-LABEL: name: load_local_v2s64218    ; GFX11: liveins: $vgpr0219    ; GFX11-NEXT: {{  $}}220    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0221    ; GFX11-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<2 x s64>), align 8, addrspace 3)222    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]223    %0:vgpr(p3) = COPY $vgpr0224    %1:vgpr(<2 x s64>) = G_LOAD %0 :: (load (<2 x s64>), align 8, addrspace 3)225    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1226 227...228 229---230 231name: load_local_v2p1232legalized:       true233regBankSelected: true234tracksRegLiveness: true235 236body: |237  bb.0:238    liveins:  $vgpr0239 240    ; GFX7-LABEL: name: load_local_v2p1241    ; GFX7: liveins: $vgpr0242    ; GFX7-NEXT: {{  $}}243    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0244    ; GFX7-NEXT: $m0 = S_MOV_B32 -1245    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_128(<2 x p1>) = G_LOAD [[COPY]](p3) :: (load (<2 x p1>), align 8, addrspace 3)246    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](<2 x p1>)247    ; GFX9-LABEL: name: load_local_v2p1248    ; GFX9: liveins: $vgpr0249    ; GFX9-NEXT: {{  $}}250    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0251    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_128(<2 x p1>) = G_LOAD [[COPY]](p3) :: (load (<2 x p1>), align 8, addrspace 3)252    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](<2 x p1>)253    ; GFX10-LABEL: name: load_local_v2p1254    ; GFX10: liveins: $vgpr0255    ; GFX10-NEXT: {{  $}}256    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0257    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vreg_128(<2 x p1>) = G_LOAD [[COPY]](p3) :: (load (<2 x p1>), align 8, addrspace 3)258    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](<2 x p1>)259    ; GFX11-LABEL: name: load_local_v2p1260    ; GFX11: liveins: $vgpr0261    ; GFX11-NEXT: {{  $}}262    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0263    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:vreg_128(<2 x p1>) = G_LOAD [[COPY]](p3) :: (load (<2 x p1>), align 8, addrspace 3)264    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](<2 x p1>)265    %0:vgpr(p3) = COPY $vgpr0266    %1:vgpr(<2 x p1>) = G_LOAD %0 :: (load (<2 x p1>), align 8, addrspace 3)267    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1268 269...270 271---272 273name: load_local_s128274legalized:       true275regBankSelected: true276tracksRegLiveness: true277 278body: |279  bb.0:280    liveins:  $vgpr0281 282    ; GFX7-LABEL: name: load_local_s128283    ; GFX7: liveins: $vgpr0284    ; GFX7-NEXT: {{  $}}285    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0286    ; GFX7-NEXT: $m0 = S_MOV_B32 -1287    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_128(s128) = G_LOAD [[COPY]](p3) :: (load (s128), align 8, addrspace 3)288    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)289    ; GFX9-LABEL: name: load_local_s128290    ; GFX9: liveins: $vgpr0291    ; GFX9-NEXT: {{  $}}292    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0293    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_128(s128) = G_LOAD [[COPY]](p3) :: (load (s128), align 8, addrspace 3)294    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)295    ; GFX10-LABEL: name: load_local_s128296    ; GFX10: liveins: $vgpr0297    ; GFX10-NEXT: {{  $}}298    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0299    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vreg_128(s128) = G_LOAD [[COPY]](p3) :: (load (s128), align 8, addrspace 3)300    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)301    ; GFX11-LABEL: name: load_local_s128302    ; GFX11: liveins: $vgpr0303    ; GFX11-NEXT: {{  $}}304    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0305    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:vreg_128(s128) = G_LOAD [[COPY]](p3) :: (load (s128), align 8, addrspace 3)306    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)307    %0:vgpr(p3) = COPY $vgpr0308    %1:vgpr(s128) = G_LOAD %0 :: (load (s128), align 8, addrspace 3)309    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1310 311...312 313---314 315name: load_local_v8s16316legalized:       true317regBankSelected: true318tracksRegLiveness: true319 320body: |321  bb.0:322    liveins:  $vgpr0323 324    ; GFX7-LABEL: name: load_local_v8s16325    ; GFX7: liveins: $vgpr0326    ; GFX7-NEXT: {{  $}}327    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0328    ; GFX7-NEXT: $m0 = S_MOV_B32 -1329    ; GFX7-NEXT: [[DS_READ2_B64_:%[0-9]+]]:vreg_128 = DS_READ2_B64 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (<8 x s16>), align 8, addrspace 3)330    ; GFX7-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_]]331    ; GFX9-LABEL: name: load_local_v8s16332    ; GFX9: liveins: $vgpr0333    ; GFX9-NEXT: {{  $}}334    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0335    ; GFX9-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<8 x s16>), align 8, addrspace 3)336    ; GFX9-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]337    ; GFX10-LABEL: name: load_local_v8s16338    ; GFX10: liveins: $vgpr0339    ; GFX10-NEXT: {{  $}}340    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0341    ; GFX10-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<8 x s16>), align 8, addrspace 3)342    ; GFX10-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]343    ; GFX11-LABEL: name: load_local_v8s16344    ; GFX11: liveins: $vgpr0345    ; GFX11-NEXT: {{  $}}346    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0347    ; GFX11-NEXT: [[DS_READ2_B64_gfx9_:%[0-9]+]]:vreg_128 = DS_READ2_B64_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<8 x s16>), align 8, addrspace 3)348    ; GFX11-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[DS_READ2_B64_gfx9_]]349    %0:vgpr(p3) = COPY $vgpr0350    %1:vgpr(<8 x s16>) = G_LOAD %0 :: (load (<8 x s16>), align 8, addrspace 3)351    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1352 353...354