brintos

brintos / llvm-project-archived public Read only

0
0
Text · 68.8 KiB · ada80da Raw
1547 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=tahiti -run-pass=instruction-select -verify-machineinstrs  -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX6 %s3# 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 %s4# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX8 %s5# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s6# 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 %s7 8---9 10name: load_constant_s32_from_411legalized:       true12regBankSelected: true13tracksRegLiveness: true14 15 16body: |17  bb.0:18    liveins:  $sgpr0_sgpr119 20    ; GFX6-LABEL: name: load_constant_s32_from_421    ; GFX6: liveins: $sgpr0_sgpr122    ; GFX6-NEXT: {{  $}}23    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr124    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)25    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]26    ;27    ; GFX7-LABEL: name: load_constant_s32_from_428    ; GFX7: liveins: $sgpr0_sgpr129    ; GFX7-NEXT: {{  $}}30    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr131    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)32    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]33    ;34    ; GFX8-LABEL: name: load_constant_s32_from_435    ; GFX8: liveins: $sgpr0_sgpr136    ; GFX8-NEXT: {{  $}}37    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr138    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)39    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]40    ;41    ; GFX10-LABEL: name: load_constant_s32_from_442    ; GFX10: liveins: $sgpr0_sgpr143    ; GFX10-NEXT: {{  $}}44    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr145    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)46    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]47    ;48    ; GFX11-LABEL: name: load_constant_s32_from_449    ; GFX11: liveins: $sgpr0_sgpr150    ; GFX11-NEXT: {{  $}}51    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr152    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)53    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]54    %0:sgpr(p4) = COPY $sgpr0_sgpr155    %1:sgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 4)56    $sgpr0 = COPY %157 58...59 60---61 62name: load_constant_v2s16_from_463legalized:       true64regBankSelected: true65tracksRegLiveness: true66 67 68body: |69  bb.0:70    liveins:  $sgpr0_sgpr171 72    ; GFX6-LABEL: name: load_constant_v2s16_from_473    ; GFX6: liveins: $sgpr0_sgpr174    ; GFX6-NEXT: {{  $}}75    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr176    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)77    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]78    ;79    ; GFX7-LABEL: name: load_constant_v2s16_from_480    ; GFX7: liveins: $sgpr0_sgpr181    ; GFX7-NEXT: {{  $}}82    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr183    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)84    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]85    ;86    ; GFX8-LABEL: name: load_constant_v2s16_from_487    ; GFX8: liveins: $sgpr0_sgpr188    ; GFX8-NEXT: {{  $}}89    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr190    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)91    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]92    ;93    ; GFX10-LABEL: name: load_constant_v2s16_from_494    ; GFX10: liveins: $sgpr0_sgpr195    ; GFX10-NEXT: {{  $}}96    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr197    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)98    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]99    ;100    ; GFX11-LABEL: name: load_constant_v2s16_from_4101    ; GFX11: liveins: $sgpr0_sgpr1102    ; GFX11-NEXT: {{  $}}103    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1104    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)105    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]106    %0:sgpr(p4) = COPY $sgpr0_sgpr1107    %1:sgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 4)108    $sgpr0 = COPY %1109 110...111 112 113---114name: load_constant_v2s32115legalized:       true116regBankSelected: true117tracksRegLiveness: true118 119body: |120  bb.0:121    liveins:  $sgpr0_sgpr1122 123    ; GFX6-LABEL: name: load_constant_v2s32124    ; GFX6: liveins: $sgpr0_sgpr1125    ; GFX6-NEXT: {{  $}}126    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1127    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)128    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]129    ;130    ; GFX7-LABEL: name: load_constant_v2s32131    ; GFX7: liveins: $sgpr0_sgpr1132    ; GFX7-NEXT: {{  $}}133    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1134    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)135    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]136    ;137    ; GFX8-LABEL: name: load_constant_v2s32138    ; GFX8: liveins: $sgpr0_sgpr1139    ; GFX8-NEXT: {{  $}}140    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1141    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)142    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]143    ;144    ; GFX10-LABEL: name: load_constant_v2s32145    ; GFX10: liveins: $sgpr0_sgpr1146    ; GFX10-NEXT: {{  $}}147    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1148    ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)149    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]150    ;151    ; GFX11-LABEL: name: load_constant_v2s32152    ; GFX11: liveins: $sgpr0_sgpr1153    ; GFX11-NEXT: {{  $}}154    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1155    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)156    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]157    %0:sgpr(p4) = COPY $sgpr0_sgpr1158    %1:sgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 8, addrspace 4)159    $sgpr0_sgpr1 = COPY %1160 161...162 163---164name: load_constant_v2s32_align4165legalized:       true166regBankSelected: true167tracksRegLiveness: true168 169body: |170  bb.0:171    liveins:  $sgpr0_sgpr1172 173    ; GFX6-LABEL: name: load_constant_v2s32_align4174    ; GFX6: liveins: $sgpr0_sgpr1175    ; GFX6-NEXT: {{  $}}176    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1177    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)178    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]179    ;180    ; GFX7-LABEL: name: load_constant_v2s32_align4181    ; GFX7: liveins: $sgpr0_sgpr1182    ; GFX7-NEXT: {{  $}}183    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1184    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)185    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]186    ;187    ; GFX8-LABEL: name: load_constant_v2s32_align4188    ; GFX8: liveins: $sgpr0_sgpr1189    ; GFX8-NEXT: {{  $}}190    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1191    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)192    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]193    ;194    ; GFX10-LABEL: name: load_constant_v2s32_align4195    ; GFX10: liveins: $sgpr0_sgpr1196    ; GFX10-NEXT: {{  $}}197    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1198    ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)199    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1200    ;201    ; GFX11-LABEL: name: load_constant_v2s32_align4202    ; GFX11: liveins: $sgpr0_sgpr1203    ; GFX11-NEXT: {{  $}}204    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1205    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)206    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]207    %0:sgpr(p4) = COPY $sgpr0_sgpr1208    %1:sgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 4, addrspace 4)209    $sgpr0_sgpr1 = COPY %1210 211...212 213---214name: load_constant_v4s16_align4215legalized:       true216regBankSelected: true217tracksRegLiveness: true218 219body: |220  bb.0:221    liveins:  $sgpr0_sgpr1222 223    ; GFX6-LABEL: name: load_constant_v4s16_align4224    ; GFX6: liveins: $sgpr0_sgpr1225    ; GFX6-NEXT: {{  $}}226    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1227    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)228    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]229    ;230    ; GFX7-LABEL: name: load_constant_v4s16_align4231    ; GFX7: liveins: $sgpr0_sgpr1232    ; GFX7-NEXT: {{  $}}233    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1234    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)235    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]236    ;237    ; GFX8-LABEL: name: load_constant_v4s16_align4238    ; GFX8: liveins: $sgpr0_sgpr1239    ; GFX8-NEXT: {{  $}}240    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1241    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)242    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]243    ;244    ; GFX10-LABEL: name: load_constant_v4s16_align4245    ; GFX10: liveins: $sgpr0_sgpr1246    ; GFX10-NEXT: {{  $}}247    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1248    ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)249    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1250    ;251    ; GFX11-LABEL: name: load_constant_v4s16_align4252    ; GFX11: liveins: $sgpr0_sgpr1253    ; GFX11-NEXT: {{  $}}254    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1255    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)256    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]257    %0:sgpr(p4) = COPY $sgpr0_sgpr1258    %1:sgpr(<4 x s16>) = G_LOAD %0 :: (load (<4 x s16>), align 4, addrspace 4)259    $sgpr0_sgpr1 = COPY %1260 261...262 263---264 265name: load_constant_v4s32_align4266legalized:       true267regBankSelected: true268tracksRegLiveness: true269 270body: |271  bb.0:272    liveins:  $sgpr0_sgpr1273 274    ; GFX6-LABEL: name: load_constant_v4s32_align4275    ; GFX6: liveins: $sgpr0_sgpr1276    ; GFX6-NEXT: {{  $}}277    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1278    ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)279    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]280    ;281    ; GFX7-LABEL: name: load_constant_v4s32_align4282    ; GFX7: liveins: $sgpr0_sgpr1283    ; GFX7-NEXT: {{  $}}284    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1285    ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)286    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]287    ;288    ; GFX8-LABEL: name: load_constant_v4s32_align4289    ; GFX8: liveins: $sgpr0_sgpr1290    ; GFX8-NEXT: {{  $}}291    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1292    ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)293    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]294    ;295    ; GFX10-LABEL: name: load_constant_v4s32_align4296    ; GFX10: liveins: $sgpr0_sgpr1297    ; GFX10-NEXT: {{  $}}298    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1299    ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)300    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1301    ;302    ; GFX11-LABEL: name: load_constant_v4s32_align4303    ; GFX11: liveins: $sgpr0_sgpr1304    ; GFX11-NEXT: {{  $}}305    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1306    ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)307    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]308    %0:sgpr(p4) = COPY $sgpr0_sgpr1309    %1:sgpr(<4 x  s32>) = G_LOAD %0 :: (load (<4 x s32>), align 4, addrspace 4)310    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1311 312...313 314---315 316name: load_constant_s64317legalized:       true318regBankSelected: true319tracksRegLiveness: true320 321body: |322  bb.0:323    liveins:  $sgpr0_sgpr1324 325    ; GFX6-LABEL: name: load_constant_s64326    ; GFX6: liveins: $sgpr0_sgpr1327    ; GFX6-NEXT: {{  $}}328    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1329    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)330    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]331    ;332    ; GFX7-LABEL: name: load_constant_s64333    ; GFX7: liveins: $sgpr0_sgpr1334    ; GFX7-NEXT: {{  $}}335    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1336    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)337    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]338    ;339    ; GFX8-LABEL: name: load_constant_s64340    ; GFX8: liveins: $sgpr0_sgpr1341    ; GFX8-NEXT: {{  $}}342    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1343    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)344    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]345    ;346    ; GFX10-LABEL: name: load_constant_s64347    ; GFX10: liveins: $sgpr0_sgpr1348    ; GFX10-NEXT: {{  $}}349    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1350    ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)351    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]352    ;353    ; GFX11-LABEL: name: load_constant_s64354    ; GFX11: liveins: $sgpr0_sgpr1355    ; GFX11-NEXT: {{  $}}356    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1357    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)358    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]359    %0:sgpr(p4) = COPY $sgpr0_sgpr1360    %1:sgpr(s64) = G_LOAD %0 :: (load (s64), align 8, addrspace 4)361    $sgpr0_sgpr1 = COPY %1362 363...364 365---366 367name: load_constant_s64_align4368legalized:       true369regBankSelected: true370tracksRegLiveness: true371 372body: |373  bb.0:374    liveins:  $sgpr0_sgpr1375 376    ; GFX6-LABEL: name: load_constant_s64_align4377    ; GFX6: liveins: $sgpr0_sgpr1378    ; GFX6-NEXT: {{  $}}379    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1380    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)381    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]382    ;383    ; GFX7-LABEL: name: load_constant_s64_align4384    ; GFX7: liveins: $sgpr0_sgpr1385    ; GFX7-NEXT: {{  $}}386    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1387    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)388    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]389    ;390    ; GFX8-LABEL: name: load_constant_s64_align4391    ; GFX8: liveins: $sgpr0_sgpr1392    ; GFX8-NEXT: {{  $}}393    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1394    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)395    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]396    ;397    ; GFX10-LABEL: name: load_constant_s64_align4398    ; GFX10: liveins: $sgpr0_sgpr1399    ; GFX10-NEXT: {{  $}}400    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1401    ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)402    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1403    ;404    ; GFX11-LABEL: name: load_constant_s64_align4405    ; GFX11: liveins: $sgpr0_sgpr1406    ; GFX11-NEXT: {{  $}}407    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1408    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)409    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]410    %0:sgpr(p4) = COPY $sgpr0_sgpr1411    %1:sgpr(s64) = G_LOAD %0 :: (load (s64), align 4, addrspace 4)412    $sgpr0_sgpr1 = COPY %1413 414...415 416---417 418name: load_constant_v2s64419legalized:       true420regBankSelected: true421tracksRegLiveness: true422 423body: |424  bb.0:425    liveins:  $sgpr0_sgpr1426 427    ; GFX6-LABEL: name: load_constant_v2s64428    ; GFX6: liveins: $sgpr0_sgpr1429    ; GFX6-NEXT: {{  $}}430    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1431    ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)432    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]433    ;434    ; GFX7-LABEL: name: load_constant_v2s64435    ; GFX7: liveins: $sgpr0_sgpr1436    ; GFX7-NEXT: {{  $}}437    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1438    ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)439    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]440    ;441    ; GFX8-LABEL: name: load_constant_v2s64442    ; GFX8: liveins: $sgpr0_sgpr1443    ; GFX8-NEXT: {{  $}}444    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1445    ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)446    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]447    ;448    ; GFX10-LABEL: name: load_constant_v2s64449    ; GFX10: liveins: $sgpr0_sgpr1450    ; GFX10-NEXT: {{  $}}451    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1452    ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)453    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1454    ;455    ; GFX11-LABEL: name: load_constant_v2s64456    ; GFX11: liveins: $sgpr0_sgpr1457    ; GFX11-NEXT: {{  $}}458    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1459    ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)460    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]461    %0:sgpr(p4) = COPY $sgpr0_sgpr1462    %1:sgpr(<2 x s64>) = G_LOAD %0 :: (load (<2 x s64>), align 4, addrspace 4)463    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1464 465...466 467---468 469name: load_constant_v2p1470legalized:       true471regBankSelected: true472tracksRegLiveness: true473 474body: |475  bb.0:476    liveins:  $sgpr0_sgpr1477 478    ; GFX6-LABEL: name: load_constant_v2p1479    ; GFX6: liveins: $sgpr0_sgpr1480    ; GFX6-NEXT: {{  $}}481    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1482    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)483    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)484    ;485    ; GFX7-LABEL: name: load_constant_v2p1486    ; GFX7: liveins: $sgpr0_sgpr1487    ; GFX7-NEXT: {{  $}}488    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1489    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)490    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)491    ;492    ; GFX8-LABEL: name: load_constant_v2p1493    ; GFX8: liveins: $sgpr0_sgpr1494    ; GFX8-NEXT: {{  $}}495    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1496    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)497    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)498    ;499    ; GFX10-LABEL: name: load_constant_v2p1500    ; GFX10: liveins: $sgpr0_sgpr1501    ; GFX10-NEXT: {{  $}}502    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1503    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)504    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)505    ;506    ; GFX11-LABEL: name: load_constant_v2p1507    ; GFX11: liveins: $sgpr0_sgpr1508    ; GFX11-NEXT: {{  $}}509    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1510    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)511    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)512    %0:sgpr(p4) = COPY $sgpr0_sgpr1513    %1:sgpr(<2 x p1>) = G_LOAD %0 :: (load (<2 x p1>), align 4, addrspace 4)514    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1515 516...517 518---519 520name: load_constant_s128_align4521legalized:       true522regBankSelected: true523tracksRegLiveness: true524 525body: |526  bb.0:527    liveins:  $sgpr0_sgpr1528 529    ; GFX6-LABEL: name: load_constant_s128_align4530    ; GFX6: liveins: $sgpr0_sgpr1531    ; GFX6-NEXT: {{  $}}532    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1533    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)534    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)535    ;536    ; GFX7-LABEL: name: load_constant_s128_align4537    ; GFX7: liveins: $sgpr0_sgpr1538    ; GFX7-NEXT: {{  $}}539    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1540    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)541    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)542    ;543    ; GFX8-LABEL: name: load_constant_s128_align4544    ; GFX8: liveins: $sgpr0_sgpr1545    ; GFX8-NEXT: {{  $}}546    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1547    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)548    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)549    ;550    ; GFX10-LABEL: name: load_constant_s128_align4551    ; GFX10: liveins: $sgpr0_sgpr1552    ; GFX10-NEXT: {{  $}}553    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1554    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)555    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)556    ;557    ; GFX11-LABEL: name: load_constant_s128_align4558    ; GFX11: liveins: $sgpr0_sgpr1559    ; GFX11-NEXT: {{  $}}560    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1561    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)562    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)563    %0:sgpr(p4) = COPY $sgpr0_sgpr1564    %1:sgpr(s128) = G_LOAD %0 :: (load (s128), align 4, addrspace 4)565    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1566 567...568 569---570 571name: load_constant_p3_from_4572legalized:       true573regBankSelected: true574tracksRegLiveness: true575 576body: |577  bb.0:578    liveins:  $sgpr0_sgpr1579 580    ; GFX6-LABEL: name: load_constant_p3_from_4581    ; GFX6: liveins: $sgpr0_sgpr1582    ; GFX6-NEXT: {{  $}}583    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1584    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)585    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]586    ;587    ; GFX7-LABEL: name: load_constant_p3_from_4588    ; GFX7: liveins: $sgpr0_sgpr1589    ; GFX7-NEXT: {{  $}}590    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1591    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)592    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]593    ;594    ; GFX8-LABEL: name: load_constant_p3_from_4595    ; GFX8: liveins: $sgpr0_sgpr1596    ; GFX8-NEXT: {{  $}}597    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1598    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)599    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]600    ;601    ; GFX10-LABEL: name: load_constant_p3_from_4602    ; GFX10: liveins: $sgpr0_sgpr1603    ; GFX10-NEXT: {{  $}}604    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1605    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)606    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]607    ;608    ; GFX11-LABEL: name: load_constant_p3_from_4609    ; GFX11: liveins: $sgpr0_sgpr1610    ; GFX11-NEXT: {{  $}}611    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1612    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)613    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]614    %0:sgpr(p4) = COPY $sgpr0_sgpr1615    %1:sgpr(p3) = G_LOAD %0 :: (load (p3), align 4, addrspace 4)616    $sgpr0 = COPY %1617 618...619 620---621 622name: load_constant_p4_from_8623legalized:       true624regBankSelected: true625tracksRegLiveness: true626 627body: |628  bb.0:629    liveins:  $sgpr0_sgpr1630 631    ; GFX6-LABEL: name: load_constant_p4_from_8632    ; GFX6: liveins: $sgpr0_sgpr1633    ; GFX6-NEXT: {{  $}}634    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1635    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)636    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]637    ;638    ; GFX7-LABEL: name: load_constant_p4_from_8639    ; GFX7: liveins: $sgpr0_sgpr1640    ; GFX7-NEXT: {{  $}}641    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1642    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)643    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]644    ;645    ; GFX8-LABEL: name: load_constant_p4_from_8646    ; GFX8: liveins: $sgpr0_sgpr1647    ; GFX8-NEXT: {{  $}}648    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1649    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)650    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]651    ;652    ; GFX10-LABEL: name: load_constant_p4_from_8653    ; GFX10: liveins: $sgpr0_sgpr1654    ; GFX10-NEXT: {{  $}}655    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1656    ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)657    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]658    ;659    ; GFX11-LABEL: name: load_constant_p4_from_8660    ; GFX11: liveins: $sgpr0_sgpr1661    ; GFX11-NEXT: {{  $}}662    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1663    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)664    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]665    %0:sgpr(p4) = COPY $sgpr0_sgpr1666    %1:sgpr(p4) = G_LOAD %0 :: (load (p4), align 8, addrspace 4)667    $sgpr0_sgpr1 = COPY %1668 669...670 671---672 673name: load_constant_p999_from_8674legalized:       true675regBankSelected: true676tracksRegLiveness: true677 678body: |679  bb.0:680    liveins:  $sgpr0_sgpr1681 682    ; GFX6-LABEL: name: load_constant_p999_from_8683    ; GFX6: liveins: $sgpr0_sgpr1684    ; GFX6-NEXT: {{  $}}685    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1686    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)687    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)688    ;689    ; GFX7-LABEL: name: load_constant_p999_from_8690    ; GFX7: liveins: $sgpr0_sgpr1691    ; GFX7-NEXT: {{  $}}692    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1693    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)694    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)695    ;696    ; GFX8-LABEL: name: load_constant_p999_from_8697    ; GFX8: liveins: $sgpr0_sgpr1698    ; GFX8-NEXT: {{  $}}699    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1700    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)701    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)702    ;703    ; GFX10-LABEL: name: load_constant_p999_from_8704    ; GFX10: liveins: $sgpr0_sgpr1705    ; GFX10-NEXT: {{  $}}706    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1707    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)708    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)709    ;710    ; GFX11-LABEL: name: load_constant_p999_from_8711    ; GFX11: liveins: $sgpr0_sgpr1712    ; GFX11-NEXT: {{  $}}713    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1714    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)715    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)716    %0:sgpr(p4) = COPY $sgpr0_sgpr1717    %1:sgpr(p999) = G_LOAD %0 :: (load (p999), align 8, addrspace 4)718    $sgpr0_sgpr1 = COPY %1719 720...721 722---723 724name: load_constant_v2p3725legalized:       true726regBankSelected: true727tracksRegLiveness: true728 729body: |730  bb.0:731    liveins:  $sgpr0_sgpr1732 733    ; GFX6-LABEL: name: load_constant_v2p3734    ; GFX6: liveins: $sgpr0_sgpr1735    ; GFX6-NEXT: {{  $}}736    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1737    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)738    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)739    ;740    ; GFX7-LABEL: name: load_constant_v2p3741    ; GFX7: liveins: $sgpr0_sgpr1742    ; GFX7-NEXT: {{  $}}743    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1744    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)745    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)746    ;747    ; GFX8-LABEL: name: load_constant_v2p3748    ; GFX8: liveins: $sgpr0_sgpr1749    ; GFX8-NEXT: {{  $}}750    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1751    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)752    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)753    ;754    ; GFX10-LABEL: name: load_constant_v2p3755    ; GFX10: liveins: $sgpr0_sgpr1756    ; GFX10-NEXT: {{  $}}757    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1758    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)759    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)760    ;761    ; GFX11-LABEL: name: load_constant_v2p3762    ; GFX11: liveins: $sgpr0_sgpr1763    ; GFX11-NEXT: {{  $}}764    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1765    ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)766    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)767    %0:sgpr(p4) = COPY $sgpr0_sgpr1768    %1:sgpr(<2 x p3>) = G_LOAD %0 :: (load (<2 x p3>), align 8, addrspace 4)769    $sgpr0_sgpr1 = COPY %1770 771...772 773---774 775name: load_constant_v2s16776legalized:       true777regBankSelected: true778tracksRegLiveness: true779 780body: |781  bb.0:782    liveins:  $sgpr0_sgpr1783 784    ; GFX6-LABEL: name: load_constant_v2s16785    ; GFX6: liveins: $sgpr0_sgpr1786    ; GFX6-NEXT: {{  $}}787    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1788    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)789    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]790    ;791    ; GFX7-LABEL: name: load_constant_v2s16792    ; GFX7: liveins: $sgpr0_sgpr1793    ; GFX7-NEXT: {{  $}}794    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1795    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)796    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]797    ;798    ; GFX8-LABEL: name: load_constant_v2s16799    ; GFX8: liveins: $sgpr0_sgpr1800    ; GFX8-NEXT: {{  $}}801    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1802    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)803    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]804    ;805    ; GFX10-LABEL: name: load_constant_v2s16806    ; GFX10: liveins: $sgpr0_sgpr1807    ; GFX10-NEXT: {{  $}}808    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1809    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)810    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]811    ;812    ; GFX11-LABEL: name: load_constant_v2s16813    ; GFX11: liveins: $sgpr0_sgpr1814    ; GFX11-NEXT: {{  $}}815    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1816    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)817    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]818    %0:sgpr(p4) = COPY $sgpr0_sgpr1819    %1:sgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 4)820    $sgpr0 = COPY %1821 822...823 824---825 826name: load_constant_v4s16827legalized:       true828regBankSelected: true829tracksRegLiveness: true830 831body: |832  bb.0:833    liveins:  $sgpr0_sgpr1834 835    ; GFX6-LABEL: name: load_constant_v4s16836    ; GFX6: liveins: $sgpr0_sgpr1837    ; GFX6-NEXT: {{  $}}838    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1839    ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)840    ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]841    ;842    ; GFX7-LABEL: name: load_constant_v4s16843    ; GFX7: liveins: $sgpr0_sgpr1844    ; GFX7-NEXT: {{  $}}845    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1846    ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)847    ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]848    ;849    ; GFX8-LABEL: name: load_constant_v4s16850    ; GFX8: liveins: $sgpr0_sgpr1851    ; GFX8-NEXT: {{  $}}852    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1853    ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)854    ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]855    ;856    ; GFX10-LABEL: name: load_constant_v4s16857    ; GFX10: liveins: $sgpr0_sgpr1858    ; GFX10-NEXT: {{  $}}859    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1860    ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)861    ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]862    ;863    ; GFX11-LABEL: name: load_constant_v4s16864    ; GFX11: liveins: $sgpr0_sgpr1865    ; GFX11-NEXT: {{  $}}866    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1867    ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)868    ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]869    %0:sgpr(p4) = COPY $sgpr0_sgpr1870    %1:sgpr(<4 x s16>) = G_LOAD %0 :: (load (<4 x s16>), align 8, addrspace 4)871    $sgpr0_sgpr1 = COPY %1872 873...874 875---876 877name: load_constant_v8s16878legalized:       true879regBankSelected: true880tracksRegLiveness: true881 882body: |883  bb.0:884    liveins:  $sgpr0_sgpr1885 886    ; GFX6-LABEL: name: load_constant_v8s16887    ; GFX6: liveins: $sgpr0_sgpr1888    ; GFX6-NEXT: {{  $}}889    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1890    ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)891    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]892    ;893    ; GFX7-LABEL: name: load_constant_v8s16894    ; GFX7: liveins: $sgpr0_sgpr1895    ; GFX7-NEXT: {{  $}}896    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1897    ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)898    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]899    ;900    ; GFX8-LABEL: name: load_constant_v8s16901    ; GFX8: liveins: $sgpr0_sgpr1902    ; GFX8-NEXT: {{  $}}903    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1904    ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)905    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]906    ;907    ; GFX10-LABEL: name: load_constant_v8s16908    ; GFX10: liveins: $sgpr0_sgpr1909    ; GFX10-NEXT: {{  $}}910    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1911    ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)912    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1913    ;914    ; GFX11-LABEL: name: load_constant_v8s16915    ; GFX11: liveins: $sgpr0_sgpr1916    ; GFX11-NEXT: {{  $}}917    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1918    ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)919    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]920    %0:sgpr(p4) = COPY $sgpr0_sgpr1921    %1:sgpr(<8 x s16>) = G_LOAD %0 :: (load (<8 x s16>), align 4, addrspace 4)922    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1923 924...925 926---927 928name: load_constant_v8s32929legalized:       true930regBankSelected: true931tracksRegLiveness: true932 933body: |934  bb.0:935    liveins:  $sgpr0_sgpr1936 937    ; GFX6-LABEL: name: load_constant_v8s32938    ; GFX6: liveins: $sgpr0_sgpr1939    ; GFX6-NEXT: {{  $}}940    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1941    ; GFX6-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)942    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]943    ;944    ; GFX7-LABEL: name: load_constant_v8s32945    ; GFX7: liveins: $sgpr0_sgpr1946    ; GFX7-NEXT: {{  $}}947    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1948    ; GFX7-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)949    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]950    ;951    ; GFX8-LABEL: name: load_constant_v8s32952    ; GFX8: liveins: $sgpr0_sgpr1953    ; GFX8-NEXT: {{  $}}954    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1955    ; GFX8-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)956    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]957    ;958    ; GFX10-LABEL: name: load_constant_v8s32959    ; GFX10: liveins: $sgpr0_sgpr1960    ; GFX10-NEXT: {{  $}}961    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1962    ; GFX10-NEXT: early-clobber %1:sgpr_256 = S_LOAD_DWORDX8_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)963    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %1964    ;965    ; GFX11-LABEL: name: load_constant_v8s32966    ; GFX11: liveins: $sgpr0_sgpr1967    ; GFX11-NEXT: {{  $}}968    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1969    ; GFX11-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)970    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]971    %0:sgpr(p4) = COPY $sgpr0_sgpr1972    %1:sgpr(<8 x s32>) = G_LOAD %0 :: (load (<8 x s32>), align 4, addrspace 4)973    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %1974 975...976 977---978 979name: load_constant_v16s32980legalized:       true981regBankSelected: true982tracksRegLiveness: true983 984body: |985  bb.0:986    liveins:  $sgpr0_sgpr1987 988    ; GFX6-LABEL: name: load_constant_v16s32989    ; GFX6: liveins: $sgpr0_sgpr1990    ; GFX6-NEXT: {{  $}}991    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1992    ; GFX6-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)993    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]994    ;995    ; GFX7-LABEL: name: load_constant_v16s32996    ; GFX7: liveins: $sgpr0_sgpr1997    ; GFX7-NEXT: {{  $}}998    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1999    ; GFX7-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1000    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1001    ;1002    ; GFX8-LABEL: name: load_constant_v16s321003    ; GFX8: liveins: $sgpr0_sgpr11004    ; GFX8-NEXT: {{  $}}1005    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11006    ; GFX8-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1007    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1008    ;1009    ; GFX10-LABEL: name: load_constant_v16s321010    ; GFX10: liveins: $sgpr0_sgpr11011    ; GFX10-NEXT: {{  $}}1012    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11013    ; GFX10-NEXT: early-clobber %1:sgpr_512 = S_LOAD_DWORDX16_IMM_ec [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1014    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11015    ;1016    ; GFX11-LABEL: name: load_constant_v16s321017    ; GFX11: liveins: $sgpr0_sgpr11018    ; GFX11-NEXT: {{  $}}1019    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11020    ; GFX11-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1021    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1022    %0:sgpr(p4) = COPY $sgpr0_sgpr11023    %1:sgpr(<16 x s32>) = G_LOAD %0 :: (load (<16 x s32>), align 4, addrspace 4)1024    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11025 1026...1027 1028---1029 1030name: load_constant_v8s641031legalized:       true1032regBankSelected: true1033tracksRegLiveness: true1034 1035body: |1036  bb.0:1037    liveins:  $sgpr0_sgpr11038 1039    ; GFX6-LABEL: name: load_constant_v8s641040    ; GFX6: liveins: $sgpr0_sgpr11041    ; GFX6-NEXT: {{  $}}1042    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11043    ; GFX6-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1044    ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1045    ;1046    ; GFX7-LABEL: name: load_constant_v8s641047    ; GFX7: liveins: $sgpr0_sgpr11048    ; GFX7-NEXT: {{  $}}1049    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11050    ; GFX7-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1051    ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1052    ;1053    ; GFX8-LABEL: name: load_constant_v8s641054    ; GFX8: liveins: $sgpr0_sgpr11055    ; GFX8-NEXT: {{  $}}1056    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11057    ; GFX8-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1058    ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1059    ;1060    ; GFX10-LABEL: name: load_constant_v8s641061    ; GFX10: liveins: $sgpr0_sgpr11062    ; GFX10-NEXT: {{  $}}1063    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11064    ; GFX10-NEXT: early-clobber %1:sgpr_512 = S_LOAD_DWORDX16_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1065    ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11066    ;1067    ; GFX11-LABEL: name: load_constant_v8s641068    ; GFX11: liveins: $sgpr0_sgpr11069    ; GFX11-NEXT: {{  $}}1070    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11071    ; GFX11-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1072    ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1073    %0:sgpr(p4) = COPY $sgpr0_sgpr11074    %1:sgpr(<8 x s64>) = G_LOAD %0 :: (load (<8 x s64>), align 4, addrspace 4)1075    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11076 1077...1078 1079################################################################################1080### Stress addressing modes1081################################################################################1082 1083---1084 1085name: load_constant_s32_from_4_gep_10201086legalized:       true1087regBankSelected: true1088tracksRegLiveness: true1089 1090body: |1091  bb.0:1092    liveins:  $sgpr0_sgpr11093 1094    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10201095    ; GFX6: liveins: $sgpr0_sgpr11096    ; GFX6-NEXT: {{  $}}1097    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11098    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 255, 0 :: (load (s32), addrspace 4)1099    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1100    ;1101    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10201102    ; GFX7: liveins: $sgpr0_sgpr11103    ; GFX7-NEXT: {{  $}}1104    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11105    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 255, 0 :: (load (s32), addrspace 4)1106    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1107    ;1108    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10201109    ; GFX8: liveins: $sgpr0_sgpr11110    ; GFX8-NEXT: {{  $}}1111    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11112    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1113    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1114    ;1115    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10201116    ; GFX10: liveins: $sgpr0_sgpr11117    ; GFX10-NEXT: {{  $}}1118    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11119    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1120    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1121    ;1122    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10201123    ; GFX11: liveins: $sgpr0_sgpr11124    ; GFX11-NEXT: {{  $}}1125    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11126    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1127    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1128    %0:sgpr(p4) = COPY $sgpr0_sgpr11129    %1:sgpr(s64) = G_CONSTANT i64 10201130    %2:sgpr(p4) = G_PTR_ADD %0, %11131    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1132    $sgpr0 = COPY %31133 1134...1135 1136---1137 1138name: load_constant_s32_from_4_gep_10241139legalized:       true1140regBankSelected: true1141tracksRegLiveness: true1142 1143body: |1144  bb.0:1145    liveins:  $sgpr0_sgpr11146 1147    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10241148    ; GFX6: liveins: $sgpr0_sgpr11149    ; GFX6-NEXT: {{  $}}1150    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11151    ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10241152    ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1153    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1154    ;1155    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10241156    ; GFX7: liveins: $sgpr0_sgpr11157    ; GFX7-NEXT: {{  $}}1158    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11159    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM_ci:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM_ci [[COPY]], 256, 0 :: (load (s32), addrspace 4)1160    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM_ci]]1161    ;1162    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10241163    ; GFX8: liveins: $sgpr0_sgpr11164    ; GFX8-NEXT: {{  $}}1165    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11166    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1167    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1168    ;1169    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10241170    ; GFX10: liveins: $sgpr0_sgpr11171    ; GFX10-NEXT: {{  $}}1172    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11173    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1174    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1175    ;1176    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10241177    ; GFX11: liveins: $sgpr0_sgpr11178    ; GFX11-NEXT: {{  $}}1179    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11180    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1181    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1182    %0:sgpr(p4) = COPY $sgpr0_sgpr11183    %1:sgpr(s64) = G_CONSTANT i64 10241184    %2:sgpr(p4) = G_PTR_ADD %0, %11185    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1186    $sgpr0 = COPY %31187 1188...1189 1190---1191 1192name: load_constant_s32_from_4_gep_10485751193legalized:       true1194regBankSelected: true1195tracksRegLiveness: true1196 1197body: |1198  bb.0:1199    liveins:  $sgpr0_sgpr11200 1201    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10485751202    ; GFX6: liveins: $sgpr0_sgpr11203    ; GFX6-NEXT: {{  $}}1204    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11205    ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751206    ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1207    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1208    ;1209    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10485751210    ; GFX7: liveins: $sgpr0_sgpr11211    ; GFX7-NEXT: {{  $}}1212    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11213    ; GFX7-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751214    ; GFX7-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1215    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1216    ;1217    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10485751218    ; GFX8: liveins: $sgpr0_sgpr11219    ; GFX8-NEXT: {{  $}}1220    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11221    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1048575, 0 :: (load (s32), addrspace 4)1222    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1223    ;1224    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10485751225    ; GFX10: liveins: $sgpr0_sgpr11226    ; GFX10-NEXT: {{  $}}1227    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11228    ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751229    ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1230    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1231    ;1232    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10485751233    ; GFX11: liveins: $sgpr0_sgpr11234    ; GFX11-NEXT: {{  $}}1235    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11236    ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751237    ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1238    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1239    %0:sgpr(p4) = COPY $sgpr0_sgpr11240    %1:sgpr(s64) = G_CONSTANT i64 10485751241    %2:sgpr(p4) = G_PTR_ADD %0, %11242    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1243    $sgpr0 = COPY %31244 1245...1246 1247---1248 1249name: load_constant_s32_from_4_gep_10485761250legalized:       true1251regBankSelected: true1252tracksRegLiveness: true1253 1254body: |1255  bb.0:1256    liveins:  $sgpr0_sgpr11257 1258    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10485761259    ; GFX6: liveins: $sgpr0_sgpr11260    ; GFX6-NEXT: {{  $}}1261    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11262    ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761263    ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1264    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1265    ;1266    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10485761267    ; GFX7: liveins: $sgpr0_sgpr11268    ; GFX7-NEXT: {{  $}}1269    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11270    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM_ci:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM_ci [[COPY]], 262144, 0 :: (load (s32), addrspace 4)1271    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM_ci]]1272    ;1273    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10485761274    ; GFX8: liveins: $sgpr0_sgpr11275    ; GFX8-NEXT: {{  $}}1276    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11277    ; GFX8-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761278    ; GFX8-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1279    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1280    ;1281    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10485761282    ; GFX10: liveins: $sgpr0_sgpr11283    ; GFX10-NEXT: {{  $}}1284    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11285    ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761286    ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1287    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1288    ;1289    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10485761290    ; GFX11: liveins: $sgpr0_sgpr11291    ; GFX11-NEXT: {{  $}}1292    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11293    ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761294    ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1295    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1296    %0:sgpr(p4) = COPY $sgpr0_sgpr11297    %1:sgpr(s64) = G_CONSTANT i64 10485761298    %2:sgpr(p4) = G_PTR_ADD %0, %11299    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1300    $sgpr0 = COPY %31301 1302...1303 1304---1305 1306name: load_constant_s32_from_4_gep_10737418231307legalized:       true1308regBankSelected: true1309tracksRegLiveness: true1310 1311body: |1312  bb.0:1313    liveins:  $sgpr0_sgpr11314 1315    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10737418231316    ; GFX6: liveins: $sgpr0_sgpr11317    ; GFX6-NEXT: {{  $}}1318    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11319    ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231320    ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1321    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1322    ;1323    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10737418231324    ; GFX7: liveins: $sgpr0_sgpr11325    ; GFX7-NEXT: {{  $}}1326    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11327    ; GFX7-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231328    ; GFX7-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1329    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1330    ;1331    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10737418231332    ; GFX8: liveins: $sgpr0_sgpr11333    ; GFX8-NEXT: {{  $}}1334    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11335    ; GFX8-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231336    ; GFX8-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1337    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1338    ;1339    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10737418231340    ; GFX10: liveins: $sgpr0_sgpr11341    ; GFX10-NEXT: {{  $}}1342    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11343    ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231344    ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1345    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1346    ;1347    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10737418231348    ; GFX11: liveins: $sgpr0_sgpr11349    ; GFX11-NEXT: {{  $}}1350    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11351    ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231352    ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1353    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1354    %0:sgpr(p4) = COPY $sgpr0_sgpr11355    %1:sgpr(s64) = G_CONSTANT i64 10737418231356    %2:sgpr(p4) = G_PTR_ADD %0, %11357    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1358    $sgpr0 = COPY %31359 1360...1361 1362---1363 1364name: load_constant_s32_from_4_gep_negative_11365legalized:       true1366regBankSelected: true1367tracksRegLiveness: true1368 1369body: |1370  bb.0:1371    liveins:  $sgpr0_sgpr11372 1373    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_negative_11374    ; GFX6: liveins: $sgpr0_sgpr11375    ; GFX6-NEXT: {{  $}}1376    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11377    ; GFX6-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11378    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01379    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01380    ; GFX6-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11381    ; GFX6-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11382    ; GFX6-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1383    ; GFX6-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1384    ; GFX6-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11385    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1386    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1387    ;1388    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_negative_11389    ; GFX7: liveins: $sgpr0_sgpr11390    ; GFX7-NEXT: {{  $}}1391    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11392    ; GFX7-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11393    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01394    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01395    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11396    ; GFX7-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11397    ; GFX7-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1398    ; GFX7-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1399    ; GFX7-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11400    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1401    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1402    ;1403    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_negative_11404    ; GFX8: liveins: $sgpr0_sgpr11405    ; GFX8-NEXT: {{  $}}1406    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11407    ; GFX8-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11408    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01409    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01410    ; GFX8-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11411    ; GFX8-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11412    ; GFX8-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1413    ; GFX8-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1414    ; GFX8-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11415    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1416    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1417    ;1418    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_negative_11419    ; GFX10: liveins: $sgpr0_sgpr11420    ; GFX10-NEXT: {{  $}}1421    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11422    ; GFX10-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11423    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01424    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01425    ; GFX10-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11426    ; GFX10-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11427    ; GFX10-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1428    ; GFX10-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1429    ; GFX10-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11430    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1431    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1432    ;1433    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_negative_11434    ; GFX11: liveins: $sgpr0_sgpr11435    ; GFX11-NEXT: {{  $}}1436    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11437    ; GFX11-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11438    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01439    ; GFX11-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01440    ; GFX11-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11441    ; GFX11-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11442    ; GFX11-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1443    ; GFX11-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1444    ; GFX11-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11445    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1446    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1447    %0:sgpr(p4) = COPY $sgpr0_sgpr11448    %1:sgpr(s64) = G_CONSTANT i64 -11449    %2:sgpr(p4) = G_PTR_ADD %0, %11450    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1451    $sgpr0 = COPY %31452 1453...1454 1455---1456 1457name: load_constant_s32_from_4_gep_negative_5242881458legalized:       true1459regBankSelected: true1460tracksRegLiveness: true1461 1462body: |1463  bb.0:1464    liveins:  $sgpr0_sgpr11465 1466    ; GFX6-LABEL: name: load_constant_s32_from_4_gep_negative_5242881467    ; GFX6: liveins: $sgpr0_sgpr11468    ; GFX6-NEXT: {{  $}}1469    ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11470    ; GFX6-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881471    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01472    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01473    ; GFX6-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11474    ; GFX6-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11475    ; GFX6-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1476    ; GFX6-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1477    ; GFX6-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11478    ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1479    ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1480    ;1481    ; GFX7-LABEL: name: load_constant_s32_from_4_gep_negative_5242881482    ; GFX7: liveins: $sgpr0_sgpr11483    ; GFX7-NEXT: {{  $}}1484    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11485    ; GFX7-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881486    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01487    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01488    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11489    ; GFX7-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11490    ; GFX7-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1491    ; GFX7-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1492    ; GFX7-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11493    ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1494    ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1495    ;1496    ; GFX8-LABEL: name: load_constant_s32_from_4_gep_negative_5242881497    ; GFX8: liveins: $sgpr0_sgpr11498    ; GFX8-NEXT: {{  $}}1499    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11500    ; GFX8-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881501    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01502    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01503    ; GFX8-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11504    ; GFX8-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11505    ; GFX8-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1506    ; GFX8-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1507    ; GFX8-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11508    ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1509    ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1510    ;1511    ; GFX10-LABEL: name: load_constant_s32_from_4_gep_negative_5242881512    ; GFX10: liveins: $sgpr0_sgpr11513    ; GFX10-NEXT: {{  $}}1514    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11515    ; GFX10-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881516    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01517    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01518    ; GFX10-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11519    ; GFX10-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11520    ; GFX10-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1521    ; GFX10-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1522    ; GFX10-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11523    ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1524    ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1525    ;1526    ; GFX11-LABEL: name: load_constant_s32_from_4_gep_negative_5242881527    ; GFX11: liveins: $sgpr0_sgpr11528    ; GFX11-NEXT: {{  $}}1529    ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11530    ; GFX11-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881531    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01532    ; GFX11-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01533    ; GFX11-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11534    ; GFX11-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11535    ; GFX11-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1536    ; GFX11-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1537    ; GFX11-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11538    ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1539    ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1540    %0:sgpr(p4) = COPY $sgpr0_sgpr11541    %1:sgpr(s64) = G_CONSTANT i64 -5242881542    %2:sgpr(p4) = G_PTR_ADD %0, %11543    %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1544    $sgpr0 = COPY %31545 1546...1547