brintos

brintos / llvm-project-archived public Read only

0
0
Text · 116.0 KiB · 1ee4f9e Raw
1530 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX12 %s3 4---5name: gfx12_tbuffer_load_x_xyz6body:             |7  bb.0.entry:8    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xyz9    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr010    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr111    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr212    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr313    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub314    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)15    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub016    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_96 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub1_sub2_sub317    %0:sgpr_32 = COPY $sgpr018    %1:sgpr_32 = COPY $sgpr119    %2:sgpr_32 = COPY $sgpr220    %3:sgpr_32 = COPY $sgpr321    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub322    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)23    %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 60, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4)24...25---26 27name: gfx12_tbuffer_load_xyz_x28body:             |29  bb.0.entry:30    ; GFX12-LABEL: name: gfx12_tbuffer_load_xyz_x31    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr032    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr133    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr234    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr335    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub336    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)37    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_96 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub0_sub1_sub238    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub339    %0:sgpr_32 = COPY $sgpr040    %1:sgpr_32 = COPY $sgpr141    %2:sgpr_32 = COPY $sgpr242    %3:sgpr_32 = COPY $sgpr343    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub344    %7:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)45    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4)46...47---48 49name: gfx12_tbuffer_load_xy_xy50body:             |51  bb.0.entry:52    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy53    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr054    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr155    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr256    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr357    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub358    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)59    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub0_sub160    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub2_sub361    %0:sgpr_32 = COPY $sgpr062    %1:sgpr_32 = COPY $sgpr163    %2:sgpr_32 = COPY $sgpr264    %3:sgpr_32 = COPY $sgpr365    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub366    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4)67    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4)68...69---70 71name: gfx12_tbuffer_load_x_xy72body:             |73  bb.0.entry:74    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xy75    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr076    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr177    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr278    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr379    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub380    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)81    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub082    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub1_sub283    %0:sgpr_32 = COPY $sgpr084    %1:sgpr_32 = COPY $sgpr185    %2:sgpr_32 = COPY $sgpr286    %3:sgpr_32 = COPY $sgpr387    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub388    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)89    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4)90...91---92 93name: gfx12_tbuffer_load_xy_x94body:             |95  bb.0.entry:96    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_x97    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr098    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr199    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2100    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3101    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3102    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)103    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub0_sub1104    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub2105    %0:sgpr_32 = COPY $sgpr0106    %1:sgpr_32 = COPY $sgpr1107    %2:sgpr_32 = COPY $sgpr2108    %3:sgpr_32 = COPY $sgpr3109    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3110    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4)111    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)112...113---114 115name: gfx12_tbuffer_load_x_x116body:             |117  bb.0.entry:118    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x119    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0120    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1121    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2122    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3123    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3124    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)125    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0126    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1127    %0:sgpr_32 = COPY $sgpr0128    %1:sgpr_32 = COPY $sgpr1129    %2:sgpr_32 = COPY $sgpr2130    %3:sgpr_32 = COPY $sgpr3131    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3132    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)133    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)134...135---136 137name: gfx12_tbuffer_load_x_x_format_32_32_32_32138body:             |139  bb.0.entry:140    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_format_32_32_32_32141    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0142    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1143    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2144    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3145    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3146    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)147    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0148    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1149    %0:sgpr_32 = COPY $sgpr0150    %1:sgpr_32 = COPY $sgpr1151    %2:sgpr_32 = COPY $sgpr2152    %3:sgpr_32 = COPY $sgpr3153    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3154    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)155    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 63, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)156...157---158 159name: gfx12_tbuffer_load_float_32160body:             |161  bb.0.entry:162    ; GFX12-LABEL: name: gfx12_tbuffer_load_float_32163    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0164    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1165    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2166    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3167    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3168    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)169    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0170    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1171    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 16, 63, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)172    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub0_sub1_sub2173    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub3174    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vreg_64 = COPY [[COPY6]].sub0_sub1175    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:vgpr_32 = COPY killed [[COPY6]].sub2176    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:vgpr_32 = COPY [[COPY8]].sub0177    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:vgpr_32 = COPY killed [[COPY8]].sub1178    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 36, 60, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)179    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub0_sub1180    ; GFX12-NEXT: [[COPY13:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub2181    ; GFX12-NEXT: [[COPY14:%[0-9]+]]:vgpr_32 = COPY [[COPY12]].sub0182    ; GFX12-NEXT: [[COPY15:%[0-9]+]]:vgpr_32 = COPY killed [[COPY12]].sub1183    %0:sgpr_32 = COPY $sgpr0184    %1:sgpr_32 = COPY $sgpr1185    %2:sgpr_32 = COPY $sgpr2186    %3:sgpr_32 = COPY $sgpr3187    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3188    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)189    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)190    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)191    %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 20, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)192    %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)193    %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 28, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)194    %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)195    %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 40, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)196    %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)197...198---199 200name: gfx12_tbuffer_load_sint_32201body:             |202  bb.0.entry:203    ; GFX12-LABEL: name: gfx12_tbuffer_load_sint_32204    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0205    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1206    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2207    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3208    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3209    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 49, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)210    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0211    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1212    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 16, 62, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)213    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub0_sub1_sub2214    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub3215    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vreg_64 = COPY [[COPY6]].sub0_sub1216    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:vgpr_32 = COPY killed [[COPY6]].sub2217    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:vgpr_32 = COPY [[COPY8]].sub0218    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:vgpr_32 = COPY killed [[COPY8]].sub1219    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 36, 59, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)220    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub0_sub1221    ; GFX12-NEXT: [[COPY13:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub2222    ; GFX12-NEXT: [[COPY14:%[0-9]+]]:vgpr_32 = COPY [[COPY12]].sub0223    ; GFX12-NEXT: [[COPY15:%[0-9]+]]:vgpr_32 = COPY killed [[COPY12]].sub1224    %0:sgpr_32 = COPY $sgpr0225    %1:sgpr_32 = COPY $sgpr1226    %2:sgpr_32 = COPY $sgpr2227    %3:sgpr_32 = COPY $sgpr3228    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3229    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)230    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)231    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)232    %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)233    %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 24, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)234    %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)235    %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 36, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)236    %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)237    %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 44, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)238...239---240 241name: gfx12_tbuffer_load_uint_32242body:             |243  bb.0.entry:244    ; GFX12-LABEL: name: gfx12_tbuffer_load_uint_32245    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0246    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1247    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2248    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3249    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3250    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 48, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)251    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0252    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1253    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 16, 61, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4)254    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub0_sub1_sub2255    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_OFFSET]].sub3256    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vreg_64 = COPY [[COPY6]].sub0_sub1257    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:vgpr_32 = COPY killed [[COPY6]].sub2258    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:vgpr_32 = COPY [[COPY8]].sub0259    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:vgpr_32 = COPY killed [[COPY8]].sub1260    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 36, 58, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)261    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub0_sub1262    ; GFX12-NEXT: [[COPY13:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_OFFSET]].sub2263    ; GFX12-NEXT: [[COPY14:%[0-9]+]]:vgpr_32 = COPY [[COPY12]].sub0264    ; GFX12-NEXT: [[COPY15:%[0-9]+]]:vgpr_32 = COPY killed [[COPY12]].sub1265    %0:sgpr_32 = COPY $sgpr0266    %1:sgpr_32 = COPY $sgpr1267    %2:sgpr_32 = COPY $sgpr2268    %3:sgpr_32 = COPY $sgpr3269    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3270    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)271    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)272    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)273    %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 20, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)274    %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 24, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)275    %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 28, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)276    %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 36, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)277    %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 40, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)278    %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 44, 20, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)279...280---281 282name: gfx12_tbuffer_load_not_merged_data_format_mismatch283body:             |284  bb.0.entry:285    ; GFX12-LABEL: name: gfx12_tbuffer_load_not_merged_data_format_mismatch286    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0287    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1288    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2289    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3290    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3291    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)292    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET1:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 8, 13, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)293    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET2:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)294    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET3:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 20, 13, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)295    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET4:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)296    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET5:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 28, 13, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)297    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET6:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)298    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET7:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 40, 13, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)299    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET8:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)300    %0:sgpr_32 = COPY $sgpr0301    %1:sgpr_32 = COPY $sgpr1302    %2:sgpr_32 = COPY $sgpr2303    %3:sgpr_32 = COPY $sgpr3304    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3305    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)306    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 13, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)307    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)308    %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 20, 13, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)309    %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)310    %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 28, 13, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)311    %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)312    %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 40, 13, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)313    %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)314...315---316 317name: gfx12_tbuffer_load_not_merged_num_format_mismatch318body:             |319  bb.0.entry:320    ; GFX12-LABEL: name: gfx12_tbuffer_load_not_merged_num_format_mismatch321    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0322    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1323    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2324    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3325    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3326    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)327    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET1:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)328    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET2:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)329    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET3:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)330    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET4:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)331    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET5:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)332    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET6:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)333    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET7:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)334    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET8:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)335    %0:sgpr_32 = COPY $sgpr0336    %1:sgpr_32 = COPY $sgpr1337    %2:sgpr_32 = COPY $sgpr2338    %3:sgpr_32 = COPY $sgpr3339    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3340    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)341    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)342    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)343    %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)344    %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)345    %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)346    %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)347    %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)348    %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)349...350---351 352name: gfx12_tbuffer_store_x_xyz353body:             |354  bb.0.entry:355    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3356    ; GFX12-LABEL: name: gfx12_tbuffer_store_x_xyz357    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3358    ; GFX12-NEXT: {{  $}}359    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3360    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2361    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1362    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0363    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3364    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2365    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1366    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0367    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3368    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1, [[COPY1]], %subreg.sub2369    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[REG_SEQUENCE1]], %subreg.sub1_sub2_sub3370    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE2]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)371    %7:vgpr_32 = COPY $vgpr3372    %6:vgpr_32 = COPY $vgpr2373    %5:vgpr_32 = COPY $vgpr1374    %4:vgpr_32 = COPY $vgpr0375    %3:sgpr_32 = COPY $sgpr3376    %2:sgpr_32 = COPY $sgpr2377    %1:sgpr_32 = COPY $sgpr1378    %0:sgpr_32 = COPY $sgpr0379    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3380    %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2381    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)382    TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact %14:vreg_96, %13:sgpr_128, $sgpr_null, 8, 60, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4)383...384---385 386name: gfx12_tbuffer_store_xyz_x387body:             |388  bb.0.entry:389    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3390    ; GFX12-LABEL: name: gfx12_tbuffer_store_xyz_x391    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3392    ; GFX12-NEXT: {{  $}}393    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3394    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2395    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1396    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0397    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3398    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2399    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1400    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0401    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3402    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1, [[COPY1]], %subreg.sub2403    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[REG_SEQUENCE1]], %subreg.sub0_sub1_sub2, [[COPY]], %subreg.sub3404    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE2]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)405    %7:vgpr_32 = COPY $vgpr3406    %6:vgpr_32 = COPY $vgpr2407    %5:vgpr_32 = COPY $vgpr1408    %4:vgpr_32 = COPY $vgpr0409    %3:sgpr_32 = COPY $sgpr3410    %2:sgpr_32 = COPY $sgpr2411    %1:sgpr_32 = COPY $sgpr1412    %0:sgpr_32 = COPY $sgpr0413    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3414    %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2415    TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact %14:vreg_96, %13:sgpr_128, $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4)416    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)417...418---419 420name: gfx12_tbuffer_store_xy_xy421body:             |422  bb.0.entry:423    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3424    ; GFX12-LABEL: name: gfx12_tbuffer_store_xy_xy425    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3426    ; GFX12-NEXT: {{  $}}427    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3428    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2429    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1430    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0431    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3432    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2433    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1434    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0435    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3436    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1437    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1438    ; GFX12-NEXT: [[REG_SEQUENCE3:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[REG_SEQUENCE1]], %subreg.sub0_sub1, [[REG_SEQUENCE2]], %subreg.sub2_sub3439    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE3]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)440    %7:vgpr_32 = COPY $vgpr3441    %6:vgpr_32 = COPY $vgpr2442    %5:vgpr_32 = COPY $vgpr1443    %4:vgpr_32 = COPY $vgpr0444    %3:sgpr_32 = COPY $sgpr3445    %2:sgpr_32 = COPY $sgpr2446    %1:sgpr_32 = COPY $sgpr1447    %0:sgpr_32 = COPY $sgpr0448    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3449    %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1450    %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1451    TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact %14:vreg_64, %13:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4)452    TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact %15:vreg_64, %13:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4)453...454---455 456name: gfx12_tbuffer_store_x_xy457body:             |458  bb.0.entry:459    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3460    ; GFX12-LABEL: name: gfx12_tbuffer_store_x_xy461    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3462    ; GFX12-NEXT: {{  $}}463    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3464    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2465    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1466    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0467    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3468    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2469    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1470    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0471    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3472    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1473    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY]], %subreg.sub0, %10:vreg_64, %subreg.sub1_sub2474    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE2]], [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4)475    %7:vgpr_32 = COPY $vgpr3476    %6:vgpr_32 = COPY $vgpr2477    %5:vgpr_32 = COPY $vgpr1478    %4:vgpr_32 = COPY $vgpr0479    %3:sgpr_32 = COPY $sgpr3480    %2:sgpr_32 = COPY $sgpr2481    %1:sgpr_32 = COPY $sgpr1482    %0:sgpr_32 = COPY $sgpr0483    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3484    %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1485    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)486    TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact %15:vreg_64, %13:sgpr_128, $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4)487...488---489 490name: gfx12_tbuffer_store_xy_x491body:             |492  bb.0.entry:493    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3494    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3495    ; GFX12-LABEL: name: gfx12_tbuffer_store_xy_x496    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3497    ; GFX12-NEXT: {{  $}}498    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3499    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2500    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1501    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0502    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3503    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2504    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1505    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0506    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3507    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY3]], %subreg.sub0, [[COPY2]], %subreg.sub1508    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[REG_SEQUENCE1]], %subreg.sub0_sub1, [[COPY]], %subreg.sub2509    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE2]], [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4)510    %7:vgpr_32 = COPY $vgpr3511    %6:vgpr_32 = COPY $vgpr2512    %5:vgpr_32 = COPY $vgpr1513    %4:vgpr_32 = COPY $vgpr0514    %3:sgpr_32 = COPY $sgpr3515    %2:sgpr_32 = COPY $sgpr2516    %1:sgpr_32 = COPY $sgpr1517    %0:sgpr_32 = COPY $sgpr0518    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3519    %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1520    TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact %14:vreg_64, %13:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4)521    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)522...523---524 525name: gfx12_tbuffer_store_x_x526body:             |527  bb.0.entry:528    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3529    ; GFX12-LABEL: name: gfx12_tbuffer_store_x_x530    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3531    ; GFX12-NEXT: {{  $}}532    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3533    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2534    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1535    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0536    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3537    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2538    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1539    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0540    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3541    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1542    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE1]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4)543    %7:vgpr_32 = COPY $vgpr3544    %6:vgpr_32 = COPY $vgpr2545    %5:vgpr_32 = COPY $vgpr1546    %4:vgpr_32 = COPY $vgpr0547    %3:sgpr_32 = COPY $sgpr3548    %2:sgpr_32 = COPY $sgpr2549    %1:sgpr_32 = COPY $sgpr1550    %0:sgpr_32 = COPY $sgpr0551    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3552    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)553    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)554...555---556 557name: gfx12_tbuffer_store_x_x_format_32_32_32_32558body:             |559  bb.0.entry:560    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3561    ; GFX12-LABEL: name: gfx12_tbuffer_store_x_x_format_32_32_32_32562    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3563    ; GFX12-NEXT: {{  $}}564    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr3565    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2566    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr1567    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr0568    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr3569    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:sgpr_32 = COPY $sgpr2570    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:sgpr_32 = COPY $sgpr1571    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:sgpr_32 = COPY $sgpr0572    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY7]], %subreg.sub0, [[COPY6]], %subreg.sub1, [[COPY5]], %subreg.sub2, [[COPY4]], %subreg.sub3573    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY]], %subreg.sub1574    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE1]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4)575    %7:vgpr_32 = COPY $vgpr3576    %6:vgpr_32 = COPY $vgpr2577    %5:vgpr_32 = COPY $vgpr1578    %4:vgpr_32 = COPY $vgpr0579    %3:sgpr_32 = COPY $sgpr3580    %2:sgpr_32 = COPY $sgpr2581    %1:sgpr_32 = COPY $sgpr1582    %0:sgpr_32 = COPY $sgpr0583    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3584    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)585    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 63, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)586...587---588 589name: gfx12_tbuffer_store_float32590body:             |591  bb.0.entry:592    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8593    ; GFX12-LABEL: name: gfx12_tbuffer_store_float32594    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8595    ; GFX12-NEXT: {{  $}}596    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr8597    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr7598    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr6599    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr5600    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4601    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr3602    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY $vgpr2603    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY $vgpr1604    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY $vgpr0605    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:sgpr_32 = COPY $sgpr3606    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:sgpr_32 = COPY $sgpr2607    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:sgpr_32 = COPY $sgpr1608    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:sgpr_32 = COPY $sgpr0609    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY12]], %subreg.sub0, [[COPY11]], %subreg.sub1, [[COPY10]], %subreg.sub2, [[COPY9]], %subreg.sub3610    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY8]], %subreg.sub0, [[COPY7]], %subreg.sub1611    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE1]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4)612    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY6]], %subreg.sub0, [[COPY5]], %subreg.sub1613    ; GFX12-NEXT: [[REG_SEQUENCE3:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE2]], %subreg.sub0_sub1, [[COPY4]], %subreg.sub2614    ; GFX12-NEXT: [[REG_SEQUENCE4:%[0-9]+]]:vreg_128 = REG_SEQUENCE killed [[REG_SEQUENCE3]], %subreg.sub0_sub1_sub2, [[COPY3]], %subreg.sub3615    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE4]], [[REG_SEQUENCE]], $sgpr_null, 16, 63, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)616    ; GFX12-NEXT: [[REG_SEQUENCE5:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY2]], %subreg.sub0, [[COPY1]], %subreg.sub1617    ; GFX12-NEXT: [[REG_SEQUENCE6:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE5]], %subreg.sub0_sub1, [[COPY]], %subreg.sub2618    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE6]], [[REG_SEQUENCE]], $sgpr_null, 36, 60, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4)619    %12:vgpr_32 = COPY $vgpr8620    %11:vgpr_32 = COPY $vgpr7621    %10:vgpr_32 = COPY $vgpr6622    %9:vgpr_32 = COPY $vgpr5623    %8:vgpr_32 = COPY $vgpr4624    %7:vgpr_32 = COPY $vgpr3625    %6:vgpr_32 = COPY $vgpr2626    %5:vgpr_32 = COPY $vgpr1627    %4:vgpr_32 = COPY $vgpr0628    %3:sgpr_32 = COPY $sgpr3629    %2:sgpr_32 = COPY $sgpr2630    %1:sgpr_32 = COPY $sgpr1631    %0:sgpr_32 = COPY $sgpr0632    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3633    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %4:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)634    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %5:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)635    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)636    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 20, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)637    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %8:vgpr_32, %13:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)638    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %9:vgpr_32, %13:sgpr_128, $sgpr_null, 28, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)639    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %10:vgpr_32, %13:sgpr_128, $sgpr_null, 36, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)640    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %11:vgpr_32, %13:sgpr_128, $sgpr_null, 40, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)641    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %12:vgpr_32, %13:sgpr_128, $sgpr_null, 44, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)642...643---644 645name: gfx12_tbuffer_store_sint32646body:             |647  bb.0.entry:648    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8649    ; GFX12-LABEL: name: gfx12_tbuffer_store_sint32650    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8651    ; GFX12-NEXT: {{  $}}652    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr8653    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr7654    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr6655    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr5656    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4657    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr3658    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY $vgpr2659    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY $vgpr1660    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY $vgpr0661    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:sgpr_32 = COPY $sgpr3662    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:sgpr_32 = COPY $sgpr2663    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:sgpr_32 = COPY $sgpr1664    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:sgpr_32 = COPY $sgpr0665    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY12]], %subreg.sub0, [[COPY11]], %subreg.sub1, [[COPY10]], %subreg.sub2, [[COPY9]], %subreg.sub3666    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY8]], %subreg.sub0, [[COPY7]], %subreg.sub1667    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE1]], [[REG_SEQUENCE]], $sgpr_null, 4, 49, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4)668    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY6]], %subreg.sub0, [[COPY5]], %subreg.sub1669    ; GFX12-NEXT: [[REG_SEQUENCE3:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE2]], %subreg.sub0_sub1, [[COPY4]], %subreg.sub2670    ; GFX12-NEXT: [[REG_SEQUENCE4:%[0-9]+]]:vreg_128 = REG_SEQUENCE killed [[REG_SEQUENCE3]], %subreg.sub0_sub1_sub2, [[COPY3]], %subreg.sub3671    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE4]], [[REG_SEQUENCE]], $sgpr_null, 16, 62, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)672    ; GFX12-NEXT: [[REG_SEQUENCE5:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY2]], %subreg.sub0, [[COPY1]], %subreg.sub1673    ; GFX12-NEXT: [[REG_SEQUENCE6:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE5]], %subreg.sub0_sub1, [[COPY]], %subreg.sub2674    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE6]], [[REG_SEQUENCE]], $sgpr_null, 36, 59, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4)675    %12:vgpr_32 = COPY $vgpr8676    %11:vgpr_32 = COPY $vgpr7677    %10:vgpr_32 = COPY $vgpr6678    %9:vgpr_32 = COPY $vgpr5679    %8:vgpr_32 = COPY $vgpr4680    %7:vgpr_32 = COPY $vgpr3681    %6:vgpr_32 = COPY $vgpr2682    %5:vgpr_32 = COPY $vgpr1683    %4:vgpr_32 = COPY $vgpr0684    %3:sgpr_32 = COPY $sgpr3685    %2:sgpr_32 = COPY $sgpr2686    %1:sgpr_32 = COPY $sgpr1687    %0:sgpr_32 = COPY $sgpr0688    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3689    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %4:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)690    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %5:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)691    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)692    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)693    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %8:vgpr_32, %13:sgpr_128, $sgpr_null, 24, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)694    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %9:vgpr_32, %13:sgpr_128, $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)695    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %10:vgpr_32, %13:sgpr_128, $sgpr_null, 36, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)696    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %11:vgpr_32, %13:sgpr_128, $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)697    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %12:vgpr_32, %13:sgpr_128, $sgpr_null, 44, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)698...699---700 701name: gfx12_tbuffer_store_uint32702body:             |703  bb.0.entry:704    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8705    ; GFX12-LABEL: name: gfx12_tbuffer_store_uint32706    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8707    ; GFX12-NEXT: {{  $}}708    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr8709    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr7710    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr6711    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr5712    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4713    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr3714    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY $vgpr2715    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY $vgpr1716    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY $vgpr0717    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:sgpr_32 = COPY $sgpr3718    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:sgpr_32 = COPY $sgpr2719    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:sgpr_32 = COPY $sgpr1720    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:sgpr_32 = COPY $sgpr0721    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY12]], %subreg.sub0, [[COPY11]], %subreg.sub1, [[COPY10]], %subreg.sub2, [[COPY9]], %subreg.sub3722    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY8]], %subreg.sub0, [[COPY7]], %subreg.sub1723    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XY_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE1]], [[REG_SEQUENCE]], $sgpr_null, 4, 48, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4)724    ; GFX12-NEXT: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY6]], %subreg.sub0, [[COPY5]], %subreg.sub1725    ; GFX12-NEXT: [[REG_SEQUENCE3:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE2]], %subreg.sub0_sub1, [[COPY4]], %subreg.sub2726    ; GFX12-NEXT: [[REG_SEQUENCE4:%[0-9]+]]:vreg_128 = REG_SEQUENCE killed [[REG_SEQUENCE3]], %subreg.sub0_sub1_sub2, [[COPY3]], %subreg.sub3727    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZW_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE4]], [[REG_SEQUENCE]], $sgpr_null, 16, 61, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4)728    ; GFX12-NEXT: [[REG_SEQUENCE5:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY2]], %subreg.sub0, [[COPY1]], %subreg.sub1729    ; GFX12-NEXT: [[REG_SEQUENCE6:%[0-9]+]]:vreg_96 = REG_SEQUENCE killed [[REG_SEQUENCE5]], %subreg.sub0_sub1, [[COPY]], %subreg.sub2730    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_XYZ_VBUFFER_OFFSET_exact killed [[REG_SEQUENCE6]], [[REG_SEQUENCE]], $sgpr_null, 36, 58, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4)731    %12:vgpr_32 = COPY $vgpr8732    %11:vgpr_32 = COPY $vgpr7733    %10:vgpr_32 = COPY $vgpr6734    %9:vgpr_32 = COPY $vgpr5735    %8:vgpr_32 = COPY $vgpr4736    %7:vgpr_32 = COPY $vgpr3737    %6:vgpr_32 = COPY $vgpr2738    %5:vgpr_32 = COPY $vgpr1739    %4:vgpr_32 = COPY $vgpr0740    %3:sgpr_32 = COPY $sgpr3741    %2:sgpr_32 = COPY $sgpr2742    %1:sgpr_32 = COPY $sgpr1743    %0:sgpr_32 = COPY $sgpr0744    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3745    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %4:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)746    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %5:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)747    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)748    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 20, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)749    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %8:vgpr_32, %13:sgpr_128, $sgpr_null, 24, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)750    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %9:vgpr_32, %13:sgpr_128, $sgpr_null, 28, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)751    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %10:vgpr_32, %13:sgpr_128, $sgpr_null, 36, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)752    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %11:vgpr_32, %13:sgpr_128, $sgpr_null, 40, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)753    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %12:vgpr_32, %13:sgpr_128, $sgpr_null, 44, 20, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)754...755---756 757name: gfx12_tbuffer_store_not_merged_data_format_mismatch758body:             |759  bb.0.entry:760    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8761    ; GFX12-LABEL: name: gfx12_tbuffer_store_not_merged_data_format_mismatch762    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8763    ; GFX12-NEXT: {{  $}}764    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr8765    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr7766    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr6767    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr5768    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4769    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr3770    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY $vgpr2771    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY $vgpr1772    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY $vgpr0773    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:sgpr_32 = COPY $sgpr3774    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:sgpr_32 = COPY $sgpr2775    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:sgpr_32 = COPY $sgpr1776    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:sgpr_32 = COPY $sgpr0777    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY12]], %subreg.sub0, [[COPY11]], %subreg.sub1, [[COPY10]], %subreg.sub2, [[COPY9]], %subreg.sub3778    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY8]], [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)779    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY7]], [[REG_SEQUENCE]], $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)780    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY6]], [[REG_SEQUENCE]], $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)781    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)782    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)783    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY3]], [[REG_SEQUENCE]], $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)784    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY2]], [[REG_SEQUENCE]], $sgpr_null, 30, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)785    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY1]], [[REG_SEQUENCE]], $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)786    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY]], [[REG_SEQUENCE]], $sgpr_null, 32, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)787    %12:vgpr_32 = COPY $vgpr8788    %11:vgpr_32 = COPY $vgpr7789    %10:vgpr_32 = COPY $vgpr6790    %9:vgpr_32 = COPY $vgpr5791    %8:vgpr_32 = COPY $vgpr4792    %7:vgpr_32 = COPY $vgpr3793    %6:vgpr_32 = COPY $vgpr2794    %5:vgpr_32 = COPY $vgpr1795    %4:vgpr_32 = COPY $vgpr0796    %3:sgpr_32 = COPY $sgpr3797    %2:sgpr_32 = COPY $sgpr2798    %1:sgpr_32 = COPY $sgpr1799    %0:sgpr_32 = COPY $sgpr0800    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3801    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %4:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)802    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %5:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)803    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)804    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 20, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)805    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %8:vgpr_32, %13:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)806    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %9:vgpr_32, %13:sgpr_128, $sgpr_null, 28, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)807    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %10:vgpr_32, %13:sgpr_128, $sgpr_null, 30, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)808    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %11:vgpr_32, %13:sgpr_128, $sgpr_null, 40, 21, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)809    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %12:vgpr_32, %13:sgpr_128, $sgpr_null, 32, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)810...811---812 813name: gfx12_tbuffer_store_not_merged_num_format_mismatch814body:             |815  bb.0.entry:816    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8817    ; GFX12-LABEL: name: gfx12_tbuffer_store_not_merged_num_format_mismatch818    ; GFX12: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8819    ; GFX12-NEXT: {{  $}}820    ; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr8821    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr7822    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr6823    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr5824    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4825    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr3826    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY $vgpr2827    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY $vgpr1828    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY $vgpr0829    ; GFX12-NEXT: [[COPY9:%[0-9]+]]:sgpr_32 = COPY $sgpr3830    ; GFX12-NEXT: [[COPY10:%[0-9]+]]:sgpr_32 = COPY $sgpr2831    ; GFX12-NEXT: [[COPY11:%[0-9]+]]:sgpr_32 = COPY $sgpr1832    ; GFX12-NEXT: [[COPY12:%[0-9]+]]:sgpr_32 = COPY $sgpr0833    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY12]], %subreg.sub0, [[COPY11]], %subreg.sub1, [[COPY10]], %subreg.sub2, [[COPY9]], %subreg.sub3834    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY8]], [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)835    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY7]], [[REG_SEQUENCE]], $sgpr_null, 8, 13, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)836    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY6]], [[REG_SEQUENCE]], $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)837    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 20, 13, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)838    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)839    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY3]], [[REG_SEQUENCE]], $sgpr_null, 28, 13, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)840    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY2]], [[REG_SEQUENCE]], $sgpr_null, 30, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)841    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY1]], [[REG_SEQUENCE]], $sgpr_null, 40, 13, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)842    ; GFX12-NEXT: TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact [[COPY]], [[REG_SEQUENCE]], $sgpr_null, 32, 22, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4)843    %12:vgpr_32 = COPY $vgpr8844    %11:vgpr_32 = COPY $vgpr7845    %10:vgpr_32 = COPY $vgpr6846    %9:vgpr_32 = COPY $vgpr5847    %8:vgpr_32 = COPY $vgpr4848    %7:vgpr_32 = COPY $vgpr3849    %6:vgpr_32 = COPY $vgpr2850    %5:vgpr_32 = COPY $vgpr1851    %4:vgpr_32 = COPY $vgpr0852    %3:sgpr_32 = COPY $sgpr3853    %2:sgpr_32 = COPY $sgpr2854    %1:sgpr_32 = COPY $sgpr1855    %0:sgpr_32 = COPY $sgpr0856    %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3857    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %4:vgpr_32, %13:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)858    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %5:vgpr_32, %13:sgpr_128, $sgpr_null, 8, 13, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)859    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %6:vgpr_32, %13:sgpr_128, $sgpr_null, 16, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)860    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %7:vgpr_32, %13:sgpr_128, $sgpr_null, 20, 13, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)861    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %8:vgpr_32, %13:sgpr_128, $sgpr_null, 24, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)862    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %9:vgpr_32, %13:sgpr_128, $sgpr_null, 28, 13, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)863    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %10:vgpr_32, %13:sgpr_128, $sgpr_null, 30, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)864    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %11:vgpr_32, %13:sgpr_128, $sgpr_null, 40, 13, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)865    TBUFFER_STORE_FORMAT_X_VBUFFER_OFFSET_exact %12:vgpr_32, %13:sgpr_128, $sgpr_null, 32, 22, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4)866...867---868 869name: gfx12_tbuffer_load_not_merged_swizzled_0870body:             |871  bb.0.entry:872    ; GFX12-LABEL: name: gfx12_tbuffer_load_not_merged_swizzled_0873    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0874    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1875    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2876    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3877    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3878    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)879    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET1:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)880    %0:sgpr_32 = COPY $sgpr0881    %1:sgpr_32 = COPY $sgpr1882    %2:sgpr_32 = COPY $sgpr2883    %3:sgpr_32 = COPY $sgpr3884    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3885    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)886    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)887...888---889 890name: gfx12_tbuffer_load_not_merged_swizzled_1891body:             |892  bb.0.entry:893    ; GFX12-LABEL: name: gfx12_tbuffer_load_not_merged_swizzled_1894    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0895    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1896    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2897    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3898    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3899    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)900    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET1:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 8, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)901    %0:sgpr_32 = COPY $sgpr0902    %1:sgpr_32 = COPY $sgpr1903    %2:sgpr_32 = COPY $sgpr2904    %3:sgpr_32 = COPY $sgpr3905    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3906    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)907    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 22, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4)908...909---910 911name: gfx12_tbuffer_load_merge_across_swizzle912body:             |913  bb.0.entry:914    ; GFX12-LABEL: name: gfx12_tbuffer_load_merge_across_swizzle915    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0916    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1917    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2918    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3919    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3920    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)921    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub0922    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_OFFSET]].sub1923    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET [[REG_SEQUENCE]], $sgpr_null, 12, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)924    %0:sgpr_32 = COPY $sgpr0925    %1:sgpr_32 = COPY $sgpr1926    %2:sgpr_32 = COPY $sgpr2927    %3:sgpr_32 = COPY $sgpr3928    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3929    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)930    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 12, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)931    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_OFFSET %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)932...933---934 935name: gfx12_tbuffer_load_x_x_idxen936body:             |937  bb.0.entry:938    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_idxen939    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0940    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1941    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2942    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3943    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0944    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3945    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)946    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN]].sub0947    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN]].sub1948    %0:sgpr_32 = COPY $sgpr0949    %1:sgpr_32 = COPY $sgpr1950    %2:sgpr_32 = COPY $sgpr2951    %3:sgpr_32 = COPY $sgpr3952    %4:vgpr_32 = COPY $vgpr0953    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3954    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)955    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)956...957---958 959name: gfx12_tbuffer_load_x_xy_idxen960body:             |961  bb.0.entry:962    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xy_idxen963    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0964    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1965    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2966    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3967    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0968    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3969    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 60, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)970    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN]].sub0971    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN]].sub1_sub2972    %0:sgpr_32 = COPY $sgpr0973    %1:sgpr_32 = COPY $sgpr1974    %2:sgpr_32 = COPY $sgpr2975    %3:sgpr_32 = COPY $sgpr3976    %4:vgpr_32 = COPY $vgpr0977    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3978    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)979    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)980...981---982 983name: gfx12_tbuffer_load_xy_xy_idxen984body:             |985  bb.0.entry:986    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_idxen987    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr0988    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr1989    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr2990    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr3991    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr0992    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3993    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)994    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN]].sub0_sub1995    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN]].sub2_sub3996    %0:sgpr_32 = COPY $sgpr0997    %1:sgpr_32 = COPY $sgpr1998    %2:sgpr_32 = COPY $sgpr2999    %3:sgpr_32 = COPY $sgpr31000    %4:vgpr_32 = COPY $vgpr01001    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31002    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1003    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1004...1005---1006 1007name: gfx12_tbuffer_load_x_xyz_idxen1008body:             |1009  bb.0.entry:1010    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xyz_idxen1011    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01012    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11013    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21014    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31015    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01016    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31017    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1018    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN]].sub01019    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN]].sub1_sub2_sub31020    %0:sgpr_32 = COPY $sgpr01021    %1:sgpr_32 = COPY $sgpr11022    %2:sgpr_32 = COPY $sgpr21023    %3:sgpr_32 = COPY $sgpr31024    %4:vgpr_32 = COPY $vgpr01025    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31026    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1027    %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN %4, %5:sgpr_128, $sgpr_null, 8, 60, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1028...1029---1030 1031name: gfx12_tbuffer_load_x_x_bothen1032body:             |1033  bb.0.entry:1034    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_bothen1035    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01036    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11037    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21038    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31039    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01040    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31041    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1042    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN]].sub01043    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN]].sub11044    %0:sgpr_32 = COPY $sgpr01045    %1:sgpr_32 = COPY $sgpr11046    %2:sgpr_32 = COPY $sgpr21047    %3:sgpr_32 = COPY $sgpr31048    %4:vreg_64 = COPY $vgpr01049    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31050    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1051    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1052...1053---1054 1055name: gfx12_tbuffer_load_x_xy_bothen1056body:             |1057  bb.0.entry:1058    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xy_bothen1059    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01060    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11061    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21062    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31063    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01064    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31065    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 60, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1066    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN]].sub01067    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN]].sub1_sub21068    %0:sgpr_32 = COPY $sgpr01069    %1:sgpr_32 = COPY $sgpr11070    %2:sgpr_32 = COPY $sgpr21071    %3:sgpr_32 = COPY $sgpr31072    %4:vreg_64 = COPY $vgpr01073    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31074    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1075    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1076...1077---1078 1079name: gfx12_tbuffer_load_xy_xy_bothen1080body:             |1081  bb.0.entry:1082    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_bothen1083    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01084    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11085    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21086    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31087    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01088    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31089    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1090    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN]].sub0_sub11091    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN]].sub2_sub31092    %0:sgpr_32 = COPY $sgpr01093    %1:sgpr_32 = COPY $sgpr11094    %2:sgpr_32 = COPY $sgpr21095    %3:sgpr_32 = COPY $sgpr31096    %4:vreg_64 = COPY $vgpr01097    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31098    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1099    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1100...1101---1102 1103name: gfx12_tbuffer_load_x_xyz_bothen1104body:             |1105  bb.0.entry:1106    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xyz_bothen1107    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01108    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11109    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21110    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31111    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01112    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31113    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1114    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN]].sub01115    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN]].sub1_sub2_sub31116    %0:sgpr_32 = COPY $sgpr01117    %1:sgpr_32 = COPY $sgpr11118    %2:sgpr_32 = COPY $sgpr21119    %3:sgpr_32 = COPY $sgpr31120    %4:vreg_64 = COPY $vgpr01121    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31122    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1123    %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN %4, %5:sgpr_128, $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1124...1125---1126 1127name: gfx12_tbuffer_load_x_x_idxen_exact1128body:             |1129  bb.0.entry:1130    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_idxen_exact1131    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01132    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11133    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21134    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31135    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01136    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31137    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1138    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact]].sub01139    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact]].sub11140    %0:sgpr_32 = COPY $sgpr01141    %1:sgpr_32 = COPY $sgpr11142    %2:sgpr_32 = COPY $sgpr21143    %3:sgpr_32 = COPY $sgpr31144    %4:vgpr_32 = COPY $vgpr01145    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31146    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1147    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1148...1149---1150 1151name: gfx12_tbuffer_load_x_xy_idxen_exact1152body:             |1153  bb.0.entry:1154    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xy_idxen_exact1155    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01156    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11157    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21158    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31159    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01160    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31161    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 60, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1162    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact]].sub01163    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact]].sub1_sub21164    %0:sgpr_32 = COPY $sgpr01165    %1:sgpr_32 = COPY $sgpr11166    %2:sgpr_32 = COPY $sgpr21167    %3:sgpr_32 = COPY $sgpr31168    %4:vgpr_32 = COPY $vgpr01169    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31170    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1171    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1172...1173---1174 1175name: gfx12_tbuffer_load_xy_xy_idxen_exact1176body:             |1177  bb.0.entry:1178    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_idxen_exact1179    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01180    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11181    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21182    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31183    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01184    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31185    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1186    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact]].sub0_sub11187    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact]].sub2_sub31188    %0:sgpr_32 = COPY $sgpr01189    %1:sgpr_32 = COPY $sgpr11190    %2:sgpr_32 = COPY $sgpr21191    %3:sgpr_32 = COPY $sgpr31192    %4:vgpr_32 = COPY $vgpr01193    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31194    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1195    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1196...1197---1198 1199name: gfx12_tbuffer_load_x_xyz_idxen_exact1200body:             |1201  bb.0.entry:1202    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xyz_idxen_exact1203    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01204    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11205    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21206    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31207    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01208    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31209    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1210    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact]].sub01211    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_IDXEN_exact]].sub1_sub2_sub31212    %0:sgpr_32 = COPY $sgpr01213    %1:sgpr_32 = COPY $sgpr11214    %2:sgpr_32 = COPY $sgpr21215    %3:sgpr_32 = COPY $sgpr31216    %4:vgpr_32 = COPY $vgpr01217    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31218    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1219    %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 60, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1220...1221---1222 1223name: gfx12_tbuffer_load_x_x_x_idxen_exact1224body:             |1225  bb.0.entry:1226    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_x_idxen_exact1227    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01228    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11229    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21230    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31231    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01232    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31233    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)1234    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact]].sub0_sub11235    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_IDXEN_exact]].sub21236    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY [[COPY5]].sub01237    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY killed [[COPY5]].sub11238    %0:sgpr_32 = COPY $sgpr01239    %1:sgpr_32 = COPY $sgpr11240    %2:sgpr_32 = COPY $sgpr21241    %3:sgpr_32 = COPY $sgpr31242    %4:vgpr_32 = COPY $vgpr01243    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31244    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1245    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1246    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1247...1248---1249 1250name: gfx12_tbuffer_load_x_x_x_idxen_exact_swizzled_01251body:             |1252  bb.0.entry:1253    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_x_idxen_exact_swizzled_01254    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01255    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11256    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21257    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31258    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01259    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31260    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1261    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1262    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact]].sub01263    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact]].sub11264    %0:sgpr_32 = COPY $sgpr01265    %1:sgpr_32 = COPY $sgpr11266    %2:sgpr_32 = COPY $sgpr21267    %3:sgpr_32 = COPY $sgpr31268    %4:vgpr_32 = COPY $vgpr01269    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31270    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1271    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1272    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_IDXEN_exact %4, %5:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1273...1274---1275 1276name: gfx12_tbuffer_load_x_x_bothen_exact1277body:             |1278  bb.0.entry:1279    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_bothen_exact1280    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01281    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11282    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21283    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31284    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01285    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31286    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1287    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact]].sub01288    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact]].sub11289    %0:sgpr_32 = COPY $sgpr01290    %1:sgpr_32 = COPY $sgpr11291    %2:sgpr_32 = COPY $sgpr21292    %3:sgpr_32 = COPY $sgpr31293    %4:vreg_64 = COPY $vgpr01294    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31295    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1296    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1297...1298---1299 1300name: gfx12_tbuffer_load_x_xy_bothen_exact1301body:             |1302  bb.0.entry:1303    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xy_bothen_exact1304    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01305    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11306    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21307    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31308    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01309    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31310    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 60, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1311    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact]].sub01312    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact]].sub1_sub21313    %0:sgpr_32 = COPY $sgpr01314    %1:sgpr_32 = COPY $sgpr11315    %2:sgpr_32 = COPY $sgpr21316    %3:sgpr_32 = COPY $sgpr31317    %4:vreg_64 = COPY $vgpr01318    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31319    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1320    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1321...1322---1323 1324name: gfx12_tbuffer_load_xy_xy_bothen_exact1325body:             |1326  bb.0.entry:1327 1328    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_bothen_exact1329    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01330    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11331    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21332    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31333    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01334    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31335    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1336    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact]].sub0_sub11337    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact]].sub2_sub31338    %0:sgpr_32 = COPY $sgpr01339    %1:sgpr_32 = COPY $sgpr11340    %2:sgpr_32 = COPY $sgpr21341    %3:sgpr_32 = COPY $sgpr31342    %4:vreg_64 = COPY $vgpr01343    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31344    %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1345    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1346...1347---1348 1349name: gfx12_tbuffer_load_x_xyz_bothen_exact1350body:             |1351  bb.0.entry:1352 1353    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_xyz_bothen_exact1354    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01355    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11356    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21357    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31358    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01359    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31360    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 0, 63, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1361    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact]].sub01362    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vreg_96 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZW_VBUFFER_BOTHEN_exact]].sub1_sub2_sub31363    %0:sgpr_32 = COPY $sgpr01364    %1:sgpr_32 = COPY $sgpr11365    %2:sgpr_32 = COPY $sgpr21366    %3:sgpr_32 = COPY $sgpr31367    %4:vreg_64 = COPY $vgpr01368    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31369    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 0, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1370    %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1371...1372---1373 1374name: gfx12_tbuffer_load_xy_xy_bothen_exact_diff_vaddr1375body:             |1376  bb.0.entry:1377    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_bothen_exact_diff_vaddr1378    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01379    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11380    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21381    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31382    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01383    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY $vgpr11384    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31385    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1386    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact1:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1387    %0:sgpr_32 = COPY $sgpr01388    %1:sgpr_32 = COPY $sgpr11389    %2:sgpr_32 = COPY $sgpr21390    %3:sgpr_32 = COPY $sgpr31391    %4:vreg_64 = COPY $vgpr01392    %5:vreg_64 = COPY $vgpr11393    %6:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31394 1395    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %4, %6:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1396    %9:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %5, %6:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1397...1398---1399 1400name: gfx12_tbuffer_load_xy_xy_bothen_exact_diff_srsrc1401body:             |1402  bb.0.entry:1403    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_bothen_exact_diff_srsrc1404    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01405    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11406    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21407    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31408    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr41409    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY $vgpr01410    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31411    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY2]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY4]], %subreg.sub31412    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1413    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact1:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY5]], [[REG_SEQUENCE1]], $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1414    %0:sgpr_32 = COPY $sgpr01415    %1:sgpr_32 = COPY $sgpr11416    %2:sgpr_32 = COPY $sgpr21417    %3:sgpr_32 = COPY $sgpr31418    %4:sgpr_32 = COPY $sgpr41419    %5:vreg_64 = COPY $vgpr01420    %6:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31421    %7:sgpr_128 = REG_SEQUENCE %1:sgpr_32, %subreg.sub0, %2:sgpr_32, %subreg.sub1, %3:sgpr_32, %subreg.sub2, %4:sgpr_32, %subreg.sub31422    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %5, %6:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1423    %9:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact %5, %7:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1424...1425---1426 1427name: gfx12_tbuffer_load_xy_xy_idxen_exact_diff_vaddr1428body:             |1429  bb.0.entry:1430    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_idxen_exact_diff_vaddr1431    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01432    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11433    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21434    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31435    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr01436    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr11437    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31438    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1439    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact1:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1440    %0:sgpr_32 = COPY $sgpr01441    %1:sgpr_32 = COPY $sgpr11442    %2:sgpr_32 = COPY $sgpr21443    %3:sgpr_32 = COPY $sgpr31444    %4:vgpr_32 = COPY $vgpr01445    %5:vgpr_32 = COPY $vgpr11446    %6:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31447    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %4, %6:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1448    %9:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %5, %6:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1449...1450---1451 1452name: gfx12_tbuffer_load_xy_xy_idxen_exact_diff_srsrc1453body:             |1454  bb.0.entry:1455    ; GFX12-LABEL: name: gfx12_tbuffer_load_xy_xy_idxen_exact_diff_srsrc1456    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01457    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11458    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21459    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31460    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:sgpr_32 = COPY $sgpr41461    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY $vgpr01462    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31463    ; GFX12-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY1]], %subreg.sub0, [[COPY2]], %subreg.sub1, [[COPY3]], %subreg.sub2, [[COPY4]], %subreg.sub31464    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY5]], [[REG_SEQUENCE]], $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1465    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact1:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact [[COPY5]], [[REG_SEQUENCE1]], $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1466    %0:sgpr_32 = COPY $sgpr01467    %1:sgpr_32 = COPY $sgpr11468    %2:sgpr_32 = COPY $sgpr21469    %3:sgpr_32 = COPY $sgpr31470    %4:sgpr_32 = COPY $sgpr41471    %5:vgpr_32 = COPY $vgpr01472    %6:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31473    %7:sgpr_128 = REG_SEQUENCE %1:sgpr_32, %subreg.sub0, %2:sgpr_32, %subreg.sub1, %3:sgpr_32, %subreg.sub2, %4:sgpr_32, %subreg.sub31474    %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %5, %6:sgpr_128, $sgpr_null, 4, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1475    %9:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_IDXEN_exact %5, %7:sgpr_128, $sgpr_null, 12, 50, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1476...1477---1478 1479name: gfx12_tbuffer_load_x_x_x_bothen_exact1480body:             |1481  bb.0.entry:1482    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_x_bothen_exact1483    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01484    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11485    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21486    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31487    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01488    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31489    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 60, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4)1490    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact]].sub0_sub11491    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XYZ_VBUFFER_BOTHEN_exact]].sub21492    ; GFX12-NEXT: [[COPY7:%[0-9]+]]:vgpr_32 = COPY [[COPY5]].sub01493    ; GFX12-NEXT: [[COPY8:%[0-9]+]]:vgpr_32 = COPY killed [[COPY5]].sub11494    %0:sgpr_32 = COPY $sgpr01495    %1:sgpr_32 = COPY $sgpr11496    %2:sgpr_32 = COPY $sgpr21497    %3:sgpr_32 = COPY $sgpr31498    %4:vreg_64 = COPY $vgpr01499    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31500    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1501    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1502    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1503...1504---1505 1506name: gfx12_tbuffer_load_x_x_x_bothen_exact_swizzled_01507body:             |1508  bb.0.entry:1509    ; GFX12-LABEL: name: gfx12_tbuffer_load_x_x_x_bothen_exact_swizzled_01510    ; GFX12: [[COPY:%[0-9]+]]:sgpr_32 = COPY $sgpr01511    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr11512    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:sgpr_32 = COPY $sgpr21513    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:sgpr_32 = COPY $sgpr31514    ; GFX12-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr01515    ; GFX12-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub31516    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact:%[0-9]+]]:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1517    ; GFX12-NEXT: [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact:%[0-9]+]]:vreg_64 = TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact [[COPY4]], [[REG_SEQUENCE]], $sgpr_null, 8, 50, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4)1518    ; GFX12-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact]].sub01519    ; GFX12-NEXT: [[COPY6:%[0-9]+]]:vgpr_32 = COPY killed [[TBUFFER_LOAD_FORMAT_XY_VBUFFER_BOTHEN_exact]].sub11520    %0:sgpr_32 = COPY $sgpr01521    %1:sgpr_32 = COPY $sgpr11522    %2:sgpr_32 = COPY $sgpr21523    %3:sgpr_32 = COPY $sgpr31524    %4:vreg_64 = COPY $vgpr01525    %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub31526    %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 4, 22, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1527    %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 8, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1528    %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_VBUFFER_BOTHEN_exact %4, %5:sgpr_128, $sgpr_null, 12, 22, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4)1529...1530