1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ;RUN: llc < %s -mtriple=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck -check-prefix=PREGFX10 %s
3 ;RUN: llc < %s -mtriple=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck -check-prefix=PREGFX10 %s
4 ;RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs | FileCheck -check-prefix=GFX10 %s
5 ;RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs | FileCheck -check-prefix=GFX11 %s
6 ;RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs | FileCheck -check-prefix=GFX12 %s
7 ;RUN: llc < %s -global-isel -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs | FileCheck -check-prefix=GFX12 %s
9 define amdgpu_ps void @tbuffer_store(<4 x i32> inreg, <4 x float>, <4 x float>, <4 x float>) {
10 ; PREGFX10-LABEL: tbuffer_store:
11 ; PREGFX10: ; %bb.0: ; %main_body
12 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_DATA_FORMAT_16_16_16_16,BUF_NUM_FORMAT_USCALED]
13 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[4:7], off, s[0:3], 0 format:[BUF_DATA_FORMAT_32_32_32,BUF_NUM_FORMAT_SSCALED] glc
14 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:[BUF_DATA_FORMAT_32_32_32_32,BUF_NUM_FORMAT_UINT] slc
15 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:[BUF_DATA_FORMAT_32_32_32_32,BUF_NUM_FORMAT_UINT] glc
16 ; PREGFX10-NEXT: s_endpgm
18 ; GFX10-LABEL: tbuffer_store:
19 ; GFX10: ; %bb.0: ; %main_body
20 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_FMT_10_10_10_2_UNORM]
21 ; GFX10-NEXT: tbuffer_store_format_xyzw v[4:7], off, s[0:3], 0 format:[BUF_FMT_8_8_8_8_SINT] glc
22 ; GFX10-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78 slc
23 ; GFX10-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78 glc dlc
24 ; GFX10-NEXT: s_endpgm
26 ; GFX11-LABEL: tbuffer_store:
27 ; GFX11: ; %bb.0: ; %main_body
28 ; GFX11-NEXT: s_clause 0x3
29 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_FMT_8_8_8_8_USCALED]
30 ; GFX11-NEXT: tbuffer_store_format_xyzw v[4:7], off, s[0:3], 0 format:[BUF_FMT_32_32_32_32_UINT] glc
31 ; GFX11-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78 slc
32 ; GFX11-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78 glc dlc
33 ; GFX11-NEXT: s_endpgm
35 ; GFX12-LABEL: tbuffer_store:
36 ; GFX12: ; %bb.0: ; %main_body
37 ; GFX12-NEXT: s_clause 0x3
38 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:[BUF_FMT_8_8_8_8_USCALED]
39 ; GFX12-NEXT: tbuffer_store_format_xyzw v[4:7], off, s[0:3], null format:[BUF_FMT_32_32_32_32_UINT] th:TH_STORE_NT
40 ; GFX12-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], null format:78 th:TH_STORE_HT
41 ; GFX12-NEXT: tbuffer_store_format_xyzw v[8:11], off, s[0:3], null format:78 th:TH_STORE_RT_NT
42 ; GFX12-NEXT: s_endpgm
44 %in1 = bitcast <4 x float> %1 to <4 x i32>
45 %in2 = bitcast <4 x float> %2 to <4 x i32>
46 %in3 = bitcast <4 x float> %3 to <4 x i32>
47 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in1, <4 x i32> %0, i32 0, i32 0, i32 44, i32 0)
48 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in2, <4 x i32> %0, i32 0, i32 0, i32 61, i32 1)
49 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in3, <4 x i32> %0, i32 0, i32 0, i32 78, i32 2)
50 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %3, <4 x i32> %0, i32 0, i32 0, i32 78, i32 5)
54 define amdgpu_ps void @tbuffer_store_immoffs(<4 x i32> inreg, <4 x float>) {
55 ; PREGFX10-LABEL: tbuffer_store_immoffs:
56 ; PREGFX10: ; %bb.0: ; %main_body
57 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_DATA_FORMAT_16_16,BUF_NUM_FORMAT_FLOAT] offset:42
58 ; PREGFX10-NEXT: s_endpgm
60 ; GFX10-LABEL: tbuffer_store_immoffs:
61 ; GFX10: ; %bb.0: ; %main_body
62 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:117 offset:42
63 ; GFX10-NEXT: s_endpgm
65 ; GFX11-LABEL: tbuffer_store_immoffs:
66 ; GFX11: ; %bb.0: ; %main_body
67 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:117 offset:42
68 ; GFX11-NEXT: s_endpgm
70 ; GFX12-LABEL: tbuffer_store_immoffs:
71 ; GFX12: ; %bb.0: ; %main_body
72 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:117 offset:42
73 ; GFX12-NEXT: s_endpgm
75 %in1 = bitcast <4 x float> %1 to <4 x i32>
76 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in1, <4 x i32> %0, i32 42, i32 0, i32 117, i32 0)
80 define amdgpu_ps void @tbuffer_store_scalar_and_imm_offs(<4 x i32> inreg, <4 x float> %vdata, i32 inreg %soffset) {
81 ; PREGFX10-LABEL: tbuffer_store_scalar_and_imm_offs:
82 ; PREGFX10: ; %bb.0: ; %main_body
83 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], s4 format:[BUF_DATA_FORMAT_16_16,BUF_NUM_FORMAT_FLOAT] offset:42
84 ; PREGFX10-NEXT: s_endpgm
86 ; GFX10-LABEL: tbuffer_store_scalar_and_imm_offs:
87 ; GFX10: ; %bb.0: ; %main_body
88 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], s4 format:117 offset:42
89 ; GFX10-NEXT: s_endpgm
91 ; GFX11-LABEL: tbuffer_store_scalar_and_imm_offs:
92 ; GFX11: ; %bb.0: ; %main_body
93 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], s4 format:117 offset:42
94 ; GFX11-NEXT: s_endpgm
96 ; GFX12-LABEL: tbuffer_store_scalar_and_imm_offs:
97 ; GFX12: ; %bb.0: ; %main_body
98 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], s4 format:117 offset:42
99 ; GFX12-NEXT: s_endpgm
101 %in1 = bitcast <4 x float> %vdata to <4 x i32>
102 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in1, <4 x i32> %0, i32 42, i32 %soffset, i32 117, i32 0)
106 define amdgpu_ps void @buffer_store_ofs(<4 x i32> inreg, <4 x float> %vdata, i32 %voffset) {
107 ; PREGFX10-LABEL: buffer_store_ofs:
108 ; PREGFX10: ; %bb.0: ; %main_body
109 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_DATA_FORMAT_8_8,BUF_NUM_FORMAT_FLOAT] offen
110 ; PREGFX10-NEXT: s_endpgm
112 ; GFX10-LABEL: buffer_store_ofs:
113 ; GFX10: ; %bb.0: ; %main_body
114 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:115 offen
115 ; GFX10-NEXT: s_endpgm
117 ; GFX11-LABEL: buffer_store_ofs:
118 ; GFX11: ; %bb.0: ; %main_body
119 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:115 offen
120 ; GFX11-NEXT: s_endpgm
122 ; GFX12-LABEL: buffer_store_ofs:
123 ; GFX12: ; %bb.0: ; %main_body
124 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], null format:115 offen
125 ; GFX12-NEXT: s_endpgm
127 %in1 = bitcast <4 x float> %vdata to <4 x i32>
128 call void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32> %in1, <4 x i32> %0, i32 %voffset, i32 0, i32 115, i32 0)
132 define amdgpu_ps void @buffer_store_x1(<4 x i32> inreg %rsrc, float %data) {
133 ; PREGFX10-LABEL: buffer_store_x1:
134 ; PREGFX10: ; %bb.0: ; %main_body
135 ; PREGFX10-NEXT: tbuffer_store_format_x v0, off, s[0:3], 0 format:[BUF_DATA_FORMAT_32_32_32,BUF_NUM_FORMAT_FLOAT]
136 ; PREGFX10-NEXT: s_endpgm
138 ; GFX10-LABEL: buffer_store_x1:
139 ; GFX10: ; %bb.0: ; %main_body
140 ; GFX10-NEXT: tbuffer_store_format_x v0, off, s[0:3], 0 format:125
141 ; GFX10-NEXT: s_endpgm
143 ; GFX11-LABEL: buffer_store_x1:
144 ; GFX11: ; %bb.0: ; %main_body
145 ; GFX11-NEXT: tbuffer_store_format_x v0, off, s[0:3], 0 format:125
146 ; GFX11-NEXT: s_endpgm
148 ; GFX12-LABEL: buffer_store_x1:
149 ; GFX12: ; %bb.0: ; %main_body
150 ; GFX12-NEXT: tbuffer_store_format_x v0, off, s[0:3], null format:125
151 ; GFX12-NEXT: s_endpgm
153 %data.i = bitcast float %data to i32
154 call void @llvm.amdgcn.raw.tbuffer.store.i32(i32 %data.i, <4 x i32> %rsrc, i32 0, i32 0, i32 125, i32 0)
158 define amdgpu_ps void @buffer_store_x2(<4 x i32> inreg %rsrc, <2 x float> %data) {
159 ; PREGFX10-LABEL: buffer_store_x2:
160 ; PREGFX10: ; %bb.0: ; %main_body
161 ; PREGFX10-NEXT: tbuffer_store_format_xy v[0:1], off, s[0:3], 0 format:[BUF_NUM_FORMAT_USCALED]
162 ; PREGFX10-NEXT: s_endpgm
164 ; GFX10-LABEL: buffer_store_x2:
165 ; GFX10: ; %bb.0: ; %main_body
166 ; GFX10-NEXT: tbuffer_store_format_xy v[0:1], off, s[0:3], 0 format:[BUF_FMT_10_11_11_SSCALED]
167 ; GFX10-NEXT: s_endpgm
169 ; GFX11-LABEL: buffer_store_x2:
170 ; GFX11: ; %bb.0: ; %main_body
171 ; GFX11-NEXT: tbuffer_store_format_xy v[0:1], off, s[0:3], 0 format:[BUF_FMT_10_10_10_2_SNORM]
172 ; GFX11-NEXT: s_endpgm
174 ; GFX12-LABEL: buffer_store_x2:
175 ; GFX12: ; %bb.0: ; %main_body
176 ; GFX12-NEXT: tbuffer_store_format_xy v[0:1], off, s[0:3], null format:[BUF_FMT_10_10_10_2_SNORM]
177 ; GFX12-NEXT: s_endpgm
179 %data.i = bitcast <2 x float> %data to <2 x i32>
180 call void @llvm.amdgcn.raw.tbuffer.store.v2i32(<2 x i32> %data.i, <4 x i32> %rsrc, i32 0, i32 0, i32 33, i32 0)
184 define amdgpu_ps void @buffer_store_voffset_large_12bit(<4 x i32> inreg %rsrc, <4 x float> %data) {
185 ; PREGFX10-LABEL: buffer_store_voffset_large_12bit:
186 ; PREGFX10: ; %bb.0: ; %main_body
187 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_DATA_FORMAT_RESERVED_15,BUF_NUM_FORMAT_SSCALED] offset:4092
188 ; PREGFX10-NEXT: s_endpgm
190 ; GFX10-LABEL: buffer_store_voffset_large_12bit:
191 ; GFX10: ; %bb.0: ; %main_body
192 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_FMT_32_32_SINT] offset:4092
193 ; GFX10-NEXT: s_endpgm
195 ; GFX11-LABEL: buffer_store_voffset_large_12bit:
196 ; GFX11: ; %bb.0: ; %main_body
197 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT] offset:4092
198 ; GFX11-NEXT: s_endpgm
200 ; GFX12-LABEL: buffer_store_voffset_large_12bit:
201 ; GFX12: ; %bb.0: ; %main_body
202 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:[BUF_FMT_32_32_32_32_FLOAT] offset:4092
203 ; GFX12-NEXT: s_endpgm
205 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %data, <4 x i32> %rsrc, i32 4092, i32 0, i32 63, i32 0)
209 define amdgpu_ps void @buffer_store_voffset_large_13bit(<4 x i32> inreg %rsrc, <4 x float> %data) {
210 ; PREGFX10-LABEL: buffer_store_voffset_large_13bit:
211 ; PREGFX10: ; %bb.0: ; %main_body
212 ; PREGFX10-NEXT: v_mov_b32_e32 v4, 0x1000
213 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_DATA_FORMAT_RESERVED_15,BUF_NUM_FORMAT_SSCALED] offen offset:4092
214 ; PREGFX10-NEXT: s_endpgm
216 ; GFX10-LABEL: buffer_store_voffset_large_13bit:
217 ; GFX10: ; %bb.0: ; %main_body
218 ; GFX10-NEXT: v_mov_b32_e32 v4, 0x1000
219 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_SINT] offen offset:4092
220 ; GFX10-NEXT: s_endpgm
222 ; GFX11-LABEL: buffer_store_voffset_large_13bit:
223 ; GFX11: ; %bb.0: ; %main_body
224 ; GFX11-NEXT: v_mov_b32_e32 v4, 0x1000
225 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT] offen offset:4092
226 ; GFX11-NEXT: s_endpgm
228 ; GFX12-LABEL: buffer_store_voffset_large_13bit:
229 ; GFX12: ; %bb.0: ; %main_body
230 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:[BUF_FMT_32_32_32_32_FLOAT] offset:8188
231 ; GFX12-NEXT: s_endpgm
233 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %data, <4 x i32> %rsrc, i32 8188, i32 0, i32 63, i32 0)
237 define amdgpu_ps void @buffer_store_voffset_large_16bit(<4 x i32> inreg %rsrc, <4 x float> %data) {
238 ; PREGFX10-LABEL: buffer_store_voffset_large_16bit:
239 ; PREGFX10: ; %bb.0: ; %main_body
240 ; PREGFX10-NEXT: v_mov_b32_e32 v4, 0xf000
241 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_DATA_FORMAT_RESERVED_15,BUF_NUM_FORMAT_SSCALED] offen offset:4092
242 ; PREGFX10-NEXT: s_endpgm
244 ; GFX10-LABEL: buffer_store_voffset_large_16bit:
245 ; GFX10: ; %bb.0: ; %main_body
246 ; GFX10-NEXT: v_mov_b32_e32 v4, 0xf000
247 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_SINT] offen offset:4092
248 ; GFX10-NEXT: s_endpgm
250 ; GFX11-LABEL: buffer_store_voffset_large_16bit:
251 ; GFX11: ; %bb.0: ; %main_body
252 ; GFX11-NEXT: v_mov_b32_e32 v4, 0xf000
253 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT] offen offset:4092
254 ; GFX11-NEXT: s_endpgm
256 ; GFX12-LABEL: buffer_store_voffset_large_16bit:
257 ; GFX12: ; %bb.0: ; %main_body
258 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:[BUF_FMT_32_32_32_32_FLOAT] offset:65532
259 ; GFX12-NEXT: s_endpgm
261 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %data, <4 x i32> %rsrc, i32 65532, i32 0, i32 63, i32 0)
265 define amdgpu_ps void @buffer_store_voffset_large_23bit(<4 x i32> inreg %rsrc, <4 x float> %data) {
266 ; PREGFX10-LABEL: buffer_store_voffset_large_23bit:
267 ; PREGFX10: ; %bb.0: ; %main_body
268 ; PREGFX10-NEXT: v_mov_b32_e32 v4, 0x7ff000
269 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_DATA_FORMAT_RESERVED_15,BUF_NUM_FORMAT_SSCALED] offen offset:4092
270 ; PREGFX10-NEXT: s_endpgm
272 ; GFX10-LABEL: buffer_store_voffset_large_23bit:
273 ; GFX10: ; %bb.0: ; %main_body
274 ; GFX10-NEXT: v_mov_b32_e32 v4, 0x7ff000
275 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_SINT] offen offset:4092
276 ; GFX10-NEXT: s_endpgm
278 ; GFX11-LABEL: buffer_store_voffset_large_23bit:
279 ; GFX11: ; %bb.0: ; %main_body
280 ; GFX11-NEXT: v_mov_b32_e32 v4, 0x7ff000
281 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT] offen offset:4092
282 ; GFX11-NEXT: s_endpgm
284 ; GFX12-LABEL: buffer_store_voffset_large_23bit:
285 ; GFX12: ; %bb.0: ; %main_body
286 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], off, s[0:3], null format:[BUF_FMT_32_32_32_32_FLOAT] offset:8388604
287 ; GFX12-NEXT: s_endpgm
289 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %data, <4 x i32> %rsrc, i32 8388604, i32 0, i32 63, i32 0)
293 define amdgpu_ps void @buffer_store_voffset_large_24bit(<4 x i32> inreg %rsrc, <4 x float> %data) {
294 ; PREGFX10-LABEL: buffer_store_voffset_large_24bit:
295 ; PREGFX10: ; %bb.0: ; %main_body
296 ; PREGFX10-NEXT: v_mov_b32_e32 v4, 0xfff000
297 ; PREGFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_DATA_FORMAT_RESERVED_15,BUF_NUM_FORMAT_SSCALED] offen offset:4092
298 ; PREGFX10-NEXT: s_endpgm
300 ; GFX10-LABEL: buffer_store_voffset_large_24bit:
301 ; GFX10: ; %bb.0: ; %main_body
302 ; GFX10-NEXT: v_mov_b32_e32 v4, 0xfff000
303 ; GFX10-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_SINT] offen offset:4092
304 ; GFX10-NEXT: s_endpgm
306 ; GFX11-LABEL: buffer_store_voffset_large_24bit:
307 ; GFX11: ; %bb.0: ; %main_body
308 ; GFX11-NEXT: v_mov_b32_e32 v4, 0xfff000
309 ; GFX11-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT] offen offset:4092
310 ; GFX11-NEXT: s_endpgm
312 ; GFX12-LABEL: buffer_store_voffset_large_24bit:
313 ; GFX12: ; %bb.0: ; %main_body
314 ; GFX12-NEXT: v_mov_b32_e32 v4, 0x800000
315 ; GFX12-NEXT: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], null format:[BUF_FMT_32_32_32_32_FLOAT] offen offset:8388604
316 ; GFX12-NEXT: s_endpgm
318 call void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float> %data, <4 x i32> %rsrc, i32 16777212, i32 0, i32 63, i32 0)
322 declare void @llvm.amdgcn.raw.tbuffer.store.i32(i32, <4 x i32>, i32, i32, i32, i32) #0
323 declare void @llvm.amdgcn.raw.tbuffer.store.v2i32(<2 x i32>, <4 x i32>, i32, i32, i32, i32) #0
324 declare void @llvm.amdgcn.raw.tbuffer.store.v4i32(<4 x i32>, <4 x i32>, i32, i32, i32, i32) #0
325 declare void @llvm.amdgcn.raw.tbuffer.store.v4f32(<4 x float>, <4 x i32>, i32, i32, i32, i32) #0
326 attributes #0 = { nounwind }
327 attributes #1 = { nounwind readonly }