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 4# 5# GFX9 tests 6# 7 8# GFX9-LABEL: name: gfx9_tbuffer_load_x_xyz 9# 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) 10# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 11# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 12name: gfx9_tbuffer_load_x_xyz 13body: | 14 bb.0.entry: 15 %0:sgpr_32 = COPY $sgpr0 16 %1:sgpr_32 = COPY $sgpr1 17 %2:sgpr_32 = COPY $sgpr2 18 %3:sgpr_32 = COPY $sgpr3 19 %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 20 %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) 21 %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) 22... 23--- 24 25# GFX9-LABEL: name: gfx9_tbuffer_load_xyz_x 26# 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) 27# GFX9: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 28# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 29name: gfx9_tbuffer_load_xyz_x 30body: | 31 bb.0.entry: 32 %0:sgpr_32 = COPY $sgpr0 33 %1:sgpr_32 = COPY $sgpr1 34 %2:sgpr_32 = COPY $sgpr2 35 %3:sgpr_32 = COPY $sgpr3 36 %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 37 %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) 38 %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) 39... 40--- 41 42# GFX9-LABEL: name: gfx9_tbuffer_load_xy_xy 43# 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) 44# GFX9: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 45# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 46name: gfx9_tbuffer_load_xy_xy 47body: | 48 bb.0.entry: 49 %0:sgpr_32 = COPY $sgpr0 50 %1:sgpr_32 = COPY $sgpr1 51 %2:sgpr_32 = COPY $sgpr2 52 %3:sgpr_32 = COPY $sgpr3 53 %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 54 %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) 55 %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) 56... 57--- 58 59# GFX9-LABEL: name: gfx9_tbuffer_load_x_xy 60# 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) 61# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 62# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 63name: gfx9_tbuffer_load_x_xy 64body: | 65 bb.0.entry: 66 %0:sgpr_32 = COPY $sgpr0 67 %1:sgpr_32 = COPY $sgpr1 68 %2:sgpr_32 = COPY $sgpr2 69 %3:sgpr_32 = COPY $sgpr3 70 %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 71 %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) 72 %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) 73... 74--- 75 76# GFX9-LABEL: name: gfx9_tbuffer_load_xy_x 77# 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) 78# GFX9: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 79# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 80name: gfx9_tbuffer_load_xy_x 81body: | 82 bb.0.entry: 83 %0:sgpr_32 = COPY $sgpr0 84 %1:sgpr_32 = COPY $sgpr1 85 %2:sgpr_32 = COPY $sgpr2 86 %3:sgpr_32 = COPY $sgpr3 87 %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 88 %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) 89 %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) 90... 91--- 92 93 94# GFX9-LABEL: name: gfx9_tbuffer_load_x_x 95# 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) 96# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 97# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 98 99name: gfx9_tbuffer_load_x_x 100body: | 101 bb.0.entry: 102 %0:sgpr_32 = COPY $sgpr0 103 %1:sgpr_32 = COPY $sgpr1 104 %2:sgpr_32 = COPY $sgpr2 105 %3:sgpr_32 = COPY $sgpr3 106 %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 107 %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) 108 %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) 109... 110--- 111 112# GFX9-LABEL: name: gfx9_tbuffer_load_x_x_format_32_32_32_32 113# 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) 114# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 115# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 116 117name: gfx9_tbuffer_load_x_x_format_32_32_32_32 118body: | 119 bb.0.entry: 120 %0:sgpr_32 = COPY $sgpr0 121 %1:sgpr_32 = COPY $sgpr1 122 %2:sgpr_32 = COPY $sgpr2 123 %3:sgpr_32 = COPY $sgpr3 124 %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 125 %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) 126 %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) 127... 128--- 129 130 131# GFX9-LABEL: name: gfx9_tbuffer_load_float_32 132# 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) 133# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 134# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 135# 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) 136# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 137# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 138# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 139# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 140# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 141# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 142# 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) 143# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 144# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 145# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 146# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 147 148name: gfx9_tbuffer_load_float_32 149body: | 150 bb.0.entry: 151 %0:sgpr_32 = COPY $sgpr0 152 %1:sgpr_32 = COPY $sgpr1 153 %2:sgpr_32 = COPY $sgpr2 154 %3:sgpr_32 = COPY $sgpr3 155 %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 156 %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) 157 %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) 158 %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) 159 %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) 160 %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) 161 %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) 162 %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) 163 %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) 164 %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) 165... 166--- 167 168# GFX9-LABEL: name: gfx9_tbuffer_load_sint_32 169# 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) 170# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 171# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 172# 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) 173# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 174# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 175# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 176# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 177# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 178# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 179# 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) 180# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 181# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 182# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 183# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 184 185name: gfx9_tbuffer_load_sint_32 186body: | 187 bb.0.entry: 188 %0:sgpr_32 = COPY $sgpr0 189 %1:sgpr_32 = COPY $sgpr1 190 %2:sgpr_32 = COPY $sgpr2 191 %3:sgpr_32 = COPY $sgpr3 192 %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 193 %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) 194 %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) 195 %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) 196 %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) 197 %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) 198 %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) 199 %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) 200 %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) 201 %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) 202... 203--- 204 205# GFX9-LABEL: name: gfx9_tbuffer_load_uint_32 206# 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) 207# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 208# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 209# 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) 210# GFX9: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 211# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 212# GFX9: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 213# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 214# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 215# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 216# 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) 217# GFX9: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 218# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 219# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 220# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 221 222name: gfx9_tbuffer_load_uint_32 223body: | 224 bb.0.entry: 225 %0:sgpr_32 = COPY $sgpr0 226 %1:sgpr_32 = COPY $sgpr1 227 %2:sgpr_32 = COPY $sgpr2 228 %3:sgpr_32 = COPY $sgpr3 229 %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 230 %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) 231 %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) 232 %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) 233 %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) 234 %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) 235 %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) 236 %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) 237 %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) 238 %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) 239... 240--- 241 242# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_data_format_mismatch 243# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 244# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 245# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 246# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 247# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 248# 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) 249# 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) 250# 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) 251# 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) 252# 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) 253# 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) 254# 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) 255# 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) 256# 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) 257 258 259name: gfx9_tbuffer_load_not_merged_data_format_mismatch 260body: | 261 bb.0.entry: 262 %0:sgpr_32 = COPY $sgpr0 263 %1:sgpr_32 = COPY $sgpr1 264 %2:sgpr_32 = COPY $sgpr2 265 %3:sgpr_32 = COPY $sgpr3 266 %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 267 %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) 268 %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) 269 %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) 270 %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) 271 %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) 272 %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) 273 %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) 274 %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) 275 %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) 276... 277--- 278 279# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_num_format_mismatch 280# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 281# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 282# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 283# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 284# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 285# 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) 286# 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) 287# 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) 288# 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) 289# 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) 290# 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) 291# 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) 292# 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) 293# 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) 294name: gfx9_tbuffer_load_not_merged_num_format_mismatch 295body: | 296 bb.0.entry: 297 %0:sgpr_32 = COPY $sgpr0 298 %1:sgpr_32 = COPY $sgpr1 299 %2:sgpr_32 = COPY $sgpr2 300 %3:sgpr_32 = COPY $sgpr3 301 %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 302 %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) 303 %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) 304 %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) 305 %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) 306 %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) 307 %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) 308 %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) 309 %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) 310 %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) 311... 312--- 313 314# GFX9-LABEL: name: gfx9_tbuffer_store_x_xyz 315# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 316# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 317# 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) 318name: gfx9_tbuffer_store_x_xyz 319body: | 320 bb.0.entry: 321 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 322 %7:vgpr_32 = COPY $vgpr3 323 %6:vgpr_32 = COPY $vgpr2 324 %5:vgpr_32 = COPY $vgpr1 325 %4:vgpr_32 = COPY $vgpr0 326 %3:sgpr_32 = COPY $sgpr3 327 %2:sgpr_32 = COPY $sgpr2 328 %1:sgpr_32 = COPY $sgpr1 329 %0:sgpr_32 = COPY $sgpr0 330 %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 331 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 332 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) 333 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) 334... 335--- 336 337 338 339# GFX9-LABEL: name: gfx9_tbuffer_store_xyz_x 340# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 341# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 342# 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) 343name: gfx9_tbuffer_store_xyz_x 344body: | 345 bb.0.entry: 346 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 347 %7:vgpr_32 = COPY $vgpr3 348 %6:vgpr_32 = COPY $vgpr2 349 %5:vgpr_32 = COPY $vgpr1 350 %4:vgpr_32 = COPY $vgpr0 351 %3:sgpr_32 = COPY $sgpr3 352 %2:sgpr_32 = COPY $sgpr2 353 %1:sgpr_32 = COPY $sgpr1 354 %0:sgpr_32 = COPY $sgpr0 355 %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 356 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 357 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) 358 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) 359... 360--- 361 362# GFX9-LABEL: name: gfx9_tbuffer_store_xy_xy 363# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 364# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 365# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 366# 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) 367name: gfx9_tbuffer_store_xy_xy 368body: | 369 bb.0.entry: 370 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 371 %7:vgpr_32 = COPY $vgpr3 372 %6:vgpr_32 = COPY $vgpr2 373 %5:vgpr_32 = COPY $vgpr1 374 %4:vgpr_32 = COPY $vgpr0 375 %3:sgpr_32 = COPY $sgpr3 376 %2:sgpr_32 = COPY $sgpr2 377 %1:sgpr_32 = COPY $sgpr1 378 %0:sgpr_32 = COPY $sgpr0 379 %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 380 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 381 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 382 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) 383 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) 384... 385--- 386 387# GFX9-LABEL: name: gfx9_tbuffer_store_x_xy 388# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 389# GFX9: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 390# 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) 391name: gfx9_tbuffer_store_x_xy 392body: | 393 bb.0.entry: 394 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 395 %7:vgpr_32 = COPY $vgpr3 396 %6:vgpr_32 = COPY $vgpr2 397 %5:vgpr_32 = COPY $vgpr1 398 %4:vgpr_32 = COPY $vgpr0 399 %3:sgpr_32 = COPY $sgpr3 400 %2:sgpr_32 = COPY $sgpr2 401 %1:sgpr_32 = COPY $sgpr1 402 %0:sgpr_32 = COPY $sgpr0 403 %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 404 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 405 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) 406 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) 407... 408--- 409 410# GFX9-LABEL: name: gfx9_tbuffer_store_xy_x 411# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 412# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 413# 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) 414name: gfx9_tbuffer_store_xy_x 415body: | 416 bb.0.entry: 417 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 418 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 419 %7:vgpr_32 = COPY $vgpr3 420 %6:vgpr_32 = COPY $vgpr2 421 %5:vgpr_32 = COPY $vgpr1 422 %4:vgpr_32 = COPY $vgpr0 423 %3:sgpr_32 = COPY $sgpr3 424 %2:sgpr_32 = COPY $sgpr2 425 %1:sgpr_32 = COPY $sgpr1 426 %0:sgpr_32 = COPY $sgpr0 427 %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 428 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 429 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) 430 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) 431... 432--- 433 434 435# GFX9-LABEL: name: gfx9_tbuffer_store_x_x 436# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 437# 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) 438name: gfx9_tbuffer_store_x_x 439body: | 440 bb.0.entry: 441 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 442 %7:vgpr_32 = COPY $vgpr3 443 %6:vgpr_32 = COPY $vgpr2 444 %5:vgpr_32 = COPY $vgpr1 445 %4:vgpr_32 = COPY $vgpr0 446 %3:sgpr_32 = COPY $sgpr3 447 %2:sgpr_32 = COPY $sgpr2 448 %1:sgpr_32 = COPY $sgpr1 449 %0:sgpr_32 = COPY $sgpr0 450 %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 451 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) 452 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) 453... 454--- 455 456# GFX9-LABEL: name: gfx9_tbuffer_store_x_x_format_32_32_32_32 457# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 458# 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) 459name: gfx9_tbuffer_store_x_x_format_32_32_32_32 460body: | 461 bb.0.entry: 462 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 463 %7:vgpr_32 = COPY $vgpr3 464 %6:vgpr_32 = COPY $vgpr2 465 %5:vgpr_32 = COPY $vgpr1 466 %4:vgpr_32 = COPY $vgpr0 467 %3:sgpr_32 = COPY $sgpr3 468 %2:sgpr_32 = COPY $sgpr2 469 %1:sgpr_32 = COPY $sgpr1 470 %0:sgpr_32 = COPY $sgpr0 471 %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 472 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) 473 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) 474... 475--- 476 477# GFX9-LABEL: name: gfx9_tbuffer_store_float32 478# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 479# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 480# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 481# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 482# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 483# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 484# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 485# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 486# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 487# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 488# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 489# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 490# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 491# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 492# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 493# 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) 494# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 495# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 496# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 497# 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) 498# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 499# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 500# 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) 501name: gfx9_tbuffer_store_float32 502body: | 503 bb.0.entry: 504 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 505 %12:vgpr_32 = COPY $vgpr8 506 %11:vgpr_32 = COPY $vgpr7 507 %10:vgpr_32 = COPY $vgpr6 508 %9:vgpr_32 = COPY $vgpr5 509 %8:vgpr_32 = COPY $vgpr4 510 %7:vgpr_32 = COPY $vgpr3 511 %6:vgpr_32 = COPY $vgpr2 512 %5:vgpr_32 = COPY $vgpr1 513 %4:vgpr_32 = COPY $vgpr0 514 %3:sgpr_32 = COPY $sgpr3 515 %2:sgpr_32 = COPY $sgpr2 516 %1:sgpr_32 = COPY $sgpr1 517 %0:sgpr_32 = COPY $sgpr0 518 %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 519 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) 520 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) 521 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) 522 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) 523 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) 524 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) 525 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) 526 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) 527 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) 528... 529--- 530 531# GFX9-LABEL: name: gfx9_tbuffer_store_sint32 532# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 533# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 534# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 535# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 536# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 537# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 538# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 539# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 540# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 541# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 542# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 543# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 544# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 545# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 546# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 547# 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) 548# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 549# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 550# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 551# 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) 552# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 553# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 554# 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) 555name: gfx9_tbuffer_store_sint32 556body: | 557 bb.0.entry: 558 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 559 %12:vgpr_32 = COPY $vgpr8 560 %11:vgpr_32 = COPY $vgpr7 561 %10:vgpr_32 = COPY $vgpr6 562 %9:vgpr_32 = COPY $vgpr5 563 %8:vgpr_32 = COPY $vgpr4 564 %7:vgpr_32 = COPY $vgpr3 565 %6:vgpr_32 = COPY $vgpr2 566 %5:vgpr_32 = COPY $vgpr1 567 %4:vgpr_32 = COPY $vgpr0 568 %3:sgpr_32 = COPY $sgpr3 569 %2:sgpr_32 = COPY $sgpr2 570 %1:sgpr_32 = COPY $sgpr1 571 %0:sgpr_32 = COPY $sgpr0 572 %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 573 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) 574 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) 575 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) 576 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) 577 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) 578 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) 579 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) 580 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) 581 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) 582... 583--- 584 585# GFX9-LABEL: name: gfx9_tbuffer_store_uint32 586# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 587# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 588# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 589# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 590# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 591# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 592# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 593# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 594# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 595# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 596# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 597# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 598# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 599# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 600# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 601# 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) 602# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 603# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 604# GFX9: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 605# 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) 606# GFX9: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 607# GFX9: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 608# 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) 609name: gfx9_tbuffer_store_uint32 610body: | 611 bb.0.entry: 612 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 613 %12:vgpr_32 = COPY $vgpr8 614 %11:vgpr_32 = COPY $vgpr7 615 %10:vgpr_32 = COPY $vgpr6 616 %9:vgpr_32 = COPY $vgpr5 617 %8:vgpr_32 = COPY $vgpr4 618 %7:vgpr_32 = COPY $vgpr3 619 %6:vgpr_32 = COPY $vgpr2 620 %5:vgpr_32 = COPY $vgpr1 621 %4:vgpr_32 = COPY $vgpr0 622 %3:sgpr_32 = COPY $sgpr3 623 %2:sgpr_32 = COPY $sgpr2 624 %1:sgpr_32 = COPY $sgpr1 625 %0:sgpr_32 = COPY $sgpr0 626 %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 627 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) 628 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) 629 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) 630 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) 631 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) 632 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) 633 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) 634 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) 635 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) 636... 637--- 638 639# GFX9-LABEL: name: gfx9_tbuffer_store_not_merged_data_format_mismatch 640# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 641# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 642# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 643# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 644# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 645# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 646# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 647# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 648# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 649# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 650# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 651# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 652# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 653# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 654# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 655# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 656# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 657# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 658# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 659# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 660# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 661# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 84, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 662# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 663name: gfx9_tbuffer_store_not_merged_data_format_mismatch 664body: | 665 bb.0.entry: 666 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 667 %12:vgpr_32 = COPY $vgpr8 668 %11:vgpr_32 = COPY $vgpr7 669 %10:vgpr_32 = COPY $vgpr6 670 %9:vgpr_32 = COPY $vgpr5 671 %8:vgpr_32 = COPY $vgpr4 672 %7:vgpr_32 = COPY $vgpr3 673 %6:vgpr_32 = COPY $vgpr2 674 %5:vgpr_32 = COPY $vgpr1 675 %4:vgpr_32 = COPY $vgpr0 676 %3:sgpr_32 = COPY $sgpr3 677 %2:sgpr_32 = COPY $sgpr2 678 %1:sgpr_32 = COPY $sgpr1 679 %0:sgpr_32 = COPY $sgpr0 680 %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 681 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) 682 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) 683 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) 684 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) 685 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) 686 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) 687 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) 688 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) 689 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) 690... 691--- 692 693# GFX9-LABEL: name: gfx9_tbuffer_store_not_merged_num_format_mismatch 694# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 695# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 696# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 697# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 698# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 699# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 700# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 701# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 702# GFX9: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 703# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 704# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 705# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 706# GFX9: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 707# GFX9: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 708# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 709# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 710# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 711# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 712# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 713# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 714# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 715# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 114, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 716# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 717name: gfx9_tbuffer_store_not_merged_num_format_mismatch 718body: | 719 bb.0.entry: 720 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 721 %12:vgpr_32 = COPY $vgpr8 722 %11:vgpr_32 = COPY $vgpr7 723 %10:vgpr_32 = COPY $vgpr6 724 %9:vgpr_32 = COPY $vgpr5 725 %8:vgpr_32 = COPY $vgpr4 726 %7:vgpr_32 = COPY $vgpr3 727 %6:vgpr_32 = COPY $vgpr2 728 %5:vgpr_32 = COPY $vgpr1 729 %4:vgpr_32 = COPY $vgpr0 730 %3:sgpr_32 = COPY $sgpr3 731 %2:sgpr_32 = COPY $sgpr2 732 %1:sgpr_32 = COPY $sgpr1 733 %0:sgpr_32 = COPY $sgpr0 734 %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 735 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) 736 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) 737 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) 738 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) 739 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) 740 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) 741 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) 742 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) 743 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) 744... 745--- 746 747 748# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_swizzled_0 749# 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) 750# 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) 751name: gfx9_tbuffer_load_not_merged_swizzled_0 752body: | 753 bb.0.entry: 754 %0:sgpr_32 = COPY $sgpr0 755 %1:sgpr_32 = COPY $sgpr1 756 %2:sgpr_32 = COPY $sgpr2 757 %3:sgpr_32 = COPY $sgpr3 758 %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 759 %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) 760 %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) 761... 762--- 763 764 765# GFX9-LABEL: name: gfx9_tbuffer_load_not_merged_swizzled_1 766# 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) 767# 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) 768name: gfx9_tbuffer_load_not_merged_swizzled_1 769body: | 770 bb.0.entry: 771 %0:sgpr_32 = COPY $sgpr0 772 %1:sgpr_32 = COPY $sgpr1 773 %2:sgpr_32 = COPY $sgpr2 774 %3:sgpr_32 = COPY $sgpr3 775 %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 776 %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) 777 %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) 778... 779--- 780 781 782# GFX9-LABEL: name: gfx9_tbuffer_load_merge_across_swizzle 783# 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) 784# 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) 785name: gfx9_tbuffer_load_merge_across_swizzle 786body: | 787 bb.0.entry: 788 %0:sgpr_32 = COPY $sgpr0 789 %1:sgpr_32 = COPY $sgpr1 790 %2:sgpr_32 = COPY $sgpr2 791 %3:sgpr_32 = COPY $sgpr3 792 %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 793 %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) 794 %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) 795 %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) 796... 797--- 798 799 800# GFX9-LABEL: name: gfx9_tbuffer_load_merge_across_swizzled_store 801# 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) 802# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %5, 0, 6, 116, 0, 0, 1, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 803# 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) 804name: gfx9_tbuffer_load_merge_across_swizzled_store 805body: | 806 bb.0.entry: 807 %0:sgpr_32 = COPY $sgpr0 808 %1:sgpr_32 = COPY $sgpr1 809 %2:sgpr_32 = COPY $sgpr2 810 %3:sgpr_32 = COPY $sgpr3 811 %4:vgpr_32 = COPY $vgpr0 812 %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 813 %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) 814 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) 815 %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) 816... 817--- 818 819 820# 821# GFX10 tests 822# 823 824# GFX10-LABEL: name: gfx10_tbuffer_load_x_xyz 825# 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) 826# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 827# GFX10: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 828name: gfx10_tbuffer_load_x_xyz 829body: | 830 bb.0.entry: 831 %0:sgpr_32 = COPY $sgpr0 832 %1:sgpr_32 = COPY $sgpr1 833 %2:sgpr_32 = COPY $sgpr2 834 %3:sgpr_32 = COPY $sgpr3 835 %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 836 %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) 837 %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) 838... 839--- 840 841# GFX10-LABEL: name: gfx10_tbuffer_load_xyz_x 842# 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) 843# GFX10: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 844# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 845name: gfx10_tbuffer_load_xyz_x 846body: | 847 bb.0.entry: 848 %0:sgpr_32 = COPY $sgpr0 849 %1:sgpr_32 = COPY $sgpr1 850 %2:sgpr_32 = COPY $sgpr2 851 %3:sgpr_32 = COPY $sgpr3 852 %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 853 %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) 854 %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) 855... 856--- 857 858# GFX10-LABEL: name: gfx10_tbuffer_load_xy_xy 859# 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) 860# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 861# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 862name: gfx10_tbuffer_load_xy_xy 863body: | 864 bb.0.entry: 865 %0:sgpr_32 = COPY $sgpr0 866 %1:sgpr_32 = COPY $sgpr1 867 %2:sgpr_32 = COPY $sgpr2 868 %3:sgpr_32 = COPY $sgpr3 869 %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 870 %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) 871 %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) 872... 873--- 874 875# GFX10-LABEL: name: gfx10_tbuffer_load_x_xy 876# 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) 877# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 878# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 879name: gfx10_tbuffer_load_x_xy 880body: | 881 bb.0.entry: 882 %0:sgpr_32 = COPY $sgpr0 883 %1:sgpr_32 = COPY $sgpr1 884 %2:sgpr_32 = COPY $sgpr2 885 %3:sgpr_32 = COPY $sgpr3 886 %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 887 %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) 888 %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) 889... 890--- 891 892# GFX10-LABEL: name: gfx10_tbuffer_load_xy_x 893# 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) 894# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 895# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 896name: gfx10_tbuffer_load_xy_x 897body: | 898 bb.0.entry: 899 %0:sgpr_32 = COPY $sgpr0 900 %1:sgpr_32 = COPY $sgpr1 901 %2:sgpr_32 = COPY $sgpr2 902 %3:sgpr_32 = COPY $sgpr3 903 %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 904 %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) 905 %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) 906... 907--- 908 909 910# GFX10-LABEL: name: gfx10_tbuffer_load_x_x 911# 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) 912# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 913# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 914 915name: gfx10_tbuffer_load_x_x 916body: | 917 bb.0.entry: 918 %0:sgpr_32 = COPY $sgpr0 919 %1:sgpr_32 = COPY $sgpr1 920 %2:sgpr_32 = COPY $sgpr2 921 %3:sgpr_32 = COPY $sgpr3 922 %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 923 %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) 924 %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) 925... 926--- 927 928# GFX10-LABEL: name: gfx10_tbuffer_load_x_x_format_32_32_32_32 929# 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) 930# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 931# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 932 933name: gfx10_tbuffer_load_x_x_format_32_32_32_32 934body: | 935 bb.0.entry: 936 %0:sgpr_32 = COPY $sgpr0 937 %1:sgpr_32 = COPY $sgpr1 938 %2:sgpr_32 = COPY $sgpr2 939 %3:sgpr_32 = COPY $sgpr3 940 %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 941 %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) 942 %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) 943... 944--- 945 946 947# GFX10-LABEL: name: gfx10_tbuffer_load_float_32 948# 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) 949# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 950# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 951# 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) 952# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 953# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 954# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 955# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 956# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 957# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 958# 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) 959# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 960# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 961# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 962# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 963 964name: gfx10_tbuffer_load_float_32 965body: | 966 bb.0.entry: 967 %0:sgpr_32 = COPY $sgpr0 968 %1:sgpr_32 = COPY $sgpr1 969 %2:sgpr_32 = COPY $sgpr2 970 %3:sgpr_32 = COPY $sgpr3 971 %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 972 %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) 973 %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) 974 %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) 975 %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) 976 %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) 977 %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) 978 %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) 979 %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) 980 %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) 981... 982--- 983 984# GFX10-LABEL: name: gfx10_tbuffer_load_sint_32 985# 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) 986# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 987# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 988# 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) 989# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 990# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 991# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 992# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 993# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 994# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 995# 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) 996# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 997# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 998# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 999# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1000 1001name: gfx10_tbuffer_load_sint_32 1002body: | 1003 bb.0.entry: 1004 %0:sgpr_32 = COPY $sgpr0 1005 %1:sgpr_32 = COPY $sgpr1 1006 %2:sgpr_32 = COPY $sgpr2 1007 %3:sgpr_32 = COPY $sgpr3 1008 %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 1009 %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) 1010 %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) 1011 %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) 1012 %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) 1013 %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) 1014 %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) 1015 %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) 1016 %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) 1017 %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) 1018... 1019--- 1020 1021# GFX10-LABEL: name: gfx10_tbuffer_load_uint_32 1022# 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) 1023# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 1024# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 1025# 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) 1026# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 1027# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 1028# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 1029# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 1030# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 1031# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 1032# 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) 1033# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 1034# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 1035# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 1036# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 1037 1038name: gfx10_tbuffer_load_uint_32 1039body: | 1040 bb.0.entry: 1041 %0:sgpr_32 = COPY $sgpr0 1042 %1:sgpr_32 = COPY $sgpr1 1043 %2:sgpr_32 = COPY $sgpr2 1044 %3:sgpr_32 = COPY $sgpr3 1045 %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 1046 %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) 1047 %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) 1048 %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) 1049 %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) 1050 %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) 1051 %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) 1052 %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) 1053 %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) 1054 %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) 1055... 1056--- 1057 1058# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1059# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1060# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1061# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1062# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1063# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1064# 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) 1065# 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) 1066# 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) 1067# 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) 1068# 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) 1069# 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) 1070# 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) 1071# 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) 1072# 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) 1073 1074 1075name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1076body: | 1077 bb.0.entry: 1078 %0:sgpr_32 = COPY $sgpr0 1079 %1:sgpr_32 = COPY $sgpr1 1080 %2:sgpr_32 = COPY $sgpr2 1081 %3:sgpr_32 = COPY $sgpr3 1082 %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 1083 %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) 1084 %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) 1085 %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) 1086 %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) 1087 %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) 1088 %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) 1089 %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) 1090 %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) 1091 %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) 1092... 1093--- 1094 1095# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1096# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1097# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1098# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1099# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1100# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1101# 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) 1102# 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) 1103# 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) 1104# 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) 1105# 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) 1106# 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) 1107# 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) 1108# 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) 1109# 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) 1110name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1111body: | 1112 bb.0.entry: 1113 %0:sgpr_32 = COPY $sgpr0 1114 %1:sgpr_32 = COPY $sgpr1 1115 %2:sgpr_32 = COPY $sgpr2 1116 %3:sgpr_32 = COPY $sgpr3 1117 %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 1118 %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) 1119 %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) 1120 %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) 1121 %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) 1122 %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) 1123 %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) 1124 %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) 1125 %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) 1126 %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) 1127... 1128--- 1129 1130 1131 1132# GFX10-LABEL: name: gfx10_tbuffer_store_x_xyz 1133# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1134# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 1135# 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) 1136name: gfx10_tbuffer_store_x_xyz 1137body: | 1138 bb.0.entry: 1139 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1140 %7:vgpr_32 = COPY $vgpr3 1141 %6:vgpr_32 = COPY $vgpr2 1142 %5:vgpr_32 = COPY $vgpr1 1143 %4:vgpr_32 = COPY $vgpr0 1144 %3:sgpr_32 = COPY $sgpr3 1145 %2:sgpr_32 = COPY $sgpr2 1146 %1:sgpr_32 = COPY $sgpr1 1147 %0:sgpr_32 = COPY $sgpr0 1148 %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 1149 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1150 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) 1151 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) 1152... 1153--- 1154 1155 1156# GFX10-LABEL: name: gfx10_tbuffer_store_xyz_x 1157# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1158# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 1159# 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) 1160name: gfx10_tbuffer_store_xyz_x 1161body: | 1162 bb.0.entry: 1163 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1164 %7:vgpr_32 = COPY $vgpr3 1165 %6:vgpr_32 = COPY $vgpr2 1166 %5:vgpr_32 = COPY $vgpr1 1167 %4:vgpr_32 = COPY $vgpr0 1168 %3:sgpr_32 = COPY $sgpr3 1169 %2:sgpr_32 = COPY $sgpr2 1170 %1:sgpr_32 = COPY $sgpr1 1171 %0:sgpr_32 = COPY $sgpr0 1172 %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 1173 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1174 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) 1175 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) 1176... 1177--- 1178 1179# GFX10-LABEL: name: gfx10_tbuffer_store_xy_xy 1180# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1181# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1182# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 1183# 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) 1184name: gfx10_tbuffer_store_xy_xy 1185body: | 1186 bb.0.entry: 1187 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1188 %7:vgpr_32 = COPY $vgpr3 1189 %6:vgpr_32 = COPY $vgpr2 1190 %5:vgpr_32 = COPY $vgpr1 1191 %4:vgpr_32 = COPY $vgpr0 1192 %3:sgpr_32 = COPY $sgpr3 1193 %2:sgpr_32 = COPY $sgpr2 1194 %1:sgpr_32 = COPY $sgpr1 1195 %0:sgpr_32 = COPY $sgpr0 1196 %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 1197 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1198 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 1199 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) 1200 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) 1201... 1202--- 1203 1204# GFX10-LABEL: name: gfx10_tbuffer_store_x_xy 1205# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1206# GFX10: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 1207# 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) 1208name: gfx10_tbuffer_store_x_xy 1209body: | 1210 bb.0.entry: 1211 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1212 %7:vgpr_32 = COPY $vgpr3 1213 %6:vgpr_32 = COPY $vgpr2 1214 %5:vgpr_32 = COPY $vgpr1 1215 %4:vgpr_32 = COPY $vgpr0 1216 %3:sgpr_32 = COPY $sgpr3 1217 %2:sgpr_32 = COPY $sgpr2 1218 %1:sgpr_32 = COPY $sgpr1 1219 %0:sgpr_32 = COPY $sgpr0 1220 %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 1221 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1222 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) 1223 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) 1224... 1225--- 1226 1227# GFX10-LABEL: name: gfx10_tbuffer_store_xy_x 1228# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1229# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 1230# 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) 1231name: gfx10_tbuffer_store_xy_x 1232body: | 1233 bb.0.entry: 1234 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1235 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1236 %7:vgpr_32 = COPY $vgpr3 1237 %6:vgpr_32 = COPY $vgpr2 1238 %5:vgpr_32 = COPY $vgpr1 1239 %4:vgpr_32 = COPY $vgpr0 1240 %3:sgpr_32 = COPY $sgpr3 1241 %2:sgpr_32 = COPY $sgpr2 1242 %1:sgpr_32 = COPY $sgpr1 1243 %0:sgpr_32 = COPY $sgpr0 1244 %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 1245 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1246 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) 1247 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) 1248... 1249--- 1250 1251 1252# GFX10-LABEL: name: gfx10_tbuffer_store_x_x 1253# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1254# 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) 1255name: gfx10_tbuffer_store_x_x 1256body: | 1257 bb.0.entry: 1258 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1259 %7:vgpr_32 = COPY $vgpr3 1260 %6:vgpr_32 = COPY $vgpr2 1261 %5:vgpr_32 = COPY $vgpr1 1262 %4:vgpr_32 = COPY $vgpr0 1263 %3:sgpr_32 = COPY $sgpr3 1264 %2:sgpr_32 = COPY $sgpr2 1265 %1:sgpr_32 = COPY $sgpr1 1266 %0:sgpr_32 = COPY $sgpr0 1267 %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 1268 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) 1269 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) 1270... 1271--- 1272 1273# GFX10-LABEL: name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1274# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1275# 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) 1276name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1277body: | 1278 bb.0.entry: 1279 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1280 %7:vgpr_32 = COPY $vgpr3 1281 %6:vgpr_32 = COPY $vgpr2 1282 %5:vgpr_32 = COPY $vgpr1 1283 %4:vgpr_32 = COPY $vgpr0 1284 %3:sgpr_32 = COPY $sgpr3 1285 %2:sgpr_32 = COPY $sgpr2 1286 %1:sgpr_32 = COPY $sgpr1 1287 %0:sgpr_32 = COPY $sgpr0 1288 %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 1289 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) 1290 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) 1291... 1292--- 1293 1294# GFX10-LABEL: name: gfx10_tbuffer_store_float32 1295# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1296# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1297# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1298# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1299# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1300# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1301# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1302# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1303# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1304# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1305# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1306# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1307# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1308# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1309# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1310# 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) 1311# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1312# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1313# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1314# 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) 1315# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1316# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1317# 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) 1318name: gfx10_tbuffer_store_float32 1319body: | 1320 bb.0.entry: 1321 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1322 %12:vgpr_32 = COPY $vgpr8 1323 %11:vgpr_32 = COPY $vgpr7 1324 %10:vgpr_32 = COPY $vgpr6 1325 %9:vgpr_32 = COPY $vgpr5 1326 %8:vgpr_32 = COPY $vgpr4 1327 %7:vgpr_32 = COPY $vgpr3 1328 %6:vgpr_32 = COPY $vgpr2 1329 %5:vgpr_32 = COPY $vgpr1 1330 %4:vgpr_32 = COPY $vgpr0 1331 %3:sgpr_32 = COPY $sgpr3 1332 %2:sgpr_32 = COPY $sgpr2 1333 %1:sgpr_32 = COPY $sgpr1 1334 %0:sgpr_32 = COPY $sgpr0 1335 %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 1336 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) 1337 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) 1338 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) 1339 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) 1340 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) 1341 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) 1342 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) 1343 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) 1344 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) 1345... 1346--- 1347 1348# GFX10-LABEL: name: gfx10_tbuffer_store_sint32 1349# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1350# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1351# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1352# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1353# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1354# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1355# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1356# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1357# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1358# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1359# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1360# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1361# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1362# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1363# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1364# 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) 1365# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1366# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1367# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1368# 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) 1369# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1370# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1371# 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) 1372name: gfx10_tbuffer_store_sint32 1373body: | 1374 bb.0.entry: 1375 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1376 %12:vgpr_32 = COPY $vgpr8 1377 %11:vgpr_32 = COPY $vgpr7 1378 %10:vgpr_32 = COPY $vgpr6 1379 %9:vgpr_32 = COPY $vgpr5 1380 %8:vgpr_32 = COPY $vgpr4 1381 %7:vgpr_32 = COPY $vgpr3 1382 %6:vgpr_32 = COPY $vgpr2 1383 %5:vgpr_32 = COPY $vgpr1 1384 %4:vgpr_32 = COPY $vgpr0 1385 %3:sgpr_32 = COPY $sgpr3 1386 %2:sgpr_32 = COPY $sgpr2 1387 %1:sgpr_32 = COPY $sgpr1 1388 %0:sgpr_32 = COPY $sgpr0 1389 %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 1390 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) 1391 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) 1392 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) 1393 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) 1394 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) 1395 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) 1396 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) 1397 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) 1398 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) 1399... 1400--- 1401 1402# GFX10-LABEL: name: gfx10_tbuffer_store_uint32 1403# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1404# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1405# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1406# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1407# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1408# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1409# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1410# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1411# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1412# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1413# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1414# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1415# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1416# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1417# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1418# 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) 1419# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1420# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1421# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1422# 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) 1423# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1424# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1425# 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) 1426name: gfx10_tbuffer_store_uint32 1427body: | 1428 bb.0.entry: 1429 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1430 %12:vgpr_32 = COPY $vgpr8 1431 %11:vgpr_32 = COPY $vgpr7 1432 %10:vgpr_32 = COPY $vgpr6 1433 %9:vgpr_32 = COPY $vgpr5 1434 %8:vgpr_32 = COPY $vgpr4 1435 %7:vgpr_32 = COPY $vgpr3 1436 %6:vgpr_32 = COPY $vgpr2 1437 %5:vgpr_32 = COPY $vgpr1 1438 %4:vgpr_32 = COPY $vgpr0 1439 %3:sgpr_32 = COPY $sgpr3 1440 %2:sgpr_32 = COPY $sgpr2 1441 %1:sgpr_32 = COPY $sgpr1 1442 %0:sgpr_32 = COPY $sgpr0 1443 %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 1444 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) 1445 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) 1446 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) 1447 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) 1448 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) 1449 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) 1450 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) 1451 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) 1452 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) 1453... 1454--- 1455 1456# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1457# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1458# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1459# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1460# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1461# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1462# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1463# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1464# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1465# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1466# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1467# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1468# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1469# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1470# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1471# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1472# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1473# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1474# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1475# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1476# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1477# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1478# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 21, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1479# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1480name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1481body: | 1482 bb.0.entry: 1483 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1484 %12:vgpr_32 = COPY $vgpr8 1485 %11:vgpr_32 = COPY $vgpr7 1486 %10:vgpr_32 = COPY $vgpr6 1487 %9:vgpr_32 = COPY $vgpr5 1488 %8:vgpr_32 = COPY $vgpr4 1489 %7:vgpr_32 = COPY $vgpr3 1490 %6:vgpr_32 = COPY $vgpr2 1491 %5:vgpr_32 = COPY $vgpr1 1492 %4:vgpr_32 = COPY $vgpr0 1493 %3:sgpr_32 = COPY $sgpr3 1494 %2:sgpr_32 = COPY $sgpr2 1495 %1:sgpr_32 = COPY $sgpr1 1496 %0:sgpr_32 = COPY $sgpr0 1497 %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 1498 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) 1499 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) 1500 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) 1501 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) 1502 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) 1503 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) 1504 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) 1505 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) 1506 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) 1507... 1508--- 1509 1510# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1511# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1512# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1513# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1514# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1515# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1516# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1517# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1518# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1519# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1520# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1521# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1522# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1523# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1524# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1525# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1526# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1527# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1528# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1529# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1530# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1531# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1532# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 13, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1533# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, implicit $exec :: (dereferenceable store (s32), align 1, addrspace 4) 1534name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1535body: | 1536 bb.0.entry: 1537 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1538 %12:vgpr_32 = COPY $vgpr8 1539 %11:vgpr_32 = COPY $vgpr7 1540 %10:vgpr_32 = COPY $vgpr6 1541 %9:vgpr_32 = COPY $vgpr5 1542 %8:vgpr_32 = COPY $vgpr4 1543 %7:vgpr_32 = COPY $vgpr3 1544 %6:vgpr_32 = COPY $vgpr2 1545 %5:vgpr_32 = COPY $vgpr1 1546 %4:vgpr_32 = COPY $vgpr0 1547 %3:sgpr_32 = COPY $sgpr3 1548 %2:sgpr_32 = COPY $sgpr2 1549 %1:sgpr_32 = COPY $sgpr1 1550 %0:sgpr_32 = COPY $sgpr0 1551 %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 1552 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) 1553 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) 1554 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) 1555 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) 1556 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) 1557 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) 1558 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) 1559 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) 1560 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) 1561... 1562--- 1563 1564 1565# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_0 1566# 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) 1567# 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) 1568name: gfx10_tbuffer_load_not_merged_swizzled_0 1569body: | 1570 bb.0.entry: 1571 %0:sgpr_32 = COPY $sgpr0 1572 %1:sgpr_32 = COPY $sgpr1 1573 %2:sgpr_32 = COPY $sgpr2 1574 %3:sgpr_32 = COPY $sgpr3 1575 %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 1576 %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) 1577 %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) 1578... 1579--- 1580 1581 1582# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_1 1583# 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) 1584# 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) 1585name: gfx10_tbuffer_load_not_merged_swizzled_1 1586body: | 1587 bb.0.entry: 1588 %0:sgpr_32 = COPY $sgpr0 1589 %1:sgpr_32 = COPY $sgpr1 1590 %2:sgpr_32 = COPY $sgpr2 1591 %3:sgpr_32 = COPY $sgpr3 1592 %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 1593 %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) 1594 %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) 1595... 1596--- 1597 1598 1599# GFX10-LABEL: name: gfx10_tbuffer_load_merge_across_swizzle 1600# 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) 1601# 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) 1602name: gfx10_tbuffer_load_merge_across_swizzle 1603body: | 1604 bb.0.entry: 1605 %0:sgpr_32 = COPY $sgpr0 1606 %1:sgpr_32 = COPY $sgpr1 1607 %2:sgpr_32 = COPY $sgpr2 1608 %3:sgpr_32 = COPY $sgpr3 1609 %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 1610 %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) 1611 %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) 1612 %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) 1613... 1614--- 1615