brintos

brintos / llvm-project-archived public Read only

0
0
Text · 72.8 KiB · df14863 Raw
1558 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs  -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX6 %s3# RUN: llc -O0 -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs  -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX6 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX11 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX12 %s8 9---10 11name: load_private_s32_from_412legalized:       true13regBankSelected: true14tracksRegLiveness: true15machineFunctionInfo:16  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr317  stackPtrOffsetReg: $sgpr3218 19body: |20  bb.0:21    liveins:  $vgpr022 23    ; GFX6-LABEL: name: load_private_s32_from_424    ; GFX6: liveins: $vgpr025    ; GFX6-NEXT: {{  $}}26    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr027    ; GFX6-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)28    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]29    ;30    ; GFX9-LABEL: name: load_private_s32_from_431    ; GFX9: liveins: $vgpr032    ; GFX9-NEXT: {{  $}}33    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr034    ; GFX9-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)35    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]36    ;37    ; GFX11-LABEL: name: load_private_s32_from_438    ; GFX11: liveins: $vgpr039    ; GFX11-NEXT: {{  $}}40    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr041    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)42    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]43    ;44    ; GFX12-LABEL: name: load_private_s32_from_445    ; GFX12: liveins: $vgpr046    ; GFX12-NEXT: {{  $}}47    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr048    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)49    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]50    %0:vgpr(p5) = COPY $vgpr051    %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 5)52    $vgpr0 = COPY %153 54...55 56---57 58name: load_private_s32_from_259legalized:       true60regBankSelected: true61tracksRegLiveness: true62machineFunctionInfo:63  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr364  stackPtrOffsetReg: $sgpr3265 66body: |67  bb.0:68    liveins:  $vgpr069 70    ; GFX6-LABEL: name: load_private_s32_from_271    ; GFX6: liveins: $vgpr072    ; GFX6-NEXT: {{  $}}73    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr074    ; GFX6-NEXT: [[BUFFER_LOAD_USHORT_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_USHORT_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s16), addrspace 5)75    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_USHORT_OFFEN]]76    ;77    ; GFX9-LABEL: name: load_private_s32_from_278    ; GFX9: liveins: $vgpr079    ; GFX9-NEXT: {{  $}}80    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr081    ; GFX9-NEXT: [[BUFFER_LOAD_USHORT_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_USHORT_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s16), addrspace 5)82    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_USHORT_OFFEN]]83    ;84    ; GFX11-LABEL: name: load_private_s32_from_285    ; GFX11: liveins: $vgpr086    ; GFX11-NEXT: {{  $}}87    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr088    ; GFX11-NEXT: [[SCRATCH_LOAD_USHORT:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_USHORT [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s16), addrspace 5)89    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_USHORT]]90    ;91    ; GFX12-LABEL: name: load_private_s32_from_292    ; GFX12: liveins: $vgpr093    ; GFX12-NEXT: {{  $}}94    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr095    ; GFX12-NEXT: [[SCRATCH_LOAD_USHORT:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_USHORT [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s16), addrspace 5)96    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_USHORT]]97    %0:vgpr(p5) = COPY $vgpr098    %1:vgpr(s32) = G_LOAD %0 :: (load (s16), align 2, addrspace 5)99    $vgpr0 = COPY %1100 101...102 103---104 105name: load_private_s32_from_1106legalized:       true107regBankSelected: true108tracksRegLiveness: true109machineFunctionInfo:110  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3111  stackPtrOffsetReg: $sgpr32112 113body: |114  bb.0:115    liveins:  $vgpr0116 117    ; GFX6-LABEL: name: load_private_s32_from_1118    ; GFX6: liveins: $vgpr0119    ; GFX6-NEXT: {{  $}}120    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0121    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)122    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]123    ;124    ; GFX9-LABEL: name: load_private_s32_from_1125    ; GFX9: liveins: $vgpr0126    ; GFX9-NEXT: {{  $}}127    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0128    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)129    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]130    ;131    ; GFX11-LABEL: name: load_private_s32_from_1132    ; GFX11: liveins: $vgpr0133    ; GFX11-NEXT: {{  $}}134    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0135    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)136    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]137    ;138    ; GFX12-LABEL: name: load_private_s32_from_1139    ; GFX12: liveins: $vgpr0140    ; GFX12-NEXT: {{  $}}141    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0142    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)143    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]144    %0:vgpr(p5) = COPY $vgpr0145    %1:vgpr(s32) = G_LOAD %0 :: (load (s8), align 1, addrspace 5)146    $vgpr0 = COPY %1147 148...149 150---151 152name: load_private_p3_from_4153legalized:       true154regBankSelected: true155tracksRegLiveness: true156machineFunctionInfo:157  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3158  stackPtrOffsetReg: $sgpr32159 160body: |161  bb.0:162    liveins:  $vgpr0163 164    ; GFX6-LABEL: name: load_private_p3_from_4165    ; GFX6: liveins: $vgpr0166    ; GFX6-NEXT: {{  $}}167    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0168    ; GFX6-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (p3), addrspace 5)169    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]170    ;171    ; GFX9-LABEL: name: load_private_p3_from_4172    ; GFX9: liveins: $vgpr0173    ; GFX9-NEXT: {{  $}}174    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0175    ; GFX9-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (p3), addrspace 5)176    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]177    ;178    ; GFX11-LABEL: name: load_private_p3_from_4179    ; GFX11: liveins: $vgpr0180    ; GFX11-NEXT: {{  $}}181    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0182    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (p3), addrspace 5)183    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]184    ;185    ; GFX12-LABEL: name: load_private_p3_from_4186    ; GFX12: liveins: $vgpr0187    ; GFX12-NEXT: {{  $}}188    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0189    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (p3), addrspace 5)190    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]191    %0:vgpr(p5) = COPY $vgpr0192    %1:vgpr(p3) = G_LOAD %0 :: (load (p3), align 4, addrspace 5)193    $vgpr0 = COPY %1194 195...196 197---198 199name: load_private_p5_from_4200legalized:       true201regBankSelected: true202tracksRegLiveness: true203machineFunctionInfo:204  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3205  stackPtrOffsetReg: $sgpr32206 207body: |208  bb.0:209    liveins:  $vgpr0210 211    ; GFX6-LABEL: name: load_private_p5_from_4212    ; GFX6: liveins: $vgpr0213    ; GFX6-NEXT: {{  $}}214    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0215    ; GFX6-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (p5), addrspace 5)216    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]217    ;218    ; GFX9-LABEL: name: load_private_p5_from_4219    ; GFX9: liveins: $vgpr0220    ; GFX9-NEXT: {{  $}}221    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0222    ; GFX9-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (p5), addrspace 5)223    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]224    ;225    ; GFX11-LABEL: name: load_private_p5_from_4226    ; GFX11: liveins: $vgpr0227    ; GFX11-NEXT: {{  $}}228    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0229    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (p5), addrspace 5)230    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]231    ;232    ; GFX12-LABEL: name: load_private_p5_from_4233    ; GFX12: liveins: $vgpr0234    ; GFX12-NEXT: {{  $}}235    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0236    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (p5), addrspace 5)237    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]238    %0:vgpr(p5) = COPY $vgpr0239    %1:vgpr(p5) = G_LOAD %0 :: (load (p5), align 4, addrspace 5)240    $vgpr0 = COPY %1241 242...243 244---245 246name: load_private_v2s16247legalized:       true248regBankSelected: true249tracksRegLiveness: true250machineFunctionInfo:251  isEntryFunction: false252  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3253  stackPtrOffsetReg: $sgpr32254 255body: |256  bb.0:257    liveins:  $vgpr0258 259    ; GFX6-LABEL: name: load_private_v2s16260    ; GFX6: liveins: $vgpr0261    ; GFX6-NEXT: {{  $}}262    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0263    ; GFX6-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (<2 x s16>), addrspace 5)264    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]265    ;266    ; GFX9-LABEL: name: load_private_v2s16267    ; GFX9: liveins: $vgpr0268    ; GFX9-NEXT: {{  $}}269    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0270    ; GFX9-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (<2 x s16>), addrspace 5)271    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]272    ;273    ; GFX11-LABEL: name: load_private_v2s16274    ; GFX11: liveins: $vgpr0275    ; GFX11-NEXT: {{  $}}276    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0277    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (<2 x s16>), addrspace 5)278    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]279    ;280    ; GFX12-LABEL: name: load_private_v2s16281    ; GFX12: liveins: $vgpr0282    ; GFX12-NEXT: {{  $}}283    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0284    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (load (<2 x s16>), addrspace 5)285    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]286    %0:vgpr(p5) = COPY $vgpr0287    %1:vgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 5)288    $vgpr0 = COPY %1289 290...291 292################################################################################293### Stress addressing modes294################################################################################295 296---297 298name: load_private_s32_from_1_gep_2047299legalized:       true300regBankSelected: true301tracksRegLiveness: true302machineFunctionInfo:303  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3304  stackPtrOffsetReg: $sgpr32305 306body: |307  bb.0:308    liveins:  $vgpr0309 310    ; GFX6-LABEL: name: load_private_s32_from_1_gep_2047311    ; GFX6: liveins: $vgpr0312    ; GFX6-NEXT: {{  $}}313    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0314    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2047, implicit $exec315    ; GFX6-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 $exec316    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)317    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]318    ;319    ; GFX9-LABEL: name: load_private_s32_from_1_gep_2047320    ; GFX9: liveins: $vgpr0321    ; GFX9-NEXT: {{  $}}322    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0323    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 2047, 0, 0, implicit $exec :: (load (s8), addrspace 5)324    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]325    ;326    ; GFX11-LABEL: name: load_private_s32_from_1_gep_2047327    ; GFX11: liveins: $vgpr0328    ; GFX11-NEXT: {{  $}}329    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0330    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2047, implicit $exec331    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec332    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)333    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]334    ;335    ; GFX12-LABEL: name: load_private_s32_from_1_gep_2047336    ; GFX12: liveins: $vgpr0337    ; GFX12-NEXT: {{  $}}338    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0339    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 2047, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)340    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]341    %0:vgpr(p5) = COPY $vgpr0342    %1:vgpr(s32) = G_CONSTANT i32 2047343    %2:vgpr(p5) = G_PTR_ADD %0, %1344    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)345    $vgpr0 = COPY %3346 347...348 349---350 351name: load_private_s32_from_1_gep_2047_known_bits352legalized:       true353regBankSelected: true354tracksRegLiveness: true355machineFunctionInfo:356  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3357  stackPtrOffsetReg: $sgpr32358 359body: |360  bb.0:361    liveins:  $vgpr0362 363    ; GFX9-LABEL: name: load_private_s32_from_1_gep_2047_known_bits364    ; GFX9: liveins: $vgpr0365    ; GFX9-NEXT: {{  $}}366    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0367    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec368    ; GFX9-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec369    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_AND_B32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 2047, 0, 0, implicit $exec :: (load (s8), addrspace 5)370    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]371    ;372    ; GFX11-LABEL: name: load_private_s32_from_1_gep_2047_known_bits373    ; GFX11: liveins: $vgpr0374    ; GFX11-NEXT: {{  $}}375    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0376    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec377    ; GFX11-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec378    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_AND_B32_e64_]], 2047, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)379    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]380    ;381    ; GFX12-LABEL: name: load_private_s32_from_1_gep_2047_known_bits382    ; GFX12: liveins: $vgpr0383    ; GFX12-NEXT: {{  $}}384    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0385    ; GFX12-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec386    ; GFX12-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec387    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_AND_B32_e64_]], 2047, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)388    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]389    %0:vgpr(s32) = COPY $vgpr0390    %1:vgpr(s32) = G_CONSTANT i32 2147483647391    %2:vgpr(s32) = G_AND %0, %1392    %3:vgpr(p5) = G_INTTOPTR %2393    %4:vgpr(s32) = G_CONSTANT i32 2047394    %5:vgpr(p5) = G_PTR_ADD %3, %4395    %6:vgpr(s32) = G_LOAD %5 :: (load (s8), align 1, addrspace 5)396    $vgpr0 = COPY %6397 398...399 400---401 402name: load_private_s32_from_1_gep_2048403legalized:       true404regBankSelected: true405tracksRegLiveness: true406machineFunctionInfo:407  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3408  stackPtrOffsetReg: $sgpr32409 410body: |411  bb.0:412    liveins:  $vgpr0413 414    ; GFX6-LABEL: name: load_private_s32_from_1_gep_2048415    ; GFX6: liveins: $vgpr0416    ; GFX6-NEXT: {{  $}}417    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0418    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2048, implicit $exec419    ; GFX6-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 $exec420    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)421    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]422    ;423    ; GFX9-LABEL: name: load_private_s32_from_1_gep_2048424    ; GFX9: liveins: $vgpr0425    ; GFX9-NEXT: {{  $}}426    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0427    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 2048, 0, 0, implicit $exec :: (load (s8), addrspace 5)428    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]429    ;430    ; GFX11-LABEL: name: load_private_s32_from_1_gep_2048431    ; GFX11: liveins: $vgpr0432    ; GFX11-NEXT: {{  $}}433    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0434    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2048, implicit $exec435    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec436    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)437    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]438    ;439    ; GFX12-LABEL: name: load_private_s32_from_1_gep_2048440    ; GFX12: liveins: $vgpr0441    ; GFX12-NEXT: {{  $}}442    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0443    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 2048, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)444    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]445    %0:vgpr(p5) = COPY $vgpr0446    %1:vgpr(s32) = G_CONSTANT i32 2048447    %2:vgpr(p5) = G_PTR_ADD %0, %1448    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)449    $vgpr0 = COPY %3450 451...452 453---454 455name: load_private_s32_from_1_gep_m2047456legalized:       true457regBankSelected: true458tracksRegLiveness: true459machineFunctionInfo:460  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3461  stackPtrOffsetReg: $sgpr32462 463body: |464  bb.0:465    liveins:  $vgpr0466 467    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m2047468    ; GFX6: liveins: $vgpr0469    ; GFX6-NEXT: {{  $}}470    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0471    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2047, implicit $exec472    ; GFX6-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 $exec473    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)474    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]475    ;476    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m2047477    ; GFX9: liveins: $vgpr0478    ; GFX9-NEXT: {{  $}}479    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0480    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2047, implicit $exec481    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec482    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)483    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]484    ;485    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m2047486    ; GFX11: liveins: $vgpr0487    ; GFX11-NEXT: {{  $}}488    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0489    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -2047, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)490    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]491    ;492    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m2047493    ; GFX12: liveins: $vgpr0494    ; GFX12-NEXT: {{  $}}495    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0496    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -2047, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)497    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]498    %0:vgpr(p5) = COPY $vgpr0499    %1:vgpr(s32) = G_CONSTANT i32 -2047500    %2:vgpr(p5) = G_PTR_ADD %0, %1501    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)502    $vgpr0 = COPY %3503 504...505 506---507 508name: load_private_s32_from_1_gep_m2048509legalized:       true510regBankSelected: true511tracksRegLiveness: true512machineFunctionInfo:513  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3514  stackPtrOffsetReg: $sgpr32515 516body: |517  bb.0:518    liveins:  $vgpr0519 520    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m2048521    ; GFX6: liveins: $vgpr0522    ; GFX6-NEXT: {{  $}}523    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0524    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2048, implicit $exec525    ; GFX6-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 $exec526    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)527    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]528    ;529    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m2048530    ; GFX9: liveins: $vgpr0531    ; GFX9-NEXT: {{  $}}532    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0533    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -2048, implicit $exec534    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec535    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)536    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]537    ;538    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m2048539    ; GFX11: liveins: $vgpr0540    ; GFX11-NEXT: {{  $}}541    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0542    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -2048, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)543    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]544    ;545    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m2048546    ; GFX12: liveins: $vgpr0547    ; GFX12-NEXT: {{  $}}548    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0549    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -2048, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)550    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]551    %0:vgpr(p5) = COPY $vgpr0552    %1:vgpr(s32) = G_CONSTANT i32 -2048553    %2:vgpr(p5) = G_PTR_ADD %0, %1554    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)555    $vgpr0 = COPY %3556 557...558 559---560 561name: load_private_s32_from_1_gep_4095562legalized:       true563regBankSelected: true564tracksRegLiveness: true565machineFunctionInfo:566  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3567  stackPtrOffsetReg: $sgpr32568 569body: |570  bb.0:571    liveins:  $vgpr0572 573    ; GFX6-LABEL: name: load_private_s32_from_1_gep_4095574    ; GFX6: liveins: $vgpr0575    ; GFX6-NEXT: {{  $}}576    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0577    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4095, implicit $exec578    ; GFX6-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 $exec579    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)580    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]581    ;582    ; GFX9-LABEL: name: load_private_s32_from_1_gep_4095583    ; GFX9: liveins: $vgpr0584    ; GFX9-NEXT: {{  $}}585    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0586    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[COPY]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)587    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]588    ;589    ; GFX11-LABEL: name: load_private_s32_from_1_gep_4095590    ; GFX11: liveins: $vgpr0591    ; GFX11-NEXT: {{  $}}592    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0593    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4095, implicit $exec594    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec595    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)596    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]597    ;598    ; GFX12-LABEL: name: load_private_s32_from_1_gep_4095599    ; GFX12: liveins: $vgpr0600    ; GFX12-NEXT: {{  $}}601    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0602    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)603    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]604    %0:vgpr(p5) = COPY $vgpr0605    %1:vgpr(s32) = G_CONSTANT i32 4095606    %2:vgpr(p5) = G_PTR_ADD %0, %1607    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)608    $vgpr0 = COPY %3609 610...611 612---613 614name: load_private_s32_from_1_gep_4096615legalized:       true616regBankSelected: true617tracksRegLiveness: true618machineFunctionInfo:619  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3620  stackPtrOffsetReg: $sgpr32621 622body: |623  bb.0:624    liveins:  $vgpr0625 626    ; GFX6-LABEL: name: load_private_s32_from_1_gep_4096627    ; GFX6: liveins: $vgpr0628    ; GFX6-NEXT: {{  $}}629    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0630    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec631    ; GFX6-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 $exec632    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)633    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]634    ;635    ; GFX9-LABEL: name: load_private_s32_from_1_gep_4096636    ; GFX9: liveins: $vgpr0637    ; GFX9-NEXT: {{  $}}638    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0639    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec640    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec641    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)642    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]643    ;644    ; GFX11-LABEL: name: load_private_s32_from_1_gep_4096645    ; GFX11: liveins: $vgpr0646    ; GFX11-NEXT: {{  $}}647    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0648    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec649    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec650    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)651    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]652    ;653    ; GFX12-LABEL: name: load_private_s32_from_1_gep_4096654    ; GFX12: liveins: $vgpr0655    ; GFX12-NEXT: {{  $}}656    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0657    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 4096, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)658    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]659    %0:vgpr(p5) = COPY $vgpr0660    %1:vgpr(s32) = G_CONSTANT i32 4096661    %2:vgpr(p5) = G_PTR_ADD %0, %1662    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)663    $vgpr0 = COPY %3664 665...666 667---668 669name: load_private_s32_from_1_gep_m4095670legalized:       true671regBankSelected: true672tracksRegLiveness: true673machineFunctionInfo:674  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3675  stackPtrOffsetReg: $sgpr32676 677body: |678  bb.0:679    liveins:  $vgpr0680 681    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m4095682    ; GFX6: liveins: $vgpr0683    ; GFX6-NEXT: {{  $}}684    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0685    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -4095, implicit $exec686    ; GFX6-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 $exec687    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)688    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]689    ;690    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m4095691    ; GFX9: liveins: $vgpr0692    ; GFX9-NEXT: {{  $}}693    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0694    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -4095, implicit $exec695    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec696    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)697    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]698    ;699    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m4095700    ; GFX11: liveins: $vgpr0701    ; GFX11-NEXT: {{  $}}702    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0703    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)704    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]705    ;706    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m4095707    ; GFX12: liveins: $vgpr0708    ; GFX12-NEXT: {{  $}}709    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0710    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)711    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]712    %0:vgpr(p5) = COPY $vgpr0713    %1:vgpr(s32) = G_CONSTANT i32 -4095714    %2:vgpr(p5) = G_PTR_ADD %0, %1715    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)716    $vgpr0 = COPY %3717 718...719 720---721 722name: load_private_s32_from_1_gep_m4096723legalized:       true724regBankSelected: true725tracksRegLiveness: true726machineFunctionInfo:727  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3728  stackPtrOffsetReg: $sgpr32729 730body: |731  bb.0:732    liveins:  $vgpr0733 734    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m4096735    ; GFX6: liveins: $vgpr0736    ; GFX6-NEXT: {{  $}}737    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0738    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -4096, implicit $exec739    ; GFX6-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 $exec740    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)741    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]742    ;743    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m4096744    ; GFX9: liveins: $vgpr0745    ; GFX9-NEXT: {{  $}}746    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0747    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -4096, implicit $exec748    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec749    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)750    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]751    ;752    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m4096753    ; GFX11: liveins: $vgpr0754    ; GFX11-NEXT: {{  $}}755    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0756    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -4096, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)757    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]758    ;759    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m4096760    ; GFX12: liveins: $vgpr0761    ; GFX12-NEXT: {{  $}}762    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0763    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -4096, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)764    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]765    %0:vgpr(p5) = COPY $vgpr0766    %1:vgpr(s32) = G_CONSTANT i32 -4096767    %2:vgpr(p5) = G_PTR_ADD %0, %1768    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)769    $vgpr0 = COPY %3770 771...772 773---774 775name: load_private_s32_from_1_gep_8191776legalized:       true777regBankSelected: true778tracksRegLiveness: true779machineFunctionInfo:780  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3781  stackPtrOffsetReg: $sgpr32782 783body: |784  bb.0:785    liveins:  $vgpr0786 787    ; GFX6-LABEL: name: load_private_s32_from_1_gep_8191788    ; GFX6: liveins: $vgpr0789    ; GFX6-NEXT: {{  $}}790    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0791    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8191, implicit $exec792    ; GFX6-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 $exec793    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)794    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]795    ;796    ; GFX9-LABEL: name: load_private_s32_from_1_gep_8191797    ; GFX9: liveins: $vgpr0798    ; GFX9-NEXT: {{  $}}799    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0800    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8191, implicit $exec801    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec802    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)803    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]804    ;805    ; GFX11-LABEL: name: load_private_s32_from_1_gep_8191806    ; GFX11: liveins: $vgpr0807    ; GFX11-NEXT: {{  $}}808    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0809    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8191, implicit $exec810    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec811    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)812    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]813    ;814    ; GFX12-LABEL: name: load_private_s32_from_1_gep_8191815    ; GFX12: liveins: $vgpr0816    ; GFX12-NEXT: {{  $}}817    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0818    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 8191, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)819    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]820    %0:vgpr(p5) = COPY $vgpr0821    %1:vgpr(s32) = G_CONSTANT i32 8191822    %2:vgpr(p5) = G_PTR_ADD %0, %1823    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)824    $vgpr0 = COPY %3825 826...827 828---829 830name: load_private_s32_from_1_gep_8192831legalized:       true832regBankSelected: true833tracksRegLiveness: true834machineFunctionInfo:835  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3836  stackPtrOffsetReg: $sgpr32837 838body: |839  bb.0:840    liveins:  $vgpr0841 842    ; GFX6-LABEL: name: load_private_s32_from_1_gep_8192843    ; GFX6: liveins: $vgpr0844    ; GFX6-NEXT: {{  $}}845    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0846    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8192, implicit $exec847    ; GFX6-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 $exec848    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)849    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]850    ;851    ; GFX9-LABEL: name: load_private_s32_from_1_gep_8192852    ; GFX9: liveins: $vgpr0853    ; GFX9-NEXT: {{  $}}854    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0855    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8192, implicit $exec856    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec857    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)858    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]859    ;860    ; GFX11-LABEL: name: load_private_s32_from_1_gep_8192861    ; GFX11: liveins: $vgpr0862    ; GFX11-NEXT: {{  $}}863    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0864    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8192, implicit $exec865    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec866    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)867    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]868    ;869    ; GFX12-LABEL: name: load_private_s32_from_1_gep_8192870    ; GFX12: liveins: $vgpr0871    ; GFX12-NEXT: {{  $}}872    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0873    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 8192, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)874    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]875    %0:vgpr(p5) = COPY $vgpr0876    %1:vgpr(s32) = G_CONSTANT i32 8192877    %2:vgpr(p5) = G_PTR_ADD %0, %1878    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)879    $vgpr0 = COPY %3880 881...882 883---884 885name: load_private_s32_from_1_gep_m8191886legalized:       true887regBankSelected: true888tracksRegLiveness: true889machineFunctionInfo:890  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3891  stackPtrOffsetReg: $sgpr32892 893body: |894  bb.0:895    liveins:  $vgpr0896 897    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m8191898    ; GFX6: liveins: $vgpr0899    ; GFX6-NEXT: {{  $}}900    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0901    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8191, implicit $exec902    ; GFX6-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 $exec903    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)904    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]905    ;906    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m8191907    ; GFX9: liveins: $vgpr0908    ; GFX9-NEXT: {{  $}}909    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0910    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8191, implicit $exec911    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec912    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)913    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]914    ;915    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m8191916    ; GFX11: liveins: $vgpr0917    ; GFX11-NEXT: {{  $}}918    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0919    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8191, implicit $exec920    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec921    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)922    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]923    ;924    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m8191925    ; GFX12: liveins: $vgpr0926    ; GFX12-NEXT: {{  $}}927    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0928    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -8191, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)929    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]930    %0:vgpr(p5) = COPY $vgpr0931    %1:vgpr(s32) = G_CONSTANT i32 -8191932    %2:vgpr(p5) = G_PTR_ADD %0, %1933    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)934    $vgpr0 = COPY %3935 936...937 938---939 940name: load_private_s32_from_1_gep_m8192941legalized:       true942regBankSelected: true943tracksRegLiveness: true944machineFunctionInfo:945  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3946  stackPtrOffsetReg: $sgpr32947 948body: |949  bb.0:950    liveins:  $vgpr0951 952    ; GFX6-LABEL: name: load_private_s32_from_1_gep_m8192953    ; GFX6: liveins: $vgpr0954    ; GFX6-NEXT: {{  $}}955    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0956    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8192, implicit $exec957    ; GFX6-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 $exec958    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)959    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]960    ;961    ; GFX9-LABEL: name: load_private_s32_from_1_gep_m8192962    ; GFX9: liveins: $vgpr0963    ; GFX9-NEXT: {{  $}}964    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0965    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8192, implicit $exec966    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec967    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)968    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]969    ;970    ; GFX11-LABEL: name: load_private_s32_from_1_gep_m8192971    ; GFX11: liveins: $vgpr0972    ; GFX11-NEXT: {{  $}}973    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0974    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8192, implicit $exec975    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec976    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)977    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]978    ;979    ; GFX12-LABEL: name: load_private_s32_from_1_gep_m8192980    ; GFX12: liveins: $vgpr0981    ; GFX12-NEXT: {{  $}}982    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0983    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -8192, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)984    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]985    %0:vgpr(p5) = COPY $vgpr0986    %1:vgpr(s32) = G_CONSTANT i32 -8192987    %2:vgpr(p5) = G_PTR_ADD %0, %1988    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)989    $vgpr0 = COPY %3990 991...992 993---994 995name: load_private_s32_from_1_gep_24bit_max996legalized:       true997regBankSelected: true998tracksRegLiveness: true999machineFunctionInfo:1000  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31001  stackPtrOffsetReg: $sgpr321002 1003body: |1004  bb.0:1005    liveins:  $vgpr01006 1007    ; GFX6-LABEL: name: load_private_s32_from_1_gep_24bit_max1008    ; GFX6: liveins: $vgpr01009    ; GFX6-NEXT: {{  $}}1010    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01011    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8388607, implicit $exec1012    ; GFX6-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 $exec1013    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1014    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1015    ;1016    ; GFX9-LABEL: name: load_private_s32_from_1_gep_24bit_max1017    ; GFX9: liveins: $vgpr01018    ; GFX9-NEXT: {{  $}}1019    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01020    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8388607, implicit $exec1021    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1022    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1023    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1024    ;1025    ; GFX11-LABEL: name: load_private_s32_from_1_gep_24bit_max1026    ; GFX11: liveins: $vgpr01027    ; GFX11-NEXT: {{  $}}1028    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01029    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 8388607, implicit $exec1030    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1031    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1032    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1033    ;1034    ; GFX12-LABEL: name: load_private_s32_from_1_gep_24bit_max1035    ; GFX12: liveins: $vgpr01036    ; GFX12-NEXT: {{  $}}1037    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01038    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], 8388607, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1039    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1040    %0:vgpr(p5) = COPY $vgpr01041    %1:vgpr(s32) = G_CONSTANT i32 83886071042    %2:vgpr(p5) = G_PTR_ADD %0, %11043    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1044    $vgpr0 = COPY %31045 1046...1047 1048---1049 1050name: load_private_s32_from_1_gep_2x_24bit_max1051legalized:       true1052regBankSelected: true1053tracksRegLiveness: true1054machineFunctionInfo:1055  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31056  stackPtrOffsetReg: $sgpr321057 1058body: |1059  bb.0:1060    liveins:  $vgpr01061 1062    ; GFX6-LABEL: name: load_private_s32_from_1_gep_2x_24bit_max1063    ; GFX6: liveins: $vgpr01064    ; GFX6-NEXT: {{  $}}1065    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01066    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 16777214, implicit $exec1067    ; GFX6-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 $exec1068    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1069    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1070    ;1071    ; GFX9-LABEL: name: load_private_s32_from_1_gep_2x_24bit_max1072    ; GFX9: liveins: $vgpr01073    ; GFX9-NEXT: {{  $}}1074    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01075    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 16777214, implicit $exec1076    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1077    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1078    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1079    ;1080    ; GFX11-LABEL: name: load_private_s32_from_1_gep_2x_24bit_max1081    ; GFX11: liveins: $vgpr01082    ; GFX11-NEXT: {{  $}}1083    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01084    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 16777214, implicit $exec1085    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1086    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1087    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1088    ;1089    ; GFX12-LABEL: name: load_private_s32_from_1_gep_2x_24bit_max1090    ; GFX12: liveins: $vgpr01091    ; GFX12-NEXT: {{  $}}1092    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01093    ; GFX12-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 16777214, implicit $exec1094    ; GFX12-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1095    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1096    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1097    %0:vgpr(p5) = COPY $vgpr01098    %1:vgpr(s32) = G_CONSTANT i32 167772141099    %2:vgpr(p5) = G_PTR_ADD %0, %11100    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1101    $vgpr0 = COPY %31102 1103...1104 1105---1106 1107name: load_private_s32_from_1_gep_24bit_min1108legalized:       true1109regBankSelected: true1110tracksRegLiveness: true1111machineFunctionInfo:1112  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31113  stackPtrOffsetReg: $sgpr321114 1115body: |1116  bb.0:1117    liveins:  $vgpr01118 1119    ; GFX6-LABEL: name: load_private_s32_from_1_gep_24bit_min1120    ; GFX6: liveins: $vgpr01121    ; GFX6-NEXT: {{  $}}1122    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01123    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8388608, implicit $exec1124    ; GFX6-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 $exec1125    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1126    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1127    ;1128    ; GFX9-LABEL: name: load_private_s32_from_1_gep_24bit_min1129    ; GFX9: liveins: $vgpr01130    ; GFX9-NEXT: {{  $}}1131    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01132    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8388608, implicit $exec1133    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1134    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1135    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1136    ;1137    ; GFX11-LABEL: name: load_private_s32_from_1_gep_24bit_min1138    ; GFX11: liveins: $vgpr01139    ; GFX11-NEXT: {{  $}}1140    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01141    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -8388608, implicit $exec1142    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1143    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1144    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1145    ;1146    ; GFX12-LABEL: name: load_private_s32_from_1_gep_24bit_min1147    ; GFX12: liveins: $vgpr01148    ; GFX12-NEXT: {{  $}}1149    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01150    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[COPY]], -8388608, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1151    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1152    %0:vgpr(p5) = COPY $vgpr01153    %1:vgpr(s32) = G_CONSTANT i32 -83886081154    %2:vgpr(p5) = G_PTR_ADD %0, %11155    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1156    $vgpr0 = COPY %31157 1158...1159 1160---1161 1162name: load_private_s32_from_1_gep_2x_24bit_min1163legalized:       true1164regBankSelected: true1165tracksRegLiveness: true1166machineFunctionInfo:1167  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31168  stackPtrOffsetReg: $sgpr321169 1170body: |1171  bb.0:1172    liveins:  $vgpr01173 1174    ; GFX6-LABEL: name: load_private_s32_from_1_gep_2x_24bit_min1175    ; GFX6: liveins: $vgpr01176    ; GFX6-NEXT: {{  $}}1177    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01178    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -16777215, implicit $exec1179    ; GFX6-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 $exec1180    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1181    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1182    ;1183    ; GFX9-LABEL: name: load_private_s32_from_1_gep_2x_24bit_min1184    ; GFX9: liveins: $vgpr01185    ; GFX9-NEXT: {{  $}}1186    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01187    ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -16777215, implicit $exec1188    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1189    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1190    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1191    ;1192    ; GFX11-LABEL: name: load_private_s32_from_1_gep_2x_24bit_min1193    ; GFX11: liveins: $vgpr01194    ; GFX11-NEXT: {{  $}}1195    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01196    ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -16777215, implicit $exec1197    ; GFX11-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1198    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1199    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1200    ;1201    ; GFX12-LABEL: name: load_private_s32_from_1_gep_2x_24bit_min1202    ; GFX12: liveins: $vgpr01203    ; GFX12-NEXT: {{  $}}1204    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01205    ; GFX12-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -16777215, implicit $exec1206    ; GFX12-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1207    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_ADD_U32_e64_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1208    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1209    %0:vgpr(p5) = COPY $vgpr01210    %1:vgpr(s32) = G_CONSTANT i32 -167772151211    %2:vgpr(p5) = G_PTR_ADD %0, %11212    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1213    $vgpr0 = COPY %31214 1215...1216 1217---1218 1219name: load_private_s32_from_4_constant_01220legalized:       true1221regBankSelected: true1222tracksRegLiveness: true1223machineFunctionInfo:1224  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31225  stackPtrOffsetReg: $sgpr321226 1227body: |1228  bb.0:1229 1230    ; GFX6-LABEL: name: load_private_s32_from_4_constant_01231    ; GFX6: [[BUFFER_LOAD_DWORD_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)1232    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFSET]]1233    ;1234    ; GFX9-LABEL: name: load_private_s32_from_4_constant_01235    ; GFX9: [[BUFFER_LOAD_DWORD_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)1236    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFSET]]1237    ;1238    ; GFX11-LABEL: name: load_private_s32_from_4_constant_01239    ; GFX11: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec1240    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1241    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]1242    ;1243    ; GFX12-LABEL: name: load_private_s32_from_4_constant_01244    ; GFX12: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec1245    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1246    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]1247    %0:vgpr(p5) = G_CONSTANT i32 01248    %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 5)1249    $vgpr0 = COPY %11250 1251...1252 1253---1254 1255name: load_private_s32_from_4_constant_sgpr_161256legalized:       true1257regBankSelected: true1258tracksRegLiveness: true1259machineFunctionInfo:1260  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31261  stackPtrOffsetReg: $sgpr321262 1263body: |1264  bb.0:1265 1266    ; GFX6-LABEL: name: load_private_s32_from_4_constant_sgpr_161267    ; GFX6: [[BUFFER_LOAD_DWORD_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 16, 0, 0, implicit $exec :: (load (s32), addrspace 5)1268    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFSET]]1269    ;1270    ; GFX9-LABEL: name: load_private_s32_from_4_constant_sgpr_161271    ; GFX9: [[BUFFER_LOAD_DWORD_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 16, 0, 0, implicit $exec :: (load (s32), addrspace 5)1272    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFSET]]1273    ;1274    ; GFX11-LABEL: name: load_private_s32_from_4_constant_sgpr_161275    ; GFX11: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 161276    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR [[S_MOV_B32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1277    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD_SADDR]]1278    ;1279    ; GFX12-LABEL: name: load_private_s32_from_4_constant_sgpr_161280    ; GFX12: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 161281    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR [[S_MOV_B32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1282    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD_SADDR]]1283    %0:sgpr(p5) = G_CONSTANT i32 161284    %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 5)1285    $vgpr0 = COPY %11286 1287...1288 1289---1290 1291name: load_private_s32_from_1_constant_40951292legalized:       true1293regBankSelected: true1294tracksRegLiveness: true1295machineFunctionInfo:1296  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31297  stackPtrOffsetReg: $sgpr321298 1299body: |1300  bb.0:1301 1302    ; GFX6-LABEL: name: load_private_s32_from_1_constant_40951303    ; GFX6: [[BUFFER_LOAD_UBYTE_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1304    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFSET]]1305    ;1306    ; GFX9-LABEL: name: load_private_s32_from_1_constant_40951307    ; GFX9: [[BUFFER_LOAD_UBYTE_OFFSET:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1308    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFSET]]1309    ;1310    ; GFX11-LABEL: name: load_private_s32_from_1_constant_40951311    ; GFX11: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4095, implicit $exec1312    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1313    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1314    ;1315    ; GFX12-LABEL: name: load_private_s32_from_1_constant_40951316    ; GFX12: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4095, implicit $exec1317    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1318    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1319    %0:vgpr(p5) = G_CONSTANT i32 40951320    %1:vgpr(s32) = G_LOAD %0 :: (load (s8), align 1, addrspace 5)1321    $vgpr0 = COPY %11322 1323...1324 1325---1326 1327name: load_private_s32_from_1_constant_40961328legalized:       true1329regBankSelected: true1330tracksRegLiveness: true1331machineFunctionInfo:1332  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31333  stackPtrOffsetReg: $sgpr321334 1335body: |1336  bb.0:1337 1338    ; GFX6-LABEL: name: load_private_s32_from_1_constant_40961339    ; GFX6: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1340    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_MOV_B32_e32_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1341    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1342    ;1343    ; GFX9-LABEL: name: load_private_s32_from_1_constant_40961344    ; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1345    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_MOV_B32_e32_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1346    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1347    ;1348    ; GFX11-LABEL: name: load_private_s32_from_1_constant_40961349    ; GFX11: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1350    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1351    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1352    ;1353    ; GFX12-LABEL: name: load_private_s32_from_1_constant_40961354    ; GFX12: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1355    ; GFX12-NEXT: [[SCRATCH_LOAD_UBYTE:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1356    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE]]1357    %0:vgpr(p5) = G_CONSTANT i32 40961358    %1:vgpr(s32) = G_LOAD %0 :: (load (s8), align 1, addrspace 5)1359    $vgpr0 = COPY %11360 1361...1362 1363---1364 1365name: load_private_s32_from_fi1366legalized:       true1367regBankSelected: true1368tracksRegLiveness: true1369machineFunctionInfo:1370  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31371  stackPtrOffsetReg: $sgpr321372stack:1373  - { id: 0, size: 4, alignment: 4 }1374 1375body: |1376  bb.0:1377 1378    ; GFX6-LABEL: name: load_private_s32_from_fi1379    ; GFX6: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)1380    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]1381    ;1382    ; GFX9-LABEL: name: load_private_s32_from_fi1383    ; GFX9: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s32), addrspace 5)1384    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]1385    ;1386    ; GFX11-LABEL: name: load_private_s32_from_fi1387    ; GFX11: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1388    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD_SADDR]]1389    ;1390    ; GFX12-LABEL: name: load_private_s32_from_fi1391    ; GFX12: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1392    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD_SADDR]]1393    %0:vgpr(p5) = G_FRAME_INDEX %stack.01394    %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 5)1395    $vgpr0 = COPY %11396 1397...1398 1399---1400name: load_private_s32_from_1_fi_offset_40951401legalized:       true1402regBankSelected: true1403tracksRegLiveness: true1404machineFunctionInfo:1405  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31406  stackPtrOffsetReg: $sgpr321407stack:1408  - { id: 0, size: 4096, alignment: 4 }1409 1410body: |1411  bb.0:1412 1413    ; GFX6-LABEL: name: load_private_s32_from_1_fi_offset_40951414    ; GFX6: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1415    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1416    ;1417    ; GFX9-LABEL: name: load_private_s32_from_1_fi_offset_40951418    ; GFX9: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1419    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1420    ;1421    ; GFX11-LABEL: name: load_private_s32_from_1_fi_offset_40951422    ; GFX11: [[SCRATCH_LOAD_UBYTE_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SADDR %stack.0, 4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1423    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SADDR]]1424    ;1425    ; GFX12-LABEL: name: load_private_s32_from_1_fi_offset_40951426    ; GFX12: [[SCRATCH_LOAD_UBYTE_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SADDR %stack.0, 4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1427    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SADDR]]1428    %0:vgpr(p5) = G_FRAME_INDEX %stack.01429    %1:vgpr(s32) = G_CONSTANT i32 40951430    %2:vgpr(p5) = G_PTR_ADD %0, %11431    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1432    $vgpr0 = COPY %31433 1434...1435 1436# Have to hack around the copy of the constant to VGPR1437---1438name: load_private_s32_from_1_fi_offset_sgpr_40951439legalized:       true1440regBankSelected: true1441tracksRegLiveness: true1442machineFunctionInfo:1443  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31444  stackPtrOffsetReg: $sgpr321445stack:1446  - { id: 0, size: 4096, alignment: 4 }1447 1448body: |1449  bb.0:1450 1451    ; GFX6-LABEL: name: load_private_s32_from_1_fi_offset_sgpr_40951452    ; GFX6: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1453    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1454    ;1455    ; GFX9-LABEL: name: load_private_s32_from_1_fi_offset_sgpr_40951456    ; GFX9: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN %stack.0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 4095, 0, 0, implicit $exec :: (load (s8), addrspace 5)1457    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1458    ;1459    ; GFX11-LABEL: name: load_private_s32_from_1_fi_offset_sgpr_40951460    ; GFX11: [[SCRATCH_LOAD_UBYTE_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SADDR %stack.0, 4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1461    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SADDR]]1462    ;1463    ; GFX12-LABEL: name: load_private_s32_from_1_fi_offset_sgpr_40951464    ; GFX12: [[SCRATCH_LOAD_UBYTE_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SADDR %stack.0, 4095, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1465    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SADDR]]1466    %0:vgpr(p5) = G_FRAME_INDEX %stack.01467    %1:sgpr(s32) = G_CONSTANT i32 40951468    %2:vgpr(s32) = COPY %11469    %3:vgpr(p5) = G_PTR_ADD %0, %21470    %4:vgpr(s32) = G_LOAD %3 :: (load (s8), align 1, addrspace 5)1471    $vgpr0 = COPY %41472 1473...1474 1475---1476 1477name: load_private_s32_from_1_fi_offset_40961478legalized:       true1479regBankSelected: true1480tracksRegLiveness: true1481machineFunctionInfo:1482  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31483  stackPtrOffsetReg: $sgpr321484stack:1485  - { id: 0, size: 8192, alignment: 4 }1486 1487body: |1488  bb.0:1489 1490    ; GFX6-LABEL: name: load_private_s32_from_1_fi_offset_40961491    ; GFX6: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec1492    ; GFX6-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1493    ; GFX6-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 [[V_MOV_B32_e32_]], [[V_MOV_B32_e32_1]], 0, implicit $exec1494    ; GFX6-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_CO_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1495    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1496    ;1497    ; GFX9-LABEL: name: load_private_s32_from_1_fi_offset_40961498    ; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec1499    ; GFX9-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1500    ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], [[V_MOV_B32_e32_1]], 0, implicit $exec1501    ; GFX9-NEXT: [[BUFFER_LOAD_UBYTE_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_UBYTE_OFFEN [[V_ADD_U32_e64_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, implicit $exec :: (load (s8), addrspace 5)1502    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_UBYTE_OFFEN]]1503    ;1504    ; GFX11-LABEL: name: load_private_s32_from_1_fi_offset_40961505    ; GFX11: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4096, implicit $exec1506    ; GFX11-NEXT: [[SCRATCH_LOAD_UBYTE_SVS:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SVS [[V_MOV_B32_e32_]], %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1507    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SVS]]1508    ;1509    ; GFX12-LABEL: name: load_private_s32_from_1_fi_offset_40961510    ; GFX12: [[SCRATCH_LOAD_UBYTE_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_UBYTE_SADDR %stack.0, 4096, 0, implicit $exec, implicit $flat_scr :: (load (s8), addrspace 5)1511    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_UBYTE_SADDR]]1512    %0:vgpr(p5) = G_FRAME_INDEX %stack.01513    %1:vgpr(s32) = G_CONSTANT i32 40961514    %2:vgpr(p5) = G_PTR_ADD %0, %11515    %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 5)1516    $vgpr0 = COPY %31517 1518...1519 1520# Should not fold offset if this is a null dereference.1521---1522 1523name: load_private_s32_from_neg11524legalized:       true1525regBankSelected: true1526tracksRegLiveness: true1527machineFunctionInfo:1528  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr31529  stackPtrOffsetReg: $sgpr321530 1531body: |1532  bb.0:1533 1534    ; GFX6-LABEL: name: load_private_s32_from_neg11535    ; GFX6: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec1536    ; GFX6-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[V_MOV_B32_e32_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, -1, 0, 0, implicit $exec :: (load (s32), addrspace 5)1537    ; GFX6-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]1538    ;1539    ; GFX9-LABEL: name: load_private_s32_from_neg11540    ; GFX9: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec1541    ; GFX9-NEXT: [[BUFFER_LOAD_DWORD_OFFEN:%[0-9]+]]:vgpr_32 = BUFFER_LOAD_DWORD_OFFEN [[V_MOV_B32_e32_]], $sgpr0_sgpr1_sgpr2_sgpr3, 0, -1, 0, 0, implicit $exec :: (load (s32), addrspace 5)1542    ; GFX9-NEXT: $vgpr0 = COPY [[BUFFER_LOAD_DWORD_OFFEN]]1543    ;1544    ; GFX11-LABEL: name: load_private_s32_from_neg11545    ; GFX11: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec1546    ; GFX11-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1547    ; GFX11-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]1548    ;1549    ; GFX12-LABEL: name: load_private_s32_from_neg11550    ; GFX12: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec1551    ; GFX12-NEXT: [[SCRATCH_LOAD_DWORD:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD [[V_MOV_B32_e32_]], 0, 0, implicit $exec, implicit $flat_scr :: (load (s32), addrspace 5)1552    ; GFX12-NEXT: $vgpr0 = COPY [[SCRATCH_LOAD_DWORD]]1553    %0:vgpr(p5) = G_CONSTANT i32 -11554    %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 5)1555    $vgpr0 = COPY %11556 1557...1558