• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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