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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 21 %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 8, 125, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 38 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 55 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 12, 123, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 72 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 8, 123, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 89 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 108 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 126 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 126, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 157 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 158 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 159 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 160 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 161 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 162 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 163 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 164 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 194 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 195 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 196 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 197 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 198 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 199 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 200 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 201 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 8, 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, 0, 0, implicit $exec :: (dereferenceable load 16, 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, 0, 0, implicit $exec :: (dereferenceable load 12, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 231 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 232 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 233 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 234 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 235 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 236 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 237 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 238 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 249# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 250# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 251# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 252# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 253# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 254# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 255# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 256# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 268 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 269 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 270 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 271 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 272 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 273 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 274 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 275 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 286# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 287# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 288# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 289# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 290# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 291# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 292# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 293# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 303 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 304 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 305 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 306 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 307 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 308 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 309 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 310 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 333 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 8, 125, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 358 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 383 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 12, 123, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 406 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 8, 123, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 430 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 12, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 452 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 473 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 126, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 520 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 521 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 522 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 523 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 524 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 525 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 526 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 527 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 574 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 575 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 576 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 577 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 578 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 579 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 580 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 581 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 8, 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, 0, 0, implicit $exec :: (dereferenceable store 16, 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, 0, 0, implicit $exec :: (dereferenceable store 12, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 628 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 629 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 630 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 631 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 632 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 633 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 634 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 635 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 68, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 655# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 656# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 657# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 658# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 659# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 660# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 661# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 662# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 682 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 683 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 684 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 685 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 686 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 687 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 688 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 84, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 689 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 709# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 710# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 711# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 712# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 713# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 714# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 715# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 716# GFX9: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 736 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 737 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 738 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 739 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 740 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 741 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 742 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 114, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 743 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, 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, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 750# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 760 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 767# GFX9: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 116, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, 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, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 777 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 116, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 778... 779--- 780 781 782# 783# GFX10 tests 784# 785 786# GFX10-LABEL: name: gfx10_tbuffer_load_x_xyz 787# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 788# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 789# GFX10: %{{[0-9]+}}:vreg_96 = COPY killed %7.sub1_sub2_sub3 790name: gfx10_tbuffer_load_x_xyz 791body: | 792 bb.0.entry: 793 %0:sgpr_32 = COPY $sgpr0 794 %1:sgpr_32 = COPY $sgpr1 795 %2:sgpr_32 = COPY $sgpr2 796 %3:sgpr_32 = COPY $sgpr3 797 %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 798 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 799 %8:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 8, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 800... 801--- 802 803# GFX10-LABEL: name: gfx10_tbuffer_load_xyz_x 804# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 805# GFX10: %{{[0-9]+}}:vreg_96 = COPY %7.sub0_sub1_sub2 806# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub3 807name: gfx10_tbuffer_load_xyz_x 808body: | 809 bb.0.entry: 810 %0:sgpr_32 = COPY $sgpr0 811 %1:sgpr_32 = COPY $sgpr1 812 %2:sgpr_32 = COPY $sgpr2 813 %3:sgpr_32 = COPY $sgpr3 814 %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 815 %7:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %5:sgpr_128, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 816 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 817... 818--- 819 820# GFX10-LABEL: name: gfx10_tbuffer_load_xy_xy 821# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 822# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 823# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub2_sub3 824name: gfx10_tbuffer_load_xy_xy 825body: | 826 bb.0.entry: 827 %0:sgpr_32 = COPY $sgpr0 828 %1:sgpr_32 = COPY $sgpr1 829 %2:sgpr_32 = COPY $sgpr2 830 %3:sgpr_32 = COPY $sgpr3 831 %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 832 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 833 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 12, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 834... 835--- 836 837# GFX10-LABEL: name: gfx10_tbuffer_load_x_xy 838# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 839# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 840# GFX10: %{{[0-9]+}}:vreg_64 = COPY killed %7.sub1_sub2 841name: gfx10_tbuffer_load_x_xy 842body: | 843 bb.0.entry: 844 %0:sgpr_32 = COPY $sgpr0 845 %1:sgpr_32 = COPY $sgpr1 846 %2:sgpr_32 = COPY $sgpr2 847 %3:sgpr_32 = COPY $sgpr3 848 %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 849 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 850 %8:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 8, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 851... 852--- 853 854# GFX10-LABEL: name: gfx10_tbuffer_load_xy_x 855# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 856# GFX10: %{{[0-9]+}}:vreg_64 = COPY %7.sub0_sub1 857# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub2 858name: gfx10_tbuffer_load_xy_x 859body: | 860 bb.0.entry: 861 %0:sgpr_32 = COPY $sgpr0 862 %1:sgpr_32 = COPY $sgpr1 863 %2:sgpr_32 = COPY $sgpr2 864 %3:sgpr_32 = COPY $sgpr3 865 %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 866 %7:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %5:sgpr_128, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 867 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 12, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 868... 869--- 870 871 872# GFX10-LABEL: name: gfx10_tbuffer_load_x_x 873# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 874# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 875# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 876 877name: gfx10_tbuffer_load_x_x 878body: | 879 bb.0.entry: 880 %0:sgpr_32 = COPY $sgpr0 881 %1:sgpr_32 = COPY $sgpr1 882 %2:sgpr_32 = COPY $sgpr2 883 %3:sgpr_32 = COPY $sgpr3 884 %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 885 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 886 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 887... 888--- 889 890# GFX10-LABEL: name: gfx10_tbuffer_load_x_x_format_32_32_32_32 891# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 892# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %7.sub0 893# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %7.sub1 894 895name: gfx10_tbuffer_load_x_x_format_32_32_32_32 896body: | 897 bb.0.entry: 898 %0:sgpr_32 = COPY $sgpr0 899 %1:sgpr_32 = COPY $sgpr1 900 %2:sgpr_32 = COPY $sgpr2 901 %3:sgpr_32 = COPY $sgpr3 902 %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 903 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 904 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 905... 906--- 907 908 909# GFX10-LABEL: name: gfx10_tbuffer_load_float_32 910# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 911# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 912# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 913# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 914# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 915# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 916# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 917# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 918# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 919# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 920# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 921# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 922# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 923# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 924# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 925 926name: gfx10_tbuffer_load_float_32 927body: | 928 bb.0.entry: 929 %0:sgpr_32 = COPY $sgpr0 930 %1:sgpr_32 = COPY $sgpr1 931 %2:sgpr_32 = COPY $sgpr2 932 %3:sgpr_32 = COPY $sgpr3 933 %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 934 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 935 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 936 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 937 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 938 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 939 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 940 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 941 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 942 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 943... 944--- 945 946# GFX10-LABEL: name: gfx10_tbuffer_load_sint_32 947# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 63, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 948# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 949# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 950# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 76, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 951# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 952# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 953# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 954# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 955# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 956# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 957# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 73, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 958# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 959# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 960# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 961# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 962 963name: gfx10_tbuffer_load_sint_32 964body: | 965 bb.0.entry: 966 %0:sgpr_32 = COPY $sgpr0 967 %1:sgpr_32 = COPY $sgpr1 968 %2:sgpr_32 = COPY $sgpr2 969 %3:sgpr_32 = COPY $sgpr3 970 %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 971 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 972 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 973 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 974 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 975 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 976 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 977 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 978 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 979 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 980... 981--- 982 983# GFX10-LABEL: name: gfx10_tbuffer_load_uint_32 984# GFX10: %{{[0-9]+}}:vreg_64 = TBUFFER_LOAD_FORMAT_XY_OFFSET %4, 0, 4, 62, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 8, align 1, addrspace 4) 985# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %14.sub0 986# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %14.sub1 987# GFX10: %{{[0-9]+}}:vreg_128 = TBUFFER_LOAD_FORMAT_XYZW_OFFSET %4, 0, 16, 75, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 16, align 1, addrspace 4) 988# GFX10: %{{[0-9]+}}:vreg_96 = COPY %17.sub0_sub1_sub2 989# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %17.sub3 990# GFX10: %{{[0-9]+}}:vreg_64 = COPY %16.sub0_sub1 991# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %16.sub2 992# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %15.sub0 993# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %15.sub1 994# GFX10: %{{[0-9]+}}:vreg_96 = TBUFFER_LOAD_FORMAT_XYZ_OFFSET %4, 0, 36, 72, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 12, align 1, addrspace 4) 995# GFX10: %{{[0-9]+}}:vreg_64 = COPY %19.sub0_sub1 996# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %19.sub2 997# GFX10: %{{[0-9]+}}:vgpr_32 = COPY %18.sub0 998# GFX10: %{{[0-9]+}}:vgpr_32 = COPY killed %18.sub1 999 1000name: gfx10_tbuffer_load_uint_32 1001body: | 1002 bb.0.entry: 1003 %0:sgpr_32 = COPY $sgpr0 1004 %1:sgpr_32 = COPY $sgpr1 1005 %2:sgpr_32 = COPY $sgpr2 1006 %3:sgpr_32 = COPY $sgpr3 1007 %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 1008 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1009 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1010 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1011 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1012 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1013 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1014 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1015 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1016 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1017... 1018--- 1019 1020# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1021# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1022# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1023# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1024# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1025# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1026# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1027# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1028# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1029# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1030# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1031# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1032# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1033# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1034# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1035 1036 1037name: gfx10_tbuffer_load_not_merged_data_format_mismatch 1038body: | 1039 bb.0.entry: 1040 %0:sgpr_32 = COPY $sgpr0 1041 %1:sgpr_32 = COPY $sgpr1 1042 %2:sgpr_32 = COPY $sgpr2 1043 %3:sgpr_32 = COPY $sgpr3 1044 %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 1045 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1046 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1047 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1048 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1049 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1050 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1051 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1052 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1053 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1054... 1055--- 1056 1057# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1058# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1059# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1060# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1061# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1062# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub1, %2, %subreg.sub2, %3, %subreg.sub3 1063# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1064# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1065# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1066# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1067# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1068# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1069# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1070# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1071# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1072name: gfx10_tbuffer_load_not_merged_num_format_mismatch 1073body: | 1074 bb.0.entry: 1075 %0:sgpr_32 = COPY $sgpr0 1076 %1:sgpr_32 = COPY $sgpr1 1077 %2:sgpr_32 = COPY $sgpr2 1078 %3:sgpr_32 = COPY $sgpr3 1079 %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 1080 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1081 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1082 %9:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1083 %10:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1084 %11:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1085 %12:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1086 %13:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1087 %14:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1088 %15:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1089... 1090--- 1091 1092 1093 1094# GFX10-LABEL: name: gfx10_tbuffer_store_x_xyz 1095# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1096# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %0, %subreg.sub0, %9, %subreg.sub1_sub2_sub3 1097# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1098name: gfx10_tbuffer_store_x_xyz 1099body: | 1100 bb.0.entry: 1101 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1102 %7:vgpr_32 = COPY $vgpr3 1103 %6:vgpr_32 = COPY $vgpr2 1104 %5:vgpr_32 = COPY $vgpr1 1105 %4:vgpr_32 = COPY $vgpr0 1106 %3:sgpr_32 = COPY $sgpr3 1107 %2:sgpr_32 = COPY $sgpr2 1108 %1:sgpr_32 = COPY $sgpr1 1109 %0:sgpr_32 = COPY $sgpr0 1110 %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 1111 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1112 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1113 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 8, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1114... 1115--- 1116 1117 1118# GFX10-LABEL: name: gfx10_tbuffer_store_xyz_x 1119# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1, %1, %subreg.sub2 1120# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1_sub2, %0, %subreg.sub3 1121# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %10, %8, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1122name: gfx10_tbuffer_store_xyz_x 1123body: | 1124 bb.0.entry: 1125 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1126 %7:vgpr_32 = COPY $vgpr3 1127 %6:vgpr_32 = COPY $vgpr2 1128 %5:vgpr_32 = COPY $vgpr1 1129 %4:vgpr_32 = COPY $vgpr0 1130 %3:sgpr_32 = COPY $sgpr3 1131 %2:sgpr_32 = COPY $sgpr2 1132 %1:sgpr_32 = COPY $sgpr1 1133 %0:sgpr_32 = COPY $sgpr0 1134 %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 1135 %14:vreg_96 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1, %6:vgpr_32, %subreg.sub2 1136 TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact %14:vreg_96, %13:sgpr_128, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1137 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1138... 1139--- 1140 1141# GFX10-LABEL: name: gfx10_tbuffer_store_xy_xy 1142# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1143# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1144# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE %9, %subreg.sub0_sub1, %10, %subreg.sub2_sub3 1145# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %11, %8, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1146name: gfx10_tbuffer_store_xy_xy 1147body: | 1148 bb.0.entry: 1149 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1150 %7:vgpr_32 = COPY $vgpr3 1151 %6:vgpr_32 = COPY $vgpr2 1152 %5:vgpr_32 = COPY $vgpr1 1153 %4:vgpr_32 = COPY $vgpr0 1154 %3:sgpr_32 = COPY $sgpr3 1155 %2:sgpr_32 = COPY $sgpr2 1156 %1:sgpr_32 = COPY $sgpr1 1157 %0:sgpr_32 = COPY $sgpr0 1158 %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 1159 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1160 %15:vreg_64 = REG_SEQUENCE %6:vgpr_32, %subreg.sub0, %7:vgpr_32, %subreg.sub1 1161 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1162 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 12, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1163... 1164--- 1165 1166# GFX10-LABEL: name: gfx10_tbuffer_store_x_xy 1167# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1168# GFX10: %{{[0-9]+}}:vreg_64, %subreg.sub1_sub2 1169# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %11, %8, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1170name: gfx10_tbuffer_store_x_xy 1171body: | 1172 bb.0.entry: 1173 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1174 %7:vgpr_32 = COPY $vgpr3 1175 %6:vgpr_32 = COPY $vgpr2 1176 %5:vgpr_32 = COPY $vgpr1 1177 %4:vgpr_32 = COPY $vgpr0 1178 %3:sgpr_32 = COPY $sgpr3 1179 %2:sgpr_32 = COPY $sgpr2 1180 %1:sgpr_32 = COPY $sgpr1 1181 %0:sgpr_32 = COPY $sgpr0 1182 %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 1183 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1184 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1185 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %15:vreg_64, %13:sgpr_128, 0, 8, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1186... 1187--- 1188 1189# GFX10-LABEL: name: gfx10_tbuffer_store_xy_x 1190# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %3, %subreg.sub0, %2, %subreg.sub1 1191# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE %9, %subreg.sub0_sub1, %0, %subreg.sub2 1192# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %10, %8, 0, 4, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1193name: gfx10_tbuffer_store_xy_x 1194body: | 1195 bb.0.entry: 1196 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1197 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1198 %7:vgpr_32 = COPY $vgpr3 1199 %6:vgpr_32 = COPY $vgpr2 1200 %5:vgpr_32 = COPY $vgpr1 1201 %4:vgpr_32 = COPY $vgpr0 1202 %3:sgpr_32 = COPY $sgpr3 1203 %2:sgpr_32 = COPY $sgpr2 1204 %1:sgpr_32 = COPY $sgpr1 1205 %0:sgpr_32 = COPY $sgpr0 1206 %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 1207 %14:vreg_64 = REG_SEQUENCE %4:vgpr_32, %subreg.sub0, %5:vgpr_32, %subreg.sub1 1208 TBUFFER_STORE_FORMAT_XY_OFFSET_exact %14:vreg_64, %13:sgpr_128, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1209 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 12, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1210... 1211--- 1212 1213 1214# GFX10-LABEL: name: gfx10_tbuffer_store_x_x 1215# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1216# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1217name: gfx10_tbuffer_store_x_x 1218body: | 1219 bb.0.entry: 1220 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1221 %7:vgpr_32 = COPY $vgpr3 1222 %6:vgpr_32 = COPY $vgpr2 1223 %5:vgpr_32 = COPY $vgpr1 1224 %4:vgpr_32 = COPY $vgpr0 1225 %3:sgpr_32 = COPY $sgpr3 1226 %2:sgpr_32 = COPY $sgpr2 1227 %1:sgpr_32 = COPY $sgpr1 1228 %0:sgpr_32 = COPY $sgpr0 1229 %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 1230 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1231 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1232... 1233--- 1234 1235# GFX10-LABEL: name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1236# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %1, %subreg.sub0, %0, %subreg.sub1 1237# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %9, %8, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1238name: gfx10_tbuffer_store_x_x_format_32_32_32_32 1239body: | 1240 bb.0.entry: 1241 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1242 %7:vgpr_32 = COPY $vgpr3 1243 %6:vgpr_32 = COPY $vgpr2 1244 %5:vgpr_32 = COPY $vgpr1 1245 %4:vgpr_32 = COPY $vgpr0 1246 %3:sgpr_32 = COPY $sgpr3 1247 %2:sgpr_32 = COPY $sgpr2 1248 %1:sgpr_32 = COPY $sgpr1 1249 %0:sgpr_32 = COPY $sgpr0 1250 %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 1251 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 4, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1252 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 8, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1253... 1254--- 1255 1256# GFX10-LABEL: name: gfx10_tbuffer_store_float32 1257# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1258# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1259# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1260# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1261# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1262# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1263# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1264# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1265# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1266# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1267# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1268# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1269# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1270# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1271# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1272# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 64, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1273# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1274# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1275# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1276# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 77, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1277# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1278# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1279# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 74, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1280name: gfx10_tbuffer_store_float32 1281body: | 1282 bb.0.entry: 1283 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1284 %12:vgpr_32 = COPY $vgpr8 1285 %11:vgpr_32 = COPY $vgpr7 1286 %10:vgpr_32 = COPY $vgpr6 1287 %9:vgpr_32 = COPY $vgpr5 1288 %8:vgpr_32 = COPY $vgpr4 1289 %7:vgpr_32 = COPY $vgpr3 1290 %6:vgpr_32 = COPY $vgpr2 1291 %5:vgpr_32 = COPY $vgpr1 1292 %4:vgpr_32 = COPY $vgpr0 1293 %3:sgpr_32 = COPY $sgpr3 1294 %2:sgpr_32 = COPY $sgpr2 1295 %1:sgpr_32 = COPY $sgpr1 1296 %0:sgpr_32 = COPY $sgpr0 1297 %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 1298 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1299 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1300 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1301 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1302 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1303 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1304 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1305 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1306 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1307... 1308--- 1309 1310# GFX10-LABEL: name: gfx10_tbuffer_store_sint32 1311# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1312# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1313# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1314# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1315# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1316# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1317# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1318# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1319# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1320# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1321# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1322# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1323# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1324# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1325# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1326# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 63, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1327# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1328# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1329# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1330# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 76, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1331# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1332# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1333# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 73, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1334name: gfx10_tbuffer_store_sint32 1335body: | 1336 bb.0.entry: 1337 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1338 %12:vgpr_32 = COPY $vgpr8 1339 %11:vgpr_32 = COPY $vgpr7 1340 %10:vgpr_32 = COPY $vgpr6 1341 %9:vgpr_32 = COPY $vgpr5 1342 %8:vgpr_32 = COPY $vgpr4 1343 %7:vgpr_32 = COPY $vgpr3 1344 %6:vgpr_32 = COPY $vgpr2 1345 %5:vgpr_32 = COPY $vgpr1 1346 %4:vgpr_32 = COPY $vgpr0 1347 %3:sgpr_32 = COPY $sgpr3 1348 %2:sgpr_32 = COPY $sgpr2 1349 %1:sgpr_32 = COPY $sgpr1 1350 %0:sgpr_32 = COPY $sgpr0 1351 %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 1352 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1353 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1354 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1355 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1356 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1357 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1358 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1359 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1360 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1361... 1362--- 1363 1364# GFX10-LABEL: name: gfx10_tbuffer_store_uint32 1365# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1366# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1367# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1368# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1369# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1370# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1371# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1372# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1373# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1374# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1375# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1376# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1377# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1378# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1379# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %8, %subreg.sub0, %7, %subreg.sub1 1380# GFX10: TBUFFER_STORE_FORMAT_XY_OFFSET_exact killed %14, %13, 0, 4, 62, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 8, align 1, addrspace 4) 1381# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %6, %subreg.sub0, %5, %subreg.sub1 1382# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %15, %subreg.sub0_sub1, %4, %subreg.sub2 1383# GFX10: %{{[0-9]+}}:vreg_128 = REG_SEQUENCE killed %16, %subreg.sub0_sub1_sub2, %3, %subreg.sub3 1384# GFX10: TBUFFER_STORE_FORMAT_XYZW_OFFSET_exact killed %17, %13, 0, 16, 75, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 16, align 1, addrspace 4) 1385# GFX10: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %1, %subreg.sub1 1386# GFX10: %{{[0-9]+}}:vreg_96 = REG_SEQUENCE killed %18, %subreg.sub0_sub1, %0, %subreg.sub2 1387# GFX10: TBUFFER_STORE_FORMAT_XYZ_OFFSET_exact killed %19, %13, 0, 36, 72, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 12, align 1, addrspace 4) 1388name: gfx10_tbuffer_store_uint32 1389body: | 1390 bb.0.entry: 1391 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1392 %12:vgpr_32 = COPY $vgpr8 1393 %11:vgpr_32 = COPY $vgpr7 1394 %10:vgpr_32 = COPY $vgpr6 1395 %9:vgpr_32 = COPY $vgpr5 1396 %8:vgpr_32 = COPY $vgpr4 1397 %7:vgpr_32 = COPY $vgpr3 1398 %6:vgpr_32 = COPY $vgpr2 1399 %5:vgpr_32 = COPY $vgpr1 1400 %4:vgpr_32 = COPY $vgpr0 1401 %3:sgpr_32 = COPY $sgpr3 1402 %2:sgpr_32 = COPY $sgpr2 1403 %1:sgpr_32 = COPY $sgpr1 1404 %0:sgpr_32 = COPY $sgpr0 1405 %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 1406 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1407 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1408 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1409 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1410 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1411 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1412 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1413 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1414 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 20, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1415... 1416--- 1417 1418# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1419# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1420# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1421# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1422# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1423# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1424# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1425# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1426# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1427# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1428# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1429# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1430# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1431# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1432# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1433# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1434# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1435# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1436# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1437# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1438# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1439# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1440# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1441# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1442name: gfx10_tbuffer_store_not_merged_data_format_mismatch 1443body: | 1444 bb.0.entry: 1445 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1446 %12:vgpr_32 = COPY $vgpr8 1447 %11:vgpr_32 = COPY $vgpr7 1448 %10:vgpr_32 = COPY $vgpr6 1449 %9:vgpr_32 = COPY $vgpr5 1450 %8:vgpr_32 = COPY $vgpr4 1451 %7:vgpr_32 = COPY $vgpr3 1452 %6:vgpr_32 = COPY $vgpr2 1453 %5:vgpr_32 = COPY $vgpr1 1454 %4:vgpr_32 = COPY $vgpr0 1455 %3:sgpr_32 = COPY $sgpr3 1456 %2:sgpr_32 = COPY $sgpr2 1457 %1:sgpr_32 = COPY $sgpr1 1458 %0:sgpr_32 = COPY $sgpr0 1459 %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 1460 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1461 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1462 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1463 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1464 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1465 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1466 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1467 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 21, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1468 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1469... 1470--- 1471 1472# GFX10-LABEL: name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1473# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr8 1474# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr7 1475# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr6 1476# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr5 1477# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr4 1478# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr3 1479# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr2 1480# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr1 1481# GFX10: %{{[0-9]+}}:vgpr_32 = COPY $vgpr0 1482# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr3 1483# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr2 1484# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr1 1485# GFX10: %{{[0-9]+}}:sgpr_32 = COPY $sgpr0 1486# GFX10: %{{[0-9]+}}:sgpr_128 = REG_SEQUENCE %12, %subreg.sub0, %11, %subreg.sub1, %10, %subreg.sub2, %9, %subreg.sub3 1487# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %8, %13, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1488# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %7, %13, 0, 8, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1489# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %6, %13, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1490# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %5, %13, 0, 20, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1491# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %4, %13, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1492# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %3, %13, 0, 28, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1493# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %2, %13, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1494# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %1, %13, 0, 40, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1495# GFX10: TBUFFER_STORE_FORMAT_X_OFFSET_exact %0, %13, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1496name: gfx10_tbuffer_store_not_merged_num_format_mismatch 1497body: | 1498 bb.0.entry: 1499 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1500 %12:vgpr_32 = COPY $vgpr8 1501 %11:vgpr_32 = COPY $vgpr7 1502 %10:vgpr_32 = COPY $vgpr6 1503 %9:vgpr_32 = COPY $vgpr5 1504 %8:vgpr_32 = COPY $vgpr4 1505 %7:vgpr_32 = COPY $vgpr3 1506 %6:vgpr_32 = COPY $vgpr2 1507 %5:vgpr_32 = COPY $vgpr1 1508 %4:vgpr_32 = COPY $vgpr0 1509 %3:sgpr_32 = COPY $sgpr3 1510 %2:sgpr_32 = COPY $sgpr2 1511 %1:sgpr_32 = COPY $sgpr1 1512 %0:sgpr_32 = COPY $sgpr0 1513 %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 1514 TBUFFER_STORE_FORMAT_X_OFFSET_exact %4:vgpr_32, %13:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1515 TBUFFER_STORE_FORMAT_X_OFFSET_exact %5:vgpr_32, %13:sgpr_128, 0, 8, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1516 TBUFFER_STORE_FORMAT_X_OFFSET_exact %6:vgpr_32, %13:sgpr_128, 0, 16, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1517 TBUFFER_STORE_FORMAT_X_OFFSET_exact %7:vgpr_32, %13:sgpr_128, 0, 20, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1518 TBUFFER_STORE_FORMAT_X_OFFSET_exact %8:vgpr_32, %13:sgpr_128, 0, 24, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1519 TBUFFER_STORE_FORMAT_X_OFFSET_exact %9:vgpr_32, %13:sgpr_128, 0, 28, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1520 TBUFFER_STORE_FORMAT_X_OFFSET_exact %10:vgpr_32, %13:sgpr_128, 0, 36, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1521 TBUFFER_STORE_FORMAT_X_OFFSET_exact %11:vgpr_32, %13:sgpr_128, 0, 40, 13, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1522 TBUFFER_STORE_FORMAT_X_OFFSET_exact %12:vgpr_32, %13:sgpr_128, 0, 44, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store 4, align 1, addrspace 4) 1523... 1524--- 1525 1526 1527# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_0 1528# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1529# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1530name: gfx10_tbuffer_load_not_merged_swizzled_0 1531body: | 1532 bb.0.entry: 1533 %0:sgpr_32 = COPY $sgpr0 1534 %1:sgpr_32 = COPY $sgpr1 1535 %2:sgpr_32 = COPY $sgpr2 1536 %3:sgpr_32 = COPY $sgpr3 1537 %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 1538 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1539 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1540... 1541--- 1542 1543 1544# GFX10-LABEL: name: gfx10_tbuffer_load_not_merged_swizzled_1 1545# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1546# GFX10: %{{[0-9]+}}:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %4, 0, 8, 22, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1547name: gfx10_tbuffer_load_not_merged_swizzled_1 1548body: | 1549 bb.0.entry: 1550 %0:sgpr_32 = COPY $sgpr0 1551 %1:sgpr_32 = COPY $sgpr1 1552 %2:sgpr_32 = COPY $sgpr2 1553 %3:sgpr_32 = COPY $sgpr3 1554 %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 1555 %7:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 4, 22, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1556 %8:vgpr_32 = TBUFFER_LOAD_FORMAT_X_OFFSET %5:sgpr_128, 0, 8, 22, 0, 0, 0, 0, 1, implicit $exec :: (dereferenceable load 4, align 1, addrspace 4) 1557... 1558--- 1559 1560