1# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s 2# RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX10 %s 3# RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX11 %s 4 5# 6# GFX9 tests 7# 8 9# GFX9-LABEL: name: gfx9_tbuffer_load_x_xyz 10# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 11# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 12# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 13name: gfx9_tbuffer_load_x_xyz 14body: | 15 bb.0.entry: 16 %0:sgpr_32 = COPY $sgpr0 17 %1:sgpr_32 = COPY $sgpr1 18 %2:sgpr_32 = COPY $sgpr2 19 %3:sgpr_32 = COPY $sgpr3 20 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 21 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 22 %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 8, 125, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 23... 24--- 25 26# GFX9-LABEL: name: gfx9_tbuffer_load_xyz_x 27# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 28# GFX9: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 29# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 30name: gfx9_tbuffer_load_xyz_x 31body: | 32 bb.0.entry: 33 %0:sgpr_32 = COPY $sgpr0 34 %1:sgpr_32 = COPY $sgpr1 35 %2:sgpr_32 = COPY $sgpr2 36 %3:sgpr_32 = COPY $sgpr3 37 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 38 %7:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 39 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 40... 41--- 42 43# GFX9-LABEL: name: gfx9_tbuffer_load_xy_xy 44# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 45# GFX9: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 46# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 47name: gfx9_tbuffer_load_xy_xy 48body: | 49 bb.0.entry: 50 %0:sgpr_32 = COPY $sgpr0 51 %1:sgpr_32 = COPY $sgpr1 52 %2:sgpr_32 = COPY $sgpr2 53 %3:sgpr_32 = COPY $sgpr3 54 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 55 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 56 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 12, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 57... 58--- 59 60# GFX9-LABEL: name: gfx9_tbuffer_load_x_xy 61# GFX9: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 62# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 63# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 64name: gfx9_tbuffer_load_x_xy 65body: | 66 bb.0.entry: 67 %0:sgpr_32 = COPY $sgpr0 68 %1:sgpr_32 = COPY $sgpr1 69 %2:sgpr_32 = COPY $sgpr2 70 %3:sgpr_32 = COPY $sgpr3 71 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 72 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 73 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 8, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 74... 75--- 76 77# GFX9-LABEL: name: gfx9_tbuffer_load_xy_x 78# GFX9: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 79# GFX9: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 80# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 81name: gfx9_tbuffer_load_xy_x 82body: | 83 bb.0.entry: 84 %0:sgpr_32 = COPY $sgpr0 85 %1:sgpr_32 = COPY $sgpr1 86 %2:sgpr_32 = COPY $sgpr2 87 %3:sgpr_32 = COPY $sgpr3 88 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 89 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 90 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 91... 92--- 93 94 95# GFX9-LABEL: name: gfx9_tbuffer_load_x_x 96# GFX9: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 97# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 98# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 99 100name: gfx9_tbuffer_load_x_x 101body: | 102 bb.0.entry: 103 %0:sgpr_32 = COPY $sgpr0 104 %1:sgpr_32 = COPY $sgpr1 105 %2:sgpr_32 = COPY $sgpr2 106 %3:sgpr_32 = COPY $sgpr3 107 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 108 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 109 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 110... 111--- 112 113# GFX9-LABEL: name: gfx9_tbuffer_load_x_x_format_32_32_32_32 114# GFX9: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 115# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 116# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 117 118name: gfx9_tbuffer_load_x_x_format_32_32_32_32 119body: | 120 bb.0.entry: 121 %0:sgpr_32 = COPY $sgpr0 122 %1:sgpr_32 = COPY $sgpr1 123 %2:sgpr_32 = COPY $sgpr2 124 %3:sgpr_32 = COPY $sgpr3 125 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 126 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 127 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 128... 129--- 130 131 132# GFX9-LABEL: name: gfx9_tbuffer_load_float_32 133# GFX9: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 134# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 135# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 136# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 126, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 137# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 138# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 139# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 140# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 141# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 142# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 143# GFX9: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 125, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 144# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 145# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 146# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 147# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 148 149name: gfx9_tbuffer_load_float_32 150body: | 151 bb.0.entry: 152 %0:sgpr_32 = COPY $sgpr0 153 %1:sgpr_32 = COPY $sgpr1 154 %2:sgpr_32 = COPY $sgpr2 155 %3:sgpr_32 = COPY $sgpr3 156 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 157 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 158 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 159 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 160 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 161 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 162 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 163 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 164 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 165 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 166... 167--- 168 169# GFX9-LABEL: name: gfx9_tbuffer_load_sint_32 170# GFX9: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 91, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 171# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 172# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 173# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 94, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 174# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 175# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 176# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 177# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 178# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 179# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 180# GFX9: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 93, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 181# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 182# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 183# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 184# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 185 186name: gfx9_tbuffer_load_sint_32 187body: | 188 bb.0.entry: 189 %0:sgpr_32 = COPY $sgpr0 190 %1:sgpr_32 = COPY $sgpr1 191 %2:sgpr_32 = COPY $sgpr2 192 %3:sgpr_32 = COPY $sgpr3 193 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 194 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 195 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 196 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 197 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 198 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 199 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 200 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 201 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 202 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 203... 204--- 205 206# GFX9-LABEL: name: gfx9_tbuffer_load_uint_32 207# GFX9: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 75, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 208# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 209# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 210# GFX9: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 78, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 211# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 212# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 213# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 214# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 215# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 216# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 217# GFX9: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 218# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 219# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 220# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 221# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 222 223name: gfx9_tbuffer_load_uint_32 224body: | 225 bb.0.entry: 226 %0:sgpr_32 = COPY $sgpr0 227 %1:sgpr_32 = COPY $sgpr1 228 %2:sgpr_32 = COPY $sgpr2 229 %3:sgpr_32 = COPY $sgpr3 230 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 231 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 232 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 233 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 234 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 235 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 236 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 237 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 238 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 239 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 68, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 240... 241--- 242 243# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_data_format_mismatch 244# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 245# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 246# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 247# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 248# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 249# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 250# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 251# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 252# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 253# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 254# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 255# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 256# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 257# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 258 259 260name: gfx9_tbuffer_load_not_merged_data_format_mismatch 261body: | 262 bb.0.entry: 263 %0:sgpr_32 = COPY $sgpr0 264 %1:sgpr_32 = COPY $sgpr1 265 %2:sgpr_32 = COPY $sgpr2 266 %3:sgpr_32 = COPY $sgpr3 267 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 268 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 269 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 270 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 271 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 272 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 273 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 274 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 275 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 114, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 276 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 277... 278--- 279 280# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_num_format_mismatch 281# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 282# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 283# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 284# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 285# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 286# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 287# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 288# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 289# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 290# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 291# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 292# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 293# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 294# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 295name: gfx9_tbuffer_load_not_merged_num_format_mismatch 296body: | 297 bb.0.entry: 298 %0:sgpr_32 = COPY $sgpr0 299 %1:sgpr_32 = COPY $sgpr1 300 %2:sgpr_32 = COPY $sgpr2 301 %3:sgpr_32 = COPY $sgpr3 302 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 303 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 304 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 305 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 306 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 307 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 308 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 309 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 310 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 311 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 312... 313--- 314 315# GFX9-LABEL: name: gfx9_tbuffer_store_x_xyz 316# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 317# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 318# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 319name: gfx9_tbuffer_store_x_xyz 320body: | 321 bb.0.entry: 322 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 323 %7:vgpr_32 = COPY $vgpr3 324 %6:vgpr_32 = COPY $vgpr2 325 %5:vgpr_32 = COPY $vgpr1 326 %4:vgpr_32 = COPY $vgpr0 327 %3:sgpr_32 = COPY $sgpr3 328 %2:sgpr_32 = COPY $sgpr2 329 %1:sgpr_32 = COPY $sgpr1 330 %0:sgpr_32 = COPY $sgpr0 331 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 332 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 333 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 334 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 8, 125, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 335... 336--- 337 338 339 340# GFX9-LABEL: name: gfx9_tbuffer_store_xyz_x 341# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 342# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 343# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 344name: gfx9_tbuffer_store_xyz_x 345body: | 346 bb.0.entry: 347 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 348 %7:vgpr_32 = COPY $vgpr3 349 %6:vgpr_32 = COPY $vgpr2 350 %5:vgpr_32 = COPY $vgpr1 351 %4:vgpr_32 = COPY $vgpr0 352 %3:sgpr_32 = COPY $sgpr3 353 %2:sgpr_32 = COPY $sgpr2 354 %1:sgpr_32 = COPY $sgpr1 355 %0:sgpr_32 = COPY $sgpr0 356 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 357 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 358 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 359 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 360... 361--- 362 363# GFX9-LABEL: name: gfx9_tbuffer_store_xy_xy 364# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 365# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 366# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 367# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %11, %8, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 368name: gfx9_tbuffer_store_xy_xy 369body: | 370 bb.0.entry: 371 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 372 %7:vgpr_32 = COPY $vgpr3 373 %6:vgpr_32 = COPY $vgpr2 374 %5:vgpr_32 = COPY $vgpr1 375 %4:vgpr_32 = COPY $vgpr0 376 %3:sgpr_32 = COPY $sgpr3 377 %2:sgpr_32 = COPY $sgpr2 378 %1:sgpr_32 = COPY $sgpr1 379 %0:sgpr_32 = COPY $sgpr0 380 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 381 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 382 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 383 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 384 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 12, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 385... 386--- 387 388# GFX9-LABEL: name: gfx9_tbuffer_store_x_xy 389# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 390# GFX9: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 391# GFX9: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %11, %8, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 392name: gfx9_tbuffer_store_x_xy 393body: | 394 bb.0.entry: 395 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 396 %7:vgpr_32 = COPY $vgpr3 397 %6:vgpr_32 = COPY $vgpr2 398 %5:vgpr_32 = COPY $vgpr1 399 %4:vgpr_32 = COPY $vgpr0 400 %3:sgpr_32 = COPY $sgpr3 401 %2:sgpr_32 = COPY $sgpr2 402 %1:sgpr_32 = COPY $sgpr1 403 %0:sgpr_32 = COPY $sgpr0 404 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 405 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 406 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 407 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 8, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 408... 409--- 410 411# GFX9-LABEL: name: gfx9_tbuffer_store_xy_x 412# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 413# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 414# GFX9: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %10, %8, 0, 4, 125, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 415name: gfx9_tbuffer_store_xy_x 416body: | 417 bb.0.entry: 418 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 419 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 420 %7:vgpr_32 = COPY $vgpr3 421 %6:vgpr_32 = COPY $vgpr2 422 %5:vgpr_32 = COPY $vgpr1 423 %4:vgpr_32 = COPY $vgpr0 424 %3:sgpr_32 = COPY $sgpr3 425 %2:sgpr_32 = COPY $sgpr2 426 %1:sgpr_32 = COPY $sgpr1 427 %0:sgpr_32 = COPY $sgpr0 428 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 429 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 430 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 431 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 12, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 432... 433--- 434 435 436# GFX9-LABEL: name: gfx9_tbuffer_store_x_x 437# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 438# GFX9: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 439name: gfx9_tbuffer_store_x_x 440body: | 441 bb.0.entry: 442 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 443 %7:vgpr_32 = COPY $vgpr3 444 %6:vgpr_32 = COPY $vgpr2 445 %5:vgpr_32 = COPY $vgpr1 446 %4:vgpr_32 = COPY $vgpr0 447 %3:sgpr_32 = COPY $sgpr3 448 %2:sgpr_32 = COPY $sgpr2 449 %1:sgpr_32 = COPY $sgpr1 450 %0:sgpr_32 = COPY $sgpr0 451 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 452 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 453 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 454... 455--- 456 457# GFX9-LABEL: name: gfx9_tbuffer_store_x_x_format_32_32_32_32 458# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 459# GFX9: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 460name: gfx9_tbuffer_store_x_x_format_32_32_32_32 461body: | 462 bb.0.entry: 463 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 464 %7:vgpr_32 = COPY $vgpr3 465 %6:vgpr_32 = COPY $vgpr2 466 %5:vgpr_32 = COPY $vgpr1 467 %4:vgpr_32 = COPY $vgpr0 468 %3:sgpr_32 = COPY $sgpr3 469 %2:sgpr_32 = COPY $sgpr2 470 %1:sgpr_32 = COPY $sgpr1 471 %0:sgpr_32 = COPY $sgpr0 472 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 473 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 474 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 475... 476--- 477 478# GFX9-LABEL: name: gfx9_tbuffer_store_float32 479# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 480# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 481# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 482# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 483# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 484# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 485# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 486# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 487# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 488# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 489# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 490# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 491# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 492# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 493# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 494# GFX9: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 495# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 496# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 497# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 498# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 126, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 499# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 500# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 501# GFX9: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 125, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 502name: gfx9_tbuffer_store_float32 503body: | 504 bb.0.entry: 505 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 506 %12:vgpr_32 = COPY $vgpr8 507 %11:vgpr_32 = COPY $vgpr7 508 %10:vgpr_32 = COPY $vgpr6 509 %9:vgpr_32 = COPY $vgpr5 510 %8:vgpr_32 = COPY $vgpr4 511 %7:vgpr_32 = COPY $vgpr3 512 %6:vgpr_32 = COPY $vgpr2 513 %5:vgpr_32 = COPY $vgpr1 514 %4:vgpr_32 = COPY $vgpr0 515 %3:sgpr_32 = COPY $sgpr3 516 %2:sgpr_32 = COPY $sgpr2 517 %1:sgpr_32 = COPY $sgpr1 518 %0:sgpr_32 = COPY $sgpr0 519 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 520 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 521 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 522 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 523 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 524 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 525 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 526 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 527 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 528 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 529... 530--- 531 532# GFX9-LABEL: name: gfx9_tbuffer_store_sint32 533# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 534# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 535# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 536# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 537# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 538# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 539# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 540# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 541# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 542# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 543# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 544# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 545# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 546# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 547# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 548# GFX9: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 91, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 549# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 550# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 551# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 552# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 94, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 553# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 554# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 555# GFX9: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 93, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 556name: gfx9_tbuffer_store_sint32 557body: | 558 bb.0.entry: 559 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 560 %12:vgpr_32 = COPY $vgpr8 561 %11:vgpr_32 = COPY $vgpr7 562 %10:vgpr_32 = COPY $vgpr6 563 %9:vgpr_32 = COPY $vgpr5 564 %8:vgpr_32 = COPY $vgpr4 565 %7:vgpr_32 = COPY $vgpr3 566 %6:vgpr_32 = COPY $vgpr2 567 %5:vgpr_32 = COPY $vgpr1 568 %4:vgpr_32 = COPY $vgpr0 569 %3:sgpr_32 = COPY $sgpr3 570 %2:sgpr_32 = COPY $sgpr2 571 %1:sgpr_32 = COPY $sgpr1 572 %0:sgpr_32 = COPY $sgpr0 573 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 574 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 575 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 576 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 577 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 578 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 579 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 580 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 581 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 582 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 583... 584--- 585 586# GFX9-LABEL: name: gfx9_tbuffer_store_uint32 587# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 588# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 589# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 590# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 591# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 592# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 593# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 594# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 595# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 596# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 597# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 598# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 599# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 600# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 601# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 602# GFX9: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 75, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 603# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 604# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 605# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 606# GFX9: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 78, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 607# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 608# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 609# GFX9: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 610name: gfx9_tbuffer_store_uint32 611body: | 612 bb.0.entry: 613 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 614 %12:vgpr_32 = COPY $vgpr8 615 %11:vgpr_32 = COPY $vgpr7 616 %10:vgpr_32 = COPY $vgpr6 617 %9:vgpr_32 = COPY $vgpr5 618 %8:vgpr_32 = COPY $vgpr4 619 %7:vgpr_32 = COPY $vgpr3 620 %6:vgpr_32 = COPY $vgpr2 621 %5:vgpr_32 = COPY $vgpr1 622 %4:vgpr_32 = COPY $vgpr0 623 %3:sgpr_32 = COPY $sgpr3 624 %2:sgpr_32 = COPY $sgpr2 625 %1:sgpr_32 = COPY $sgpr1 626 %0:sgpr_32 = COPY $sgpr0 627 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 628 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 629 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 630 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 631 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 632 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 633 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 634 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 635 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 636 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 68, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 637... 638--- 639 640# GFX9-LABEL: name: gfx9_tbuffer_store_not_merged_data_format_mismatch 641# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 642# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 643# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 644# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 645# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 646# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 647# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 648# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 649# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 650# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 651# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 652# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 653# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 654# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 655# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 656# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 657# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 658# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 659# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 660# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 661# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 662# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 663# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 664name: gfx9_tbuffer_store_not_merged_data_format_mismatch 665body: | 666 bb.0.entry: 667 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 668 %12:vgpr_32 = COPY $vgpr8 669 %11:vgpr_32 = COPY $vgpr7 670 %10:vgpr_32 = COPY $vgpr6 671 %9:vgpr_32 = COPY $vgpr5 672 %8:vgpr_32 = COPY $vgpr4 673 %7:vgpr_32 = COPY $vgpr3 674 %6:vgpr_32 = COPY $vgpr2 675 %5:vgpr_32 = COPY $vgpr1 676 %4:vgpr_32 = COPY $vgpr0 677 %3:sgpr_32 = COPY $sgpr3 678 %2:sgpr_32 = COPY $sgpr2 679 %1:sgpr_32 = COPY $sgpr1 680 %0:sgpr_32 = COPY $sgpr0 681 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 682 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 683 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 684 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 685 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 686 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 687 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 688 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 689 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 690 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 691... 692--- 693 694# GFX9-LABEL: name: gfx9_tbuffer_store_not_merged_num_format_mismatch 695# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 696# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 697# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 698# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 699# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 700# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 701# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 702# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 703# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 704# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 705# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 706# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 707# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 708# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 709# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 710# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 711# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 712# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 713# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 714# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 715# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 716# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 717# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 718name: gfx9_tbuffer_store_not_merged_num_format_mismatch 719body: | 720 bb.0.entry: 721 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 722 %12:vgpr_32 = COPY $vgpr8 723 %11:vgpr_32 = COPY $vgpr7 724 %10:vgpr_32 = COPY $vgpr6 725 %9:vgpr_32 = COPY $vgpr5 726 %8:vgpr_32 = COPY $vgpr4 727 %7:vgpr_32 = COPY $vgpr3 728 %6:vgpr_32 = COPY $vgpr2 729 %5:vgpr_32 = COPY $vgpr1 730 %4:vgpr_32 = COPY $vgpr0 731 %3:sgpr_32 = COPY $sgpr3 732 %2:sgpr_32 = COPY $sgpr2 733 %1:sgpr_32 = COPY $sgpr1 734 %0:sgpr_32 = COPY $sgpr0 735 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 736 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 737 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 738 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 739 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 740 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 741 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 742 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 743 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 744 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 745... 746--- 747 748 749# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_swizzled_0 750# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 751# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 752name: gfx9_tbuffer_load_not_merged_swizzled_0 753body: | 754 bb.0.entry: 755 %0:sgpr_32 = COPY $sgpr0 756 %1:sgpr_32 = COPY $sgpr1 757 %2:sgpr_32 = COPY $sgpr2 758 %3:sgpr_32 = COPY $sgpr3 759 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 760 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 761 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 762... 763--- 764 765 766# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_swizzled_1 767# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 768# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 769name: gfx9_tbuffer_load_not_merged_swizzled_1 770body: | 771 bb.0.entry: 772 %0:sgpr_32 = COPY $sgpr0 773 %1:sgpr_32 = COPY $sgpr1 774 %2:sgpr_32 = COPY $sgpr2 775 %3:sgpr_32 = COPY $sgpr3 776 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 777 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 778 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 779... 780--- 781 782 783# GFX9-LABEL: name: gfx9_tbuffer_load_merge_across_swizzle 784# GFX9-DAG: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 12, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 785# GFX9-DAG: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 123, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 786name: gfx9_tbuffer_load_merge_across_swizzle 787body: | 788 bb.0.entry: 789 %0:sgpr_32 = COPY $sgpr0 790 %1:sgpr_32 = COPY $sgpr1 791 %2:sgpr_32 = COPY $sgpr2 792 %3:sgpr_32 = COPY $sgpr3 793 %4:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 794 %5:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 795 %6:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 12, 116, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 796 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 797... 798--- 799 800 801# GFX9-LABEL: name: gfx9_tbuffer_load_merge_across_swizzled_store 802# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 803# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %5, 0, 6, 116, 0, 0, 1, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 804# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 805name: gfx9_tbuffer_load_merge_across_swizzled_store 806body: | 807 bb.0.entry: 808 %0:sgpr_32 = COPY $sgpr0 809 %1:sgpr_32 = COPY $sgpr1 810 %2:sgpr_32 = COPY $sgpr2 811 %3:sgpr_32 = COPY $sgpr3 812 %4:vgpr_32 = COPY $vgpr0 813 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 814 %6:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 815 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %5:sgpr_128, 0, 6, 116, 0, 0, 1, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 816 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 817... 818--- 819 820 821# 822# GFX10 tests 823# 824 825# GFX10-LABEL: name: gfx10_tbuffer_load_x_xyz 826# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 827# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 828# GFX10: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 829name: gfx10_tbuffer_load_x_xyz 830body: | 831 bb.0.entry: 832 %0:sgpr_32 = COPY $sgpr0 833 %1:sgpr_32 = COPY $sgpr1 834 %2:sgpr_32 = COPY $sgpr2 835 %3:sgpr_32 = COPY $sgpr3 836 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 837 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 838 %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 8, 74, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 839... 840--- 841 842# GFX10-LABEL: name: gfx10_tbuffer_load_xyz_x 843# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 844# GFX10: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 845# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 846name: gfx10_tbuffer_load_xyz_x 847body: | 848 bb.0.entry: 849 %0:sgpr_32 = COPY $sgpr0 850 %1:sgpr_32 = COPY $sgpr1 851 %2:sgpr_32 = COPY $sgpr2 852 %3:sgpr_32 = COPY $sgpr3 853 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 854 %7:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 855 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 856... 857--- 858 859# GFX10-LABEL: name: gfx10_tbuffer_load_xy_xy 860# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 861# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 862# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 863name: gfx10_tbuffer_load_xy_xy 864body: | 865 bb.0.entry: 866 %0:sgpr_32 = COPY $sgpr0 867 %1:sgpr_32 = COPY $sgpr1 868 %2:sgpr_32 = COPY $sgpr2 869 %3:sgpr_32 = COPY $sgpr3 870 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 871 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 872 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 12, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 873... 874--- 875 876# GFX10-LABEL: name: gfx10_tbuffer_load_x_xy 877# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 878# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 879# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 880name: gfx10_tbuffer_load_x_xy 881body: | 882 bb.0.entry: 883 %0:sgpr_32 = COPY $sgpr0 884 %1:sgpr_32 = COPY $sgpr1 885 %2:sgpr_32 = COPY $sgpr2 886 %3:sgpr_32 = COPY $sgpr3 887 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 888 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 889 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 8, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 890... 891--- 892 893# GFX10-LABEL: name: gfx10_tbuffer_load_xy_x 894# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 895# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 896# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 897name: gfx10_tbuffer_load_xy_x 898body: | 899 bb.0.entry: 900 %0:sgpr_32 = COPY $sgpr0 901 %1:sgpr_32 = COPY $sgpr1 902 %2:sgpr_32 = COPY $sgpr2 903 %3:sgpr_32 = COPY $sgpr3 904 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 905 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 906 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 907... 908--- 909 910 911# GFX10-LABEL: name: gfx10_tbuffer_load_x_x 912# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 913# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 914# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 915 916name: gfx10_tbuffer_load_x_x 917body: | 918 bb.0.entry: 919 %0:sgpr_32 = COPY $sgpr0 920 %1:sgpr_32 = COPY $sgpr1 921 %2:sgpr_32 = COPY $sgpr2 922 %3:sgpr_32 = COPY $sgpr3 923 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 924 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 925 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 926... 927--- 928 929# GFX10-LABEL: name: gfx10_tbuffer_load_x_x_format_32_32_32_32 930# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 931# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 932# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 933 934name: gfx10_tbuffer_load_x_x_format_32_32_32_32 935body: | 936 bb.0.entry: 937 %0:sgpr_32 = COPY $sgpr0 938 %1:sgpr_32 = COPY $sgpr1 939 %2:sgpr_32 = COPY $sgpr2 940 %3:sgpr_32 = COPY $sgpr3 941 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 942 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 943 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 944... 945--- 946 947 948# GFX10-LABEL: name: gfx10_tbuffer_load_float_32 949# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 950# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 951# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 952# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 77, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 953# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 954# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 955# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 956# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 957# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 958# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 959# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 74, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 960# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 961# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 962# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 963# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 964 965name: gfx10_tbuffer_load_float_32 966body: | 967 bb.0.entry: 968 %0:sgpr_32 = COPY $sgpr0 969 %1:sgpr_32 = COPY $sgpr1 970 %2:sgpr_32 = COPY $sgpr2 971 %3:sgpr_32 = COPY $sgpr3 972 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 973 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 974 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 975 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 976 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 977 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 978 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 979 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 980 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 981 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 982... 983--- 984 985# GFX10-LABEL: name: gfx10_tbuffer_load_sint_32 986# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 987# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 988# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 989# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 76, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 990# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 991# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 992# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 993# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 994# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 995# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 996# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 73, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 997# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 998# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 999# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1000# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1001 1002name: gfx10_tbuffer_load_sint_32 1003body: | 1004 bb.0.entry: 1005 %0:sgpr_32 = COPY $sgpr0 1006 %1:sgpr_32 = COPY $sgpr1 1007 %2:sgpr_32 = COPY $sgpr2 1008 %3:sgpr_32 = COPY $sgpr3 1009 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1010 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1011 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1012 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1013 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1014 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1015 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1016 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1017 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1018 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1019... 1020--- 1021 1022# GFX10-LABEL: name: gfx10_tbuffer_load_uint_32 1023# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 62, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1024# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 1025# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 1026# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 75, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1027# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 1028# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 1029# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 1030# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 1031# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 1032# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 1033# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 72, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1034# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 1035# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 1036# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1037# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1038 1039name: gfx10_tbuffer_load_uint_32 1040body: | 1041 bb.0.entry: 1042 %0:sgpr_32 = COPY $sgpr0 1043 %1:sgpr_32 = COPY $sgpr1 1044 %2:sgpr_32 = COPY $sgpr2 1045 %3:sgpr_32 = COPY $sgpr3 1046 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1047 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1048 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1049 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1050 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1051 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1052 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1053 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1054 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1055 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 20, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1056... 1057--- 1058 1059# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1060# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1061# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1062# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1063# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1064# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1065# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1066# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1067# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1068# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1069# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1070# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1071# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1072# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1073# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1074 1075 1076name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1077body: | 1078 bb.0.entry: 1079 %0:sgpr_32 = COPY $sgpr0 1080 %1:sgpr_32 = COPY $sgpr1 1081 %2:sgpr_32 = COPY $sgpr2 1082 %3:sgpr_32 = COPY $sgpr3 1083 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1084 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1085 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1086 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1087 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1088 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1089 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1090 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1091 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1092 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1093... 1094--- 1095 1096# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1097# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1098# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1099# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1100# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1101# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1102# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1103# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1104# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1105# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1106# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1107# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1108# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1109# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1110# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1111name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1112body: | 1113 bb.0.entry: 1114 %0:sgpr_32 = COPY $sgpr0 1115 %1:sgpr_32 = COPY $sgpr1 1116 %2:sgpr_32 = COPY $sgpr2 1117 %3:sgpr_32 = COPY $sgpr3 1118 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1119 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1120 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1121 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1122 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1123 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1124 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1125 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1126 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1127 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1128... 1129--- 1130 1131 1132 1133# GFX10-LABEL: name: gfx10_tbuffer_store_x_xyz 1134# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1135# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 1136# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1137name: gfx10_tbuffer_store_x_xyz 1138body: | 1139 bb.0.entry: 1140 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1141 %7:vgpr_32 = COPY $vgpr3 1142 %6:vgpr_32 = COPY $vgpr2 1143 %5:vgpr_32 = COPY $vgpr1 1144 %4:vgpr_32 = COPY $vgpr0 1145 %3:sgpr_32 = COPY $sgpr3 1146 %2:sgpr_32 = COPY $sgpr2 1147 %1:sgpr_32 = COPY $sgpr1 1148 %0:sgpr_32 = COPY $sgpr0 1149 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1150 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1151 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1152 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 8, 74, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1153... 1154--- 1155 1156 1157# GFX10-LABEL: name: gfx10_tbuffer_store_xyz_x 1158# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1159# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 1160# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1161name: gfx10_tbuffer_store_xyz_x 1162body: | 1163 bb.0.entry: 1164 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1165 %7:vgpr_32 = COPY $vgpr3 1166 %6:vgpr_32 = COPY $vgpr2 1167 %5:vgpr_32 = COPY $vgpr1 1168 %4:vgpr_32 = COPY $vgpr0 1169 %3:sgpr_32 = COPY $sgpr3 1170 %2:sgpr_32 = COPY $sgpr2 1171 %1:sgpr_32 = COPY $sgpr1 1172 %0:sgpr_32 = COPY $sgpr0 1173 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1174 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1175 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1176 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1177... 1178--- 1179 1180# GFX10-LABEL: name: gfx10_tbuffer_store_xy_xy 1181# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1182# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1183# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 1184# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %11, %8, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1185name: gfx10_tbuffer_store_xy_xy 1186body: | 1187 bb.0.entry: 1188 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1189 %7:vgpr_32 = COPY $vgpr3 1190 %6:vgpr_32 = COPY $vgpr2 1191 %5:vgpr_32 = COPY $vgpr1 1192 %4:vgpr_32 = COPY $vgpr0 1193 %3:sgpr_32 = COPY $sgpr3 1194 %2:sgpr_32 = COPY $sgpr2 1195 %1:sgpr_32 = COPY $sgpr1 1196 %0:sgpr_32 = COPY $sgpr0 1197 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1198 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1199 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 1200 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1201 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 12, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1202... 1203--- 1204 1205# GFX10-LABEL: name: gfx10_tbuffer_store_x_xy 1206# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1207# GFX10: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 1208# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %11, %8, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1209name: gfx10_tbuffer_store_x_xy 1210body: | 1211 bb.0.entry: 1212 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1213 %7:vgpr_32 = COPY $vgpr3 1214 %6:vgpr_32 = COPY $vgpr2 1215 %5:vgpr_32 = COPY $vgpr1 1216 %4:vgpr_32 = COPY $vgpr0 1217 %3:sgpr_32 = COPY $sgpr3 1218 %2:sgpr_32 = COPY $sgpr2 1219 %1:sgpr_32 = COPY $sgpr1 1220 %0:sgpr_32 = COPY $sgpr0 1221 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1222 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1223 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1224 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 8, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1225... 1226--- 1227 1228# GFX10-LABEL: name: gfx10_tbuffer_store_xy_x 1229# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1230# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 1231# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %10, %8, 0, 4, 74, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1232name: gfx10_tbuffer_store_xy_x 1233body: | 1234 bb.0.entry: 1235 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1236 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1237 %7:vgpr_32 = COPY $vgpr3 1238 %6:vgpr_32 = COPY $vgpr2 1239 %5:vgpr_32 = COPY $vgpr1 1240 %4:vgpr_32 = COPY $vgpr0 1241 %3:sgpr_32 = COPY $sgpr3 1242 %2:sgpr_32 = COPY $sgpr2 1243 %1:sgpr_32 = COPY $sgpr1 1244 %0:sgpr_32 = COPY $sgpr0 1245 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1246 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1247 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1248 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 12, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1249... 1250--- 1251 1252 1253# GFX10-LABEL: name: gfx10_tbuffer_store_x_x 1254# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1255# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1256name: gfx10_tbuffer_store_x_x 1257body: | 1258 bb.0.entry: 1259 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1260 %7:vgpr_32 = COPY $vgpr3 1261 %6:vgpr_32 = COPY $vgpr2 1262 %5:vgpr_32 = COPY $vgpr1 1263 %4:vgpr_32 = COPY $vgpr0 1264 %3:sgpr_32 = COPY $sgpr3 1265 %2:sgpr_32 = COPY $sgpr2 1266 %1:sgpr_32 = COPY $sgpr1 1267 %0:sgpr_32 = COPY $sgpr0 1268 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1269 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1270 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1271... 1272--- 1273 1274# GFX10-LABEL: name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1275# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1276# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1277name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1278body: | 1279 bb.0.entry: 1280 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1281 %7:vgpr_32 = COPY $vgpr3 1282 %6:vgpr_32 = COPY $vgpr2 1283 %5:vgpr_32 = COPY $vgpr1 1284 %4:vgpr_32 = COPY $vgpr0 1285 %3:sgpr_32 = COPY $sgpr3 1286 %2:sgpr_32 = COPY $sgpr2 1287 %1:sgpr_32 = COPY $sgpr1 1288 %0:sgpr_32 = COPY $sgpr0 1289 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1290 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1291 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1292... 1293--- 1294 1295# GFX10-LABEL: name: gfx10_tbuffer_store_float32 1296# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1297# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1298# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1299# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1300# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1301# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1302# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1303# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1304# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1305# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1306# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1307# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1308# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1309# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1310# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1311# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1312# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1313# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1314# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1315# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 77, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1316# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1317# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1318# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 74, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1319name: gfx10_tbuffer_store_float32 1320body: | 1321 bb.0.entry: 1322 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1323 %12:vgpr_32 = COPY $vgpr8 1324 %11:vgpr_32 = COPY $vgpr7 1325 %10:vgpr_32 = COPY $vgpr6 1326 %9:vgpr_32 = COPY $vgpr5 1327 %8:vgpr_32 = COPY $vgpr4 1328 %7:vgpr_32 = COPY $vgpr3 1329 %6:vgpr_32 = COPY $vgpr2 1330 %5:vgpr_32 = COPY $vgpr1 1331 %4:vgpr_32 = COPY $vgpr0 1332 %3:sgpr_32 = COPY $sgpr3 1333 %2:sgpr_32 = COPY $sgpr2 1334 %1:sgpr_32 = COPY $sgpr1 1335 %0:sgpr_32 = COPY $sgpr0 1336 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1337 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1338 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1339 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1340 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1341 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1342 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1343 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1344 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1345 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1346... 1347--- 1348 1349# GFX10-LABEL: name: gfx10_tbuffer_store_sint32 1350# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1351# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1352# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1353# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1354# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1355# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1356# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1357# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1358# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1359# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1360# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1361# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1362# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1363# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1364# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1365# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1366# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1367# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1368# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1369# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 76, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1370# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1371# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1372# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 73, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1373name: gfx10_tbuffer_store_sint32 1374body: | 1375 bb.0.entry: 1376 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1377 %12:vgpr_32 = COPY $vgpr8 1378 %11:vgpr_32 = COPY $vgpr7 1379 %10:vgpr_32 = COPY $vgpr6 1380 %9:vgpr_32 = COPY $vgpr5 1381 %8:vgpr_32 = COPY $vgpr4 1382 %7:vgpr_32 = COPY $vgpr3 1383 %6:vgpr_32 = COPY $vgpr2 1384 %5:vgpr_32 = COPY $vgpr1 1385 %4:vgpr_32 = COPY $vgpr0 1386 %3:sgpr_32 = COPY $sgpr3 1387 %2:sgpr_32 = COPY $sgpr2 1388 %1:sgpr_32 = COPY $sgpr1 1389 %0:sgpr_32 = COPY $sgpr0 1390 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1391 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1392 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1393 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1394 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1395 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1396 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1397 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1398 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1399 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1400... 1401--- 1402 1403# GFX10-LABEL: name: gfx10_tbuffer_store_uint32 1404# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1405# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1406# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1407# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1408# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1409# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1410# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1411# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1412# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1413# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1414# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1415# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1416# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1417# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1418# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1419# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 62, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 1420# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1421# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1422# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1423# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 75, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1424# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1425# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1426# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 72, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 1427name: gfx10_tbuffer_store_uint32 1428body: | 1429 bb.0.entry: 1430 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1431 %12:vgpr_32 = COPY $vgpr8 1432 %11:vgpr_32 = COPY $vgpr7 1433 %10:vgpr_32 = COPY $vgpr6 1434 %9:vgpr_32 = COPY $vgpr5 1435 %8:vgpr_32 = COPY $vgpr4 1436 %7:vgpr_32 = COPY $vgpr3 1437 %6:vgpr_32 = COPY $vgpr2 1438 %5:vgpr_32 = COPY $vgpr1 1439 %4:vgpr_32 = COPY $vgpr0 1440 %3:sgpr_32 = COPY $sgpr3 1441 %2:sgpr_32 = COPY $sgpr2 1442 %1:sgpr_32 = COPY $sgpr1 1443 %0:sgpr_32 = COPY $sgpr0 1444 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1445 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1446 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1447 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1448 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1449 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1450 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1451 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1452 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1453 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 20, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1454... 1455--- 1456 1457# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1458# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1459# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1460# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1461# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1462# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1463# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1464# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1465# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1466# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1467# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1468# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1469# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1470# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1471# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1472# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1473# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1474# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1475# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1476# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1477# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1478# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1479# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1480# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1481name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1482body: | 1483 bb.0.entry: 1484 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1485 %12:vgpr_32 = COPY $vgpr8 1486 %11:vgpr_32 = COPY $vgpr7 1487 %10:vgpr_32 = COPY $vgpr6 1488 %9:vgpr_32 = COPY $vgpr5 1489 %8:vgpr_32 = COPY $vgpr4 1490 %7:vgpr_32 = COPY $vgpr3 1491 %6:vgpr_32 = COPY $vgpr2 1492 %5:vgpr_32 = COPY $vgpr1 1493 %4:vgpr_32 = COPY $vgpr0 1494 %3:sgpr_32 = COPY $sgpr3 1495 %2:sgpr_32 = COPY $sgpr2 1496 %1:sgpr_32 = COPY $sgpr1 1497 %0:sgpr_32 = COPY $sgpr0 1498 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1499 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1500 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1501 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1502 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1503 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1504 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1505 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1506 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1507 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1508... 1509--- 1510 1511# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1512# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1513# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1514# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1515# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1516# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1517# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1518# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1519# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1520# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1521# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1522# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1523# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1524# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1525# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1526# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1527# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1528# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1529# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1530# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1531# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1532# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1533# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1534# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1535name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1536body: | 1537 bb.0.entry: 1538 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1539 %12:vgpr_32 = COPY $vgpr8 1540 %11:vgpr_32 = COPY $vgpr7 1541 %10:vgpr_32 = COPY $vgpr6 1542 %9:vgpr_32 = COPY $vgpr5 1543 %8:vgpr_32 = COPY $vgpr4 1544 %7:vgpr_32 = COPY $vgpr3 1545 %6:vgpr_32 = COPY $vgpr2 1546 %5:vgpr_32 = COPY $vgpr1 1547 %4:vgpr_32 = COPY $vgpr0 1548 %3:sgpr_32 = COPY $sgpr3 1549 %2:sgpr_32 = COPY $sgpr2 1550 %1:sgpr_32 = COPY $sgpr1 1551 %0:sgpr_32 = COPY $sgpr0 1552 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1553 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1554 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1555 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1556 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1557 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1558 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1559 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1560 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1561 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1562... 1563--- 1564 1565 1566# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_0 1567# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1568# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1569name: gfx10_tbuffer_load_not_merged_swizzled_0 1570body: | 1571 bb.0.entry: 1572 %0:sgpr_32 = COPY $sgpr0 1573 %1:sgpr_32 = COPY $sgpr1 1574 %2:sgpr_32 = COPY $sgpr2 1575 %3:sgpr_32 = COPY $sgpr3 1576 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1577 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1578 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1579... 1580--- 1581 1582 1583# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_1 1584# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1585# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1586name: gfx10_tbuffer_load_not_merged_swizzled_1 1587body: | 1588 bb.0.entry: 1589 %0:sgpr_32 = COPY $sgpr0 1590 %1:sgpr_32 = COPY $sgpr1 1591 %2:sgpr_32 = COPY $sgpr2 1592 %3:sgpr_32 = COPY $sgpr3 1593 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1594 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1595 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1596... 1597--- 1598 1599 1600# GFX10-LABEL: name: gfx10_tbuffer_load_merge_across_swizzle 1601# GFX10-DAG: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 12, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1602# GFX10-DAG: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1603name: gfx10_tbuffer_load_merge_across_swizzle 1604body: | 1605 bb.0.entry: 1606 %0:sgpr_32 = COPY $sgpr0 1607 %1:sgpr_32 = COPY $sgpr1 1608 %2:sgpr_32 = COPY $sgpr2 1609 %3:sgpr_32 = COPY $sgpr3 1610 %4:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1611 %5:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1612 %6:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 12, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1613 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1614... 1615--- 1616 1617 1618# 1619# GFX11 tests 1620# 1621 1622# GFX11-LABEL: name: gfx11_tbuffer_load_x_xyz 1623# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1624# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 1625# GFX11: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 1626name: gfx11_tbuffer_load_x_xyz 1627body: | 1628 bb.0.entry: 1629 %0:sgpr_32 = COPY $sgpr0 1630 %1:sgpr_32 = COPY $sgpr1 1631 %2:sgpr_32 = COPY $sgpr2 1632 %3:sgpr_32 = COPY $sgpr3 1633 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1634 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1635 %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 8, 60, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 1636... 1637--- 1638 1639# GFX11-LABEL: name: gfx11_tbuffer_load_xyz_x 1640# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1641# GFX11: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 1642# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 1643name: gfx11_tbuffer_load_xyz_x 1644body: | 1645 bb.0.entry: 1646 %0:sgpr_32 = COPY $sgpr0 1647 %1:sgpr_32 = COPY $sgpr1 1648 %2:sgpr_32 = COPY $sgpr2 1649 %3:sgpr_32 = COPY $sgpr3 1650 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1651 %7:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1652 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 1653... 1654--- 1655 1656# GFX11-LABEL: name: gfx11_tbuffer_load_xy_xy 1657# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1658# GFX11: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 1659# GFX11: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 1660name: gfx11_tbuffer_load_xy_xy 1661body: | 1662 bb.0.entry: 1663 %0:sgpr_32 = COPY $sgpr0 1664 %1:sgpr_32 = COPY $sgpr1 1665 %2:sgpr_32 = COPY $sgpr2 1666 %3:sgpr_32 = COPY $sgpr3 1667 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1668 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 1669 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 12, 50, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 1670... 1671--- 1672 1673# GFX11-LABEL: name: gfx11_tbuffer_load_x_xy 1674# GFX11: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1675# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 1676# GFX11: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 1677name: gfx11_tbuffer_load_x_xy 1678body: | 1679 bb.0.entry: 1680 %0:sgpr_32 = COPY $sgpr0 1681 %1:sgpr_32 = COPY $sgpr1 1682 %2:sgpr_32 = COPY $sgpr2 1683 %3:sgpr_32 = COPY $sgpr3 1684 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1685 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1686 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 8, 50, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 1687... 1688--- 1689 1690# GFX11-LABEL: name: gfx11_tbuffer_load_xy_x 1691# GFX11: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1692# GFX11: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 1693# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 1694name: gfx11_tbuffer_load_xy_x 1695body: | 1696 bb.0.entry: 1697 %0:sgpr_32 = COPY $sgpr0 1698 %1:sgpr_32 = COPY $sgpr1 1699 %2:sgpr_32 = COPY $sgpr2 1700 %3:sgpr_32 = COPY $sgpr3 1701 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1702 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 1703 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1704... 1705--- 1706 1707 1708# GFX11-LABEL: name: gfx11_tbuffer_load_x_x 1709# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1710# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 1711# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 1712 1713name: gfx11_tbuffer_load_x_x 1714body: | 1715 bb.0.entry: 1716 %0:sgpr_32 = COPY $sgpr0 1717 %1:sgpr_32 = COPY $sgpr1 1718 %2:sgpr_32 = COPY $sgpr2 1719 %3:sgpr_32 = COPY $sgpr3 1720 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1721 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1722 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1723... 1724--- 1725 1726# GFX11-LABEL: name: gfx11_tbuffer_load_x_x_format_32_32_32_32 1727# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1728# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 1729# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 1730 1731name: gfx11_tbuffer_load_x_x_format_32_32_32_32 1732body: | 1733 bb.0.entry: 1734 %0:sgpr_32 = COPY $sgpr0 1735 %1:sgpr_32 = COPY $sgpr1 1736 %2:sgpr_32 = COPY $sgpr2 1737 %3:sgpr_32 = COPY $sgpr3 1738 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1739 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1740 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 63, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1741... 1742--- 1743 1744 1745# GFX11-LABEL: name: gfx11_tbuffer_load_float_32 1746# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1747# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 1748# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 1749# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 63, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1750# GFX11: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 1751# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 1752# GFX11: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 1753# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 1754# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 1755# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 1756# GFX11: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 60, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1757# GFX11: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 1758# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 1759# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1760# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1761 1762name: gfx11_tbuffer_load_float_32 1763body: | 1764 bb.0.entry: 1765 %0:sgpr_32 = COPY $sgpr0 1766 %1:sgpr_32 = COPY $sgpr1 1767 %2:sgpr_32 = COPY $sgpr2 1768 %3:sgpr_32 = COPY $sgpr3 1769 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1770 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1771 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1772 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1773 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1774 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1775 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1776 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1777 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1778 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1779... 1780--- 1781 1782# GFX11-LABEL: name: gfx11_tbuffer_load_sint_32 1783# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 49, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1784# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 1785# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 1786# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 62, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1787# GFX11: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 1788# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 1789# GFX11: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 1790# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 1791# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 1792# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 1793# GFX11: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 59, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1794# GFX11: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 1795# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 1796# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1797# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1798 1799name: gfx11_tbuffer_load_sint_32 1800body: | 1801 bb.0.entry: 1802 %0:sgpr_32 = COPY $sgpr0 1803 %1:sgpr_32 = COPY $sgpr1 1804 %2:sgpr_32 = COPY $sgpr2 1805 %3:sgpr_32 = COPY $sgpr3 1806 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1807 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1808 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1809 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1810 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1811 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1812 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1813 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1814 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1815 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1816... 1817--- 1818 1819# GFX11-LABEL: name: gfx11_tbuffer_load_uint_32 1820# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 48, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 1821# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 1822# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 1823# GFX11: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 61, 0, 0, 0, implicit $exec :: (dereferenceable load (s128), align 1, addrspace 4) 1824# GFX11: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 1825# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 1826# GFX11: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 1827# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 1828# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 1829# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 1830# GFX11: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 58, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 1, addrspace 4) 1831# GFX11: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 1832# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 1833# GFX11: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1834# GFX11: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1835 1836name: gfx11_tbuffer_load_uint_32 1837body: | 1838 bb.0.entry: 1839 %0:sgpr_32 = COPY $sgpr0 1840 %1:sgpr_32 = COPY $sgpr1 1841 %2:sgpr_32 = COPY $sgpr2 1842 %3:sgpr_32 = COPY $sgpr3 1843 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1844 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1845 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1846 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1847 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1848 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1849 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1850 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1851 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1852 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 20, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1853... 1854--- 1855 1856# GFX11-LABEL: name: gfx11_tbuffer_load_not_merged_data_format_mismatch 1857# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1858# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1859# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1860# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1861# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1862# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1863# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1864# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1865# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1866# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1867# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1868# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1869# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1870# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1871 1872 1873name: gfx11_tbuffer_load_not_merged_data_format_mismatch 1874body: | 1875 bb.0.entry: 1876 %0:sgpr_32 = COPY $sgpr0 1877 %1:sgpr_32 = COPY $sgpr1 1878 %2:sgpr_32 = COPY $sgpr2 1879 %3:sgpr_32 = COPY $sgpr3 1880 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1881 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1882 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1883 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1884 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1885 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1886 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1887 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1888 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1889 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1890... 1891--- 1892 1893# GFX11-LABEL: name: gfx11_tbuffer_load_not_merged_num_format_mismatch 1894# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1895# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1896# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1897# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1898# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1899# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1900# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1901# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1902# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1903# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1904# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1905# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1906# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1907# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 1908name: gfx11_tbuffer_load_not_merged_num_format_mismatch 1909body: | 1910 bb.0.entry: 1911 %0:sgpr_32 = COPY $sgpr0 1912 %1:sgpr_32 = COPY $sgpr1 1913 %2:sgpr_32 = COPY $sgpr2 1914 %3:sgpr_32 = COPY $sgpr3 1915 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1916 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1917 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1918 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1919 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1920 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1921 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1922 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1923 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1924 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1925... 1926--- 1927 1928 1929 1930# GFX11-LABEL: name: gfx11_tbuffer_store_x_xyz 1931# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1932# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 1933# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1934name: gfx11_tbuffer_store_x_xyz 1935body: | 1936 bb.0.entry: 1937 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1938 %7:vgpr_32 = COPY $vgpr3 1939 %6:vgpr_32 = COPY $vgpr2 1940 %5:vgpr_32 = COPY $vgpr1 1941 %4:vgpr_32 = COPY $vgpr0 1942 %3:sgpr_32 = COPY $sgpr3 1943 %2:sgpr_32 = COPY $sgpr2 1944 %1:sgpr_32 = COPY $sgpr1 1945 %0:sgpr_32 = COPY $sgpr0 1946 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1947 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1948 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1949 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 8, 60, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1950... 1951--- 1952 1953 1954# GFX11-LABEL: name: gfx11_tbuffer_store_xyz_x 1955# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1956# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 1957# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1958name: gfx11_tbuffer_store_xyz_x 1959body: | 1960 bb.0.entry: 1961 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1962 %7:vgpr_32 = COPY $vgpr3 1963 %6:vgpr_32 = COPY $vgpr2 1964 %5:vgpr_32 = COPY $vgpr1 1965 %4:vgpr_32 = COPY $vgpr0 1966 %3:sgpr_32 = COPY $sgpr3 1967 %2:sgpr_32 = COPY $sgpr2 1968 %1:sgpr_32 = COPY $sgpr1 1969 %0:sgpr_32 = COPY $sgpr0 1970 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1971 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1972 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1973 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1974... 1975--- 1976 1977# GFX11-LABEL: name: gfx11_tbuffer_store_xy_xy 1978# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1979# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1980# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 1981# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %11, %8, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 1982name: gfx11_tbuffer_store_xy_xy 1983body: | 1984 bb.0.entry: 1985 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1986 %7:vgpr_32 = COPY $vgpr3 1987 %6:vgpr_32 = COPY $vgpr2 1988 %5:vgpr_32 = COPY $vgpr1 1989 %4:vgpr_32 = COPY $vgpr0 1990 %3:sgpr_32 = COPY $sgpr3 1991 %2:sgpr_32 = COPY $sgpr2 1992 %1:sgpr_32 = COPY $sgpr1 1993 %0:sgpr_32 = COPY $sgpr0 1994 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 1995 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1996 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 1997 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1998 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 12, 50, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1999... 2000--- 2001 2002# GFX11-LABEL: name: gfx11_tbuffer_store_x_xy 2003# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 2004# GFX11: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 2005# GFX11: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %11, %8, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 2006name: gfx11_tbuffer_store_x_xy 2007body: | 2008 bb.0.entry: 2009 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2010 %7:vgpr_32 = COPY $vgpr3 2011 %6:vgpr_32 = COPY $vgpr2 2012 %5:vgpr_32 = COPY $vgpr1 2013 %4:vgpr_32 = COPY $vgpr0 2014 %3:sgpr_32 = COPY $sgpr3 2015 %2:sgpr_32 = COPY $sgpr2 2016 %1:sgpr_32 = COPY $sgpr1 2017 %0:sgpr_32 = COPY $sgpr0 2018 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2019 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 2020 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2021 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 8, 50, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 2022... 2023--- 2024 2025# GFX11-LABEL: name: gfx11_tbuffer_store_xy_x 2026# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 2027# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 2028# GFX11: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %10, %8, 0, 4, 60, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 2029name: gfx11_tbuffer_store_xy_x 2030body: | 2031 bb.0.entry: 2032 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2033 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2034 %7:vgpr_32 = COPY $vgpr3 2035 %6:vgpr_32 = COPY $vgpr2 2036 %5:vgpr_32 = COPY $vgpr1 2037 %4:vgpr_32 = COPY $vgpr0 2038 %3:sgpr_32 = COPY $sgpr3 2039 %2:sgpr_32 = COPY $sgpr2 2040 %1:sgpr_32 = COPY $sgpr1 2041 %0:sgpr_32 = COPY $sgpr0 2042 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2043 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 2044 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 2045 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 12, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2046... 2047--- 2048 2049 2050# GFX11-LABEL: name: gfx11_tbuffer_store_x_x 2051# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 2052# GFX11: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 2053name: gfx11_tbuffer_store_x_x 2054body: | 2055 bb.0.entry: 2056 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2057 %7:vgpr_32 = COPY $vgpr3 2058 %6:vgpr_32 = COPY $vgpr2 2059 %5:vgpr_32 = COPY $vgpr1 2060 %4:vgpr_32 = COPY $vgpr0 2061 %3:sgpr_32 = COPY $sgpr3 2062 %2:sgpr_32 = COPY $sgpr2 2063 %1:sgpr_32 = COPY $sgpr1 2064 %0:sgpr_32 = COPY $sgpr0 2065 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2066 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2067 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2068... 2069--- 2070 2071# GFX11-LABEL: name: gfx11_tbuffer_store_x_x_format_32_32_32_32 2072# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 2073# GFX11: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 2074name: gfx11_tbuffer_store_x_x_format_32_32_32_32 2075body: | 2076 bb.0.entry: 2077 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2078 %7:vgpr_32 = COPY $vgpr3 2079 %6:vgpr_32 = COPY $vgpr2 2080 %5:vgpr_32 = COPY $vgpr1 2081 %4:vgpr_32 = COPY $vgpr0 2082 %3:sgpr_32 = COPY $sgpr3 2083 %2:sgpr_32 = COPY $sgpr2 2084 %1:sgpr_32 = COPY $sgpr1 2085 %0:sgpr_32 = COPY $sgpr0 2086 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2087 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 63, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2088 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 63, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2089... 2090--- 2091 2092# GFX11-LABEL: name: gfx11_tbuffer_store_float32 2093# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 2094# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 2095# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 2096# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 2097# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 2098# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 2099# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 2100# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 2101# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 2102# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 2103# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 2104# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 2105# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 2106# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 2107# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 2108# GFX11: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 2109# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 2110# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 2111# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 2112# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 63, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 2113# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 2114# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 2115# GFX11: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 60, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 2116name: gfx11_tbuffer_store_float32 2117body: | 2118 bb.0.entry: 2119 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 2120 %12:vgpr_32 = COPY $vgpr8 2121 %11:vgpr_32 = COPY $vgpr7 2122 %10:vgpr_32 = COPY $vgpr6 2123 %9:vgpr_32 = COPY $vgpr5 2124 %8:vgpr_32 = COPY $vgpr4 2125 %7:vgpr_32 = COPY $vgpr3 2126 %6:vgpr_32 = COPY $vgpr2 2127 %5:vgpr_32 = COPY $vgpr1 2128 %4:vgpr_32 = COPY $vgpr0 2129 %3:sgpr_32 = COPY $sgpr3 2130 %2:sgpr_32 = COPY $sgpr2 2131 %1:sgpr_32 = COPY $sgpr1 2132 %0:sgpr_32 = COPY $sgpr0 2133 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2134 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2135 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2136 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2137 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2138 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2139 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2140 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2141 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2142 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2143... 2144--- 2145 2146# GFX11-LABEL: name: gfx11_tbuffer_store_sint32 2147# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 2148# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 2149# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 2150# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 2151# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 2152# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 2153# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 2154# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 2155# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 2156# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 2157# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 2158# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 2159# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 2160# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 2161# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 2162# GFX11: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 49, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 2163# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 2164# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 2165# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 2166# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 62, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 2167# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 2168# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 2169# GFX11: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 59, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 2170name: gfx11_tbuffer_store_sint32 2171body: | 2172 bb.0.entry: 2173 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 2174 %12:vgpr_32 = COPY $vgpr8 2175 %11:vgpr_32 = COPY $vgpr7 2176 %10:vgpr_32 = COPY $vgpr6 2177 %9:vgpr_32 = COPY $vgpr5 2178 %8:vgpr_32 = COPY $vgpr4 2179 %7:vgpr_32 = COPY $vgpr3 2180 %6:vgpr_32 = COPY $vgpr2 2181 %5:vgpr_32 = COPY $vgpr1 2182 %4:vgpr_32 = COPY $vgpr0 2183 %3:sgpr_32 = COPY $sgpr3 2184 %2:sgpr_32 = COPY $sgpr2 2185 %1:sgpr_32 = COPY $sgpr1 2186 %0:sgpr_32 = COPY $sgpr0 2187 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2188 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2189 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2190 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2191 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2192 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2193 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2194 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2195 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2196 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2197... 2198--- 2199 2200# GFX11-LABEL: name: gfx11_tbuffer_store_uint32 2201# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 2202# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 2203# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 2204# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 2205# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 2206# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 2207# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 2208# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 2209# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 2210# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 2211# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 2212# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 2213# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 2214# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 2215# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 2216# GFX11: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 48, 0, 0, 0, implicit $exec :: (dereferenceable store (s64), align 1, addrspace 4) 2217# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 2218# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 2219# GFX11: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 2220# GFX11: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 61, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), align 1, addrspace 4) 2221# GFX11: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 2222# GFX11: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 2223# GFX11: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 58, 0, 0, 0, implicit $exec :: (dereferenceable store (s96), align 1, addrspace 4) 2224name: gfx11_tbuffer_store_uint32 2225body: | 2226 bb.0.entry: 2227 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 2228 %12:vgpr_32 = COPY $vgpr8 2229 %11:vgpr_32 = COPY $vgpr7 2230 %10:vgpr_32 = COPY $vgpr6 2231 %9:vgpr_32 = COPY $vgpr5 2232 %8:vgpr_32 = COPY $vgpr4 2233 %7:vgpr_32 = COPY $vgpr3 2234 %6:vgpr_32 = COPY $vgpr2 2235 %5:vgpr_32 = COPY $vgpr1 2236 %4:vgpr_32 = COPY $vgpr0 2237 %3:sgpr_32 = COPY $sgpr3 2238 %2:sgpr_32 = COPY $sgpr2 2239 %1:sgpr_32 = COPY $sgpr1 2240 %0:sgpr_32 = COPY $sgpr0 2241 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2242 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2243 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2244 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2245 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2246 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2247 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2248 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2249 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2250 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 20, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2251... 2252--- 2253 2254# GFX11-LABEL: name: gfx11_tbuffer_store_not_merged_data_format_mismatch 2255# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 2256# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 2257# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 2258# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 2259# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 2260# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 2261# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 2262# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 2263# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 2264# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 2265# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 2266# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 2267# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 2268# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 2269# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2270# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2271# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2272# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2273# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2274# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2275# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 30, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2276# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2277# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 32, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2278name: gfx11_tbuffer_store_not_merged_data_format_mismatch 2279body: | 2280 bb.0.entry: 2281 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 2282 %12:vgpr_32 = COPY $vgpr8 2283 %11:vgpr_32 = COPY $vgpr7 2284 %10:vgpr_32 = COPY $vgpr6 2285 %9:vgpr_32 = COPY $vgpr5 2286 %8:vgpr_32 = COPY $vgpr4 2287 %7:vgpr_32 = COPY $vgpr3 2288 %6:vgpr_32 = COPY $vgpr2 2289 %5:vgpr_32 = COPY $vgpr1 2290 %4:vgpr_32 = COPY $vgpr0 2291 %3:sgpr_32 = COPY $sgpr3 2292 %2:sgpr_32 = COPY $sgpr2 2293 %1:sgpr_32 = COPY $sgpr1 2294 %0:sgpr_32 = COPY $sgpr0 2295 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2296 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2297 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2298 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2299 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2300 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2301 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2302 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 30, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2303 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2304 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 32, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2305... 2306--- 2307 2308# GFX11-LABEL: name: gfx11_tbuffer_store_not_merged_num_format_mismatch 2309# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 2310# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 2311# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 2312# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 2313# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 2314# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 2315# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 2316# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 2317# GFX11: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 2318# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 2319# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 2320# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 2321# GFX11: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 2322# GFX11: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 2323# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2324# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2325# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2326# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2327# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2328# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2329# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 30, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2330# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2331# GFX11: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 32, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 2332name: gfx11_tbuffer_store_not_merged_num_format_mismatch 2333body: | 2334 bb.0.entry: 2335 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 2336 %12:vgpr_32 = COPY $vgpr8 2337 %11:vgpr_32 = COPY $vgpr7 2338 %10:vgpr_32 = COPY $vgpr6 2339 %9:vgpr_32 = COPY $vgpr5 2340 %8:vgpr_32 = COPY $vgpr4 2341 %7:vgpr_32 = COPY $vgpr3 2342 %6:vgpr_32 = COPY $vgpr2 2343 %5:vgpr_32 = COPY $vgpr1 2344 %4:vgpr_32 = COPY $vgpr0 2345 %3:sgpr_32 = COPY $sgpr3 2346 %2:sgpr_32 = COPY $sgpr2 2347 %1:sgpr_32 = COPY $sgpr1 2348 %0:sgpr_32 = COPY $sgpr0 2349 %13:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2350 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2351 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2352 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2353 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2354 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2355 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2356 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 30, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2357 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2358 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 32, 22, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 2359... 2360--- 2361 2362 2363# GFX11-LABEL: name: gfx11_tbuffer_load_not_merged_swizzled_0 2364# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2365# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2366name: gfx11_tbuffer_load_not_merged_swizzled_0 2367body: | 2368 bb.0.entry: 2369 %0:sgpr_32 = COPY $sgpr0 2370 %1:sgpr_32 = COPY $sgpr1 2371 %2:sgpr_32 = COPY $sgpr2 2372 %3:sgpr_32 = COPY $sgpr3 2373 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2374 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 2375 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 2376... 2377--- 2378 2379 2380# GFX11-LABEL: name: gfx11_tbuffer_load_not_merged_swizzled_1 2381# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2382# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2383name: gfx11_tbuffer_load_not_merged_swizzled_1 2384body: | 2385 bb.0.entry: 2386 %0:sgpr_32 = COPY $sgpr0 2387 %1:sgpr_32 = COPY $sgpr1 2388 %2:sgpr_32 = COPY $sgpr2 2389 %3:sgpr_32 = COPY $sgpr3 2390 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2391 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 2392 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 2393... 2394--- 2395 2396 2397# GFX11-LABEL: name: gfx11_tbuffer_load_merge_across_swizzle 2398# GFX11: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 50, 0, 0, 0, implicit $exec :: (dereferenceable load (s64), align 1, addrspace 4) 2399# GFX11: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 12, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2400name: gfx11_tbuffer_load_merge_across_swizzle 2401body: | 2402 bb.0.entry: 2403 %0:sgpr_32 = COPY $sgpr0 2404 %1:sgpr_32 = COPY $sgpr1 2405 %2:sgpr_32 = COPY $sgpr2 2406 %3:sgpr_32 = COPY $sgpr3 2407 %5:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %1:sgpr_32, %subreg.sub1, %2:sgpr_32, %subreg.sub2, %3:sgpr_32, %subreg.sub3 2408 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2409 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 22, 0, 0, 1, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2410 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, implicit $exec :: (dereferenceable load (s32), align 1, addrspace 4) 2411... 2412--- 2413