1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx600 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX6 %s
3 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX7 %s
4 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-WGP %s
5 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX10-CU %s
6 ; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx700 -amdgcn-skip-cache-invalidations -verify-machineinstrs < %s | FileCheck --check-prefixes=SKIP-CACHE-INV %s
7 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A-NOTTGSPLIT %s
8 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -mattr=+tgsplit -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A-TGSPLIT %s
9 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX940-NOTTGSPLIT %s
10 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -mattr=+tgsplit -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX940-TGSPLIT %s
11 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX11-WGP %s
12 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+cumode -verify-machineinstrs < %s | FileCheck --check-prefixes=GFX11-CU %s
14 define amdgpu_kernel void @singlethread_acquire_fence() {
15 ; GFX6-LABEL: singlethread_acquire_fence:
16 ; GFX6: ; %bb.0: ; %entry
19 ; GFX7-LABEL: singlethread_acquire_fence:
20 ; GFX7: ; %bb.0: ; %entry
23 ; GFX10-WGP-LABEL: singlethread_acquire_fence:
24 ; GFX10-WGP: ; %bb.0: ; %entry
25 ; GFX10-WGP-NEXT: s_endpgm
27 ; GFX10-CU-LABEL: singlethread_acquire_fence:
28 ; GFX10-CU: ; %bb.0: ; %entry
29 ; GFX10-CU-NEXT: s_endpgm
31 ; SKIP-CACHE-INV-LABEL: singlethread_acquire_fence:
32 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
33 ; SKIP-CACHE-INV-NEXT: s_endpgm
35 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_acquire_fence:
36 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
37 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
39 ; GFX90A-TGSPLIT-LABEL: singlethread_acquire_fence:
40 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
41 ; GFX90A-TGSPLIT-NEXT: s_endpgm
43 ; GFX940-NOTTGSPLIT-LABEL: singlethread_acquire_fence:
44 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
45 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
47 ; GFX940-TGSPLIT-LABEL: singlethread_acquire_fence:
48 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
49 ; GFX940-TGSPLIT-NEXT: s_endpgm
51 ; GFX11-WGP-LABEL: singlethread_acquire_fence:
52 ; GFX11-WGP: ; %bb.0: ; %entry
53 ; GFX11-WGP-NEXT: s_endpgm
55 ; GFX11-CU-LABEL: singlethread_acquire_fence:
56 ; GFX11-CU: ; %bb.0: ; %entry
57 ; GFX11-CU-NEXT: s_endpgm
59 fence syncscope("singlethread") acquire
63 define amdgpu_kernel void @singlethread_release_fence() {
64 ; GFX6-LABEL: singlethread_release_fence:
65 ; GFX6: ; %bb.0: ; %entry
68 ; GFX7-LABEL: singlethread_release_fence:
69 ; GFX7: ; %bb.0: ; %entry
72 ; GFX10-WGP-LABEL: singlethread_release_fence:
73 ; GFX10-WGP: ; %bb.0: ; %entry
74 ; GFX10-WGP-NEXT: s_endpgm
76 ; GFX10-CU-LABEL: singlethread_release_fence:
77 ; GFX10-CU: ; %bb.0: ; %entry
78 ; GFX10-CU-NEXT: s_endpgm
80 ; SKIP-CACHE-INV-LABEL: singlethread_release_fence:
81 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
82 ; SKIP-CACHE-INV-NEXT: s_endpgm
84 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_release_fence:
85 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
86 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
88 ; GFX90A-TGSPLIT-LABEL: singlethread_release_fence:
89 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
90 ; GFX90A-TGSPLIT-NEXT: s_endpgm
92 ; GFX940-NOTTGSPLIT-LABEL: singlethread_release_fence:
93 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
94 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
96 ; GFX940-TGSPLIT-LABEL: singlethread_release_fence:
97 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
98 ; GFX940-TGSPLIT-NEXT: s_endpgm
100 ; GFX11-WGP-LABEL: singlethread_release_fence:
101 ; GFX11-WGP: ; %bb.0: ; %entry
102 ; GFX11-WGP-NEXT: s_endpgm
104 ; GFX11-CU-LABEL: singlethread_release_fence:
105 ; GFX11-CU: ; %bb.0: ; %entry
106 ; GFX11-CU-NEXT: s_endpgm
108 fence syncscope("singlethread") release
112 define amdgpu_kernel void @singlethread_acq_rel_fence() {
113 ; GFX6-LABEL: singlethread_acq_rel_fence:
114 ; GFX6: ; %bb.0: ; %entry
115 ; GFX6-NEXT: s_endpgm
117 ; GFX7-LABEL: singlethread_acq_rel_fence:
118 ; GFX7: ; %bb.0: ; %entry
119 ; GFX7-NEXT: s_endpgm
121 ; GFX10-WGP-LABEL: singlethread_acq_rel_fence:
122 ; GFX10-WGP: ; %bb.0: ; %entry
123 ; GFX10-WGP-NEXT: s_endpgm
125 ; GFX10-CU-LABEL: singlethread_acq_rel_fence:
126 ; GFX10-CU: ; %bb.0: ; %entry
127 ; GFX10-CU-NEXT: s_endpgm
129 ; SKIP-CACHE-INV-LABEL: singlethread_acq_rel_fence:
130 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
131 ; SKIP-CACHE-INV-NEXT: s_endpgm
133 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:
134 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
135 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
137 ; GFX90A-TGSPLIT-LABEL: singlethread_acq_rel_fence:
138 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
139 ; GFX90A-TGSPLIT-NEXT: s_endpgm
141 ; GFX940-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:
142 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
143 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
145 ; GFX940-TGSPLIT-LABEL: singlethread_acq_rel_fence:
146 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
147 ; GFX940-TGSPLIT-NEXT: s_endpgm
149 ; GFX11-WGP-LABEL: singlethread_acq_rel_fence:
150 ; GFX11-WGP: ; %bb.0: ; %entry
151 ; GFX11-WGP-NEXT: s_endpgm
153 ; GFX11-CU-LABEL: singlethread_acq_rel_fence:
154 ; GFX11-CU: ; %bb.0: ; %entry
155 ; GFX11-CU-NEXT: s_endpgm
157 fence syncscope("singlethread") acq_rel
161 define amdgpu_kernel void @singlethread_seq_cst_fence() {
162 ; GFX6-LABEL: singlethread_seq_cst_fence:
163 ; GFX6: ; %bb.0: ; %entry
164 ; GFX6-NEXT: s_endpgm
166 ; GFX7-LABEL: singlethread_seq_cst_fence:
167 ; GFX7: ; %bb.0: ; %entry
168 ; GFX7-NEXT: s_endpgm
170 ; GFX10-WGP-LABEL: singlethread_seq_cst_fence:
171 ; GFX10-WGP: ; %bb.0: ; %entry
172 ; GFX10-WGP-NEXT: s_endpgm
174 ; GFX10-CU-LABEL: singlethread_seq_cst_fence:
175 ; GFX10-CU: ; %bb.0: ; %entry
176 ; GFX10-CU-NEXT: s_endpgm
178 ; SKIP-CACHE-INV-LABEL: singlethread_seq_cst_fence:
179 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
180 ; SKIP-CACHE-INV-NEXT: s_endpgm
182 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:
183 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
184 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
186 ; GFX90A-TGSPLIT-LABEL: singlethread_seq_cst_fence:
187 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
188 ; GFX90A-TGSPLIT-NEXT: s_endpgm
190 ; GFX940-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:
191 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
192 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
194 ; GFX940-TGSPLIT-LABEL: singlethread_seq_cst_fence:
195 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
196 ; GFX940-TGSPLIT-NEXT: s_endpgm
198 ; GFX11-WGP-LABEL: singlethread_seq_cst_fence:
199 ; GFX11-WGP: ; %bb.0: ; %entry
200 ; GFX11-WGP-NEXT: s_endpgm
202 ; GFX11-CU-LABEL: singlethread_seq_cst_fence:
203 ; GFX11-CU: ; %bb.0: ; %entry
204 ; GFX11-CU-NEXT: s_endpgm
206 fence syncscope("singlethread") seq_cst
210 define amdgpu_kernel void @singlethread_one_as_acquire_fence() {
211 ; GFX6-LABEL: singlethread_one_as_acquire_fence:
212 ; GFX6: ; %bb.0: ; %entry
213 ; GFX6-NEXT: s_endpgm
215 ; GFX7-LABEL: singlethread_one_as_acquire_fence:
216 ; GFX7: ; %bb.0: ; %entry
217 ; GFX7-NEXT: s_endpgm
219 ; GFX10-WGP-LABEL: singlethread_one_as_acquire_fence:
220 ; GFX10-WGP: ; %bb.0: ; %entry
221 ; GFX10-WGP-NEXT: s_endpgm
223 ; GFX10-CU-LABEL: singlethread_one_as_acquire_fence:
224 ; GFX10-CU: ; %bb.0: ; %entry
225 ; GFX10-CU-NEXT: s_endpgm
227 ; SKIP-CACHE-INV-LABEL: singlethread_one_as_acquire_fence:
228 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
229 ; SKIP-CACHE-INV-NEXT: s_endpgm
231 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:
232 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
233 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
235 ; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:
236 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
237 ; GFX90A-TGSPLIT-NEXT: s_endpgm
239 ; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:
240 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
241 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
243 ; GFX940-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:
244 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
245 ; GFX940-TGSPLIT-NEXT: s_endpgm
247 ; GFX11-WGP-LABEL: singlethread_one_as_acquire_fence:
248 ; GFX11-WGP: ; %bb.0: ; %entry
249 ; GFX11-WGP-NEXT: s_endpgm
251 ; GFX11-CU-LABEL: singlethread_one_as_acquire_fence:
252 ; GFX11-CU: ; %bb.0: ; %entry
253 ; GFX11-CU-NEXT: s_endpgm
255 fence syncscope("singlethread-one-as") acquire
259 define amdgpu_kernel void @singlethread_one_as_release_fence() {
260 ; GFX6-LABEL: singlethread_one_as_release_fence:
261 ; GFX6: ; %bb.0: ; %entry
262 ; GFX6-NEXT: s_endpgm
264 ; GFX7-LABEL: singlethread_one_as_release_fence:
265 ; GFX7: ; %bb.0: ; %entry
266 ; GFX7-NEXT: s_endpgm
268 ; GFX10-WGP-LABEL: singlethread_one_as_release_fence:
269 ; GFX10-WGP: ; %bb.0: ; %entry
270 ; GFX10-WGP-NEXT: s_endpgm
272 ; GFX10-CU-LABEL: singlethread_one_as_release_fence:
273 ; GFX10-CU: ; %bb.0: ; %entry
274 ; GFX10-CU-NEXT: s_endpgm
276 ; SKIP-CACHE-INV-LABEL: singlethread_one_as_release_fence:
277 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
278 ; SKIP-CACHE-INV-NEXT: s_endpgm
280 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:
281 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
282 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
284 ; GFX90A-TGSPLIT-LABEL: singlethread_one_as_release_fence:
285 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
286 ; GFX90A-TGSPLIT-NEXT: s_endpgm
288 ; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:
289 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
290 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
292 ; GFX940-TGSPLIT-LABEL: singlethread_one_as_release_fence:
293 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
294 ; GFX940-TGSPLIT-NEXT: s_endpgm
296 ; GFX11-WGP-LABEL: singlethread_one_as_release_fence:
297 ; GFX11-WGP: ; %bb.0: ; %entry
298 ; GFX11-WGP-NEXT: s_endpgm
300 ; GFX11-CU-LABEL: singlethread_one_as_release_fence:
301 ; GFX11-CU: ; %bb.0: ; %entry
302 ; GFX11-CU-NEXT: s_endpgm
304 fence syncscope("singlethread-one-as") release
308 define amdgpu_kernel void @singlethread_one_as_acq_rel_fence() {
309 ; GFX6-LABEL: singlethread_one_as_acq_rel_fence:
310 ; GFX6: ; %bb.0: ; %entry
311 ; GFX6-NEXT: s_endpgm
313 ; GFX7-LABEL: singlethread_one_as_acq_rel_fence:
314 ; GFX7: ; %bb.0: ; %entry
315 ; GFX7-NEXT: s_endpgm
317 ; GFX10-WGP-LABEL: singlethread_one_as_acq_rel_fence:
318 ; GFX10-WGP: ; %bb.0: ; %entry
319 ; GFX10-WGP-NEXT: s_endpgm
321 ; GFX10-CU-LABEL: singlethread_one_as_acq_rel_fence:
322 ; GFX10-CU: ; %bb.0: ; %entry
323 ; GFX10-CU-NEXT: s_endpgm
325 ; SKIP-CACHE-INV-LABEL: singlethread_one_as_acq_rel_fence:
326 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
327 ; SKIP-CACHE-INV-NEXT: s_endpgm
329 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
330 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
331 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
333 ; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
334 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
335 ; GFX90A-TGSPLIT-NEXT: s_endpgm
337 ; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
338 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
339 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
341 ; GFX940-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
342 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
343 ; GFX940-TGSPLIT-NEXT: s_endpgm
345 ; GFX11-WGP-LABEL: singlethread_one_as_acq_rel_fence:
346 ; GFX11-WGP: ; %bb.0: ; %entry
347 ; GFX11-WGP-NEXT: s_endpgm
349 ; GFX11-CU-LABEL: singlethread_one_as_acq_rel_fence:
350 ; GFX11-CU: ; %bb.0: ; %entry
351 ; GFX11-CU-NEXT: s_endpgm
353 fence syncscope("singlethread-one-as") acq_rel
357 define amdgpu_kernel void @singlethread_one_as_seq_cst_fence() {
358 ; GFX6-LABEL: singlethread_one_as_seq_cst_fence:
359 ; GFX6: ; %bb.0: ; %entry
360 ; GFX6-NEXT: s_endpgm
362 ; GFX7-LABEL: singlethread_one_as_seq_cst_fence:
363 ; GFX7: ; %bb.0: ; %entry
364 ; GFX7-NEXT: s_endpgm
366 ; GFX10-WGP-LABEL: singlethread_one_as_seq_cst_fence:
367 ; GFX10-WGP: ; %bb.0: ; %entry
368 ; GFX10-WGP-NEXT: s_endpgm
370 ; GFX10-CU-LABEL: singlethread_one_as_seq_cst_fence:
371 ; GFX10-CU: ; %bb.0: ; %entry
372 ; GFX10-CU-NEXT: s_endpgm
374 ; SKIP-CACHE-INV-LABEL: singlethread_one_as_seq_cst_fence:
375 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
376 ; SKIP-CACHE-INV-NEXT: s_endpgm
378 ; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
379 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
380 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
382 ; GFX90A-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
383 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
384 ; GFX90A-TGSPLIT-NEXT: s_endpgm
386 ; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
387 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
388 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
390 ; GFX940-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
391 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
392 ; GFX940-TGSPLIT-NEXT: s_endpgm
394 ; GFX11-WGP-LABEL: singlethread_one_as_seq_cst_fence:
395 ; GFX11-WGP: ; %bb.0: ; %entry
396 ; GFX11-WGP-NEXT: s_endpgm
398 ; GFX11-CU-LABEL: singlethread_one_as_seq_cst_fence:
399 ; GFX11-CU: ; %bb.0: ; %entry
400 ; GFX11-CU-NEXT: s_endpgm
402 fence syncscope("singlethread-one-as") seq_cst
406 define amdgpu_kernel void @wavefront_acquire_fence() {
407 ; GFX6-LABEL: wavefront_acquire_fence:
408 ; GFX6: ; %bb.0: ; %entry
409 ; GFX6-NEXT: s_endpgm
411 ; GFX7-LABEL: wavefront_acquire_fence:
412 ; GFX7: ; %bb.0: ; %entry
413 ; GFX7-NEXT: s_endpgm
415 ; GFX10-WGP-LABEL: wavefront_acquire_fence:
416 ; GFX10-WGP: ; %bb.0: ; %entry
417 ; GFX10-WGP-NEXT: s_endpgm
419 ; GFX10-CU-LABEL: wavefront_acquire_fence:
420 ; GFX10-CU: ; %bb.0: ; %entry
421 ; GFX10-CU-NEXT: s_endpgm
423 ; SKIP-CACHE-INV-LABEL: wavefront_acquire_fence:
424 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
425 ; SKIP-CACHE-INV-NEXT: s_endpgm
427 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_acquire_fence:
428 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
429 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
431 ; GFX90A-TGSPLIT-LABEL: wavefront_acquire_fence:
432 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
433 ; GFX90A-TGSPLIT-NEXT: s_endpgm
435 ; GFX940-NOTTGSPLIT-LABEL: wavefront_acquire_fence:
436 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
437 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
439 ; GFX940-TGSPLIT-LABEL: wavefront_acquire_fence:
440 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
441 ; GFX940-TGSPLIT-NEXT: s_endpgm
443 ; GFX11-WGP-LABEL: wavefront_acquire_fence:
444 ; GFX11-WGP: ; %bb.0: ; %entry
445 ; GFX11-WGP-NEXT: s_endpgm
447 ; GFX11-CU-LABEL: wavefront_acquire_fence:
448 ; GFX11-CU: ; %bb.0: ; %entry
449 ; GFX11-CU-NEXT: s_endpgm
451 fence syncscope("wavefront") acquire
455 define amdgpu_kernel void @wavefront_release_fence() {
456 ; GFX6-LABEL: wavefront_release_fence:
457 ; GFX6: ; %bb.0: ; %entry
458 ; GFX6-NEXT: s_endpgm
460 ; GFX7-LABEL: wavefront_release_fence:
461 ; GFX7: ; %bb.0: ; %entry
462 ; GFX7-NEXT: s_endpgm
464 ; GFX10-WGP-LABEL: wavefront_release_fence:
465 ; GFX10-WGP: ; %bb.0: ; %entry
466 ; GFX10-WGP-NEXT: s_endpgm
468 ; GFX10-CU-LABEL: wavefront_release_fence:
469 ; GFX10-CU: ; %bb.0: ; %entry
470 ; GFX10-CU-NEXT: s_endpgm
472 ; SKIP-CACHE-INV-LABEL: wavefront_release_fence:
473 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
474 ; SKIP-CACHE-INV-NEXT: s_endpgm
476 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_release_fence:
477 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
478 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
480 ; GFX90A-TGSPLIT-LABEL: wavefront_release_fence:
481 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
482 ; GFX90A-TGSPLIT-NEXT: s_endpgm
484 ; GFX940-NOTTGSPLIT-LABEL: wavefront_release_fence:
485 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
486 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
488 ; GFX940-TGSPLIT-LABEL: wavefront_release_fence:
489 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
490 ; GFX940-TGSPLIT-NEXT: s_endpgm
492 ; GFX11-WGP-LABEL: wavefront_release_fence:
493 ; GFX11-WGP: ; %bb.0: ; %entry
494 ; GFX11-WGP-NEXT: s_endpgm
496 ; GFX11-CU-LABEL: wavefront_release_fence:
497 ; GFX11-CU: ; %bb.0: ; %entry
498 ; GFX11-CU-NEXT: s_endpgm
500 fence syncscope("wavefront") release
504 define amdgpu_kernel void @wavefront_acq_rel_fence() {
505 ; GFX6-LABEL: wavefront_acq_rel_fence:
506 ; GFX6: ; %bb.0: ; %entry
507 ; GFX6-NEXT: s_endpgm
509 ; GFX7-LABEL: wavefront_acq_rel_fence:
510 ; GFX7: ; %bb.0: ; %entry
511 ; GFX7-NEXT: s_endpgm
513 ; GFX10-WGP-LABEL: wavefront_acq_rel_fence:
514 ; GFX10-WGP: ; %bb.0: ; %entry
515 ; GFX10-WGP-NEXT: s_endpgm
517 ; GFX10-CU-LABEL: wavefront_acq_rel_fence:
518 ; GFX10-CU: ; %bb.0: ; %entry
519 ; GFX10-CU-NEXT: s_endpgm
521 ; SKIP-CACHE-INV-LABEL: wavefront_acq_rel_fence:
522 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
523 ; SKIP-CACHE-INV-NEXT: s_endpgm
525 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:
526 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
527 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
529 ; GFX90A-TGSPLIT-LABEL: wavefront_acq_rel_fence:
530 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
531 ; GFX90A-TGSPLIT-NEXT: s_endpgm
533 ; GFX940-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:
534 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
535 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
537 ; GFX940-TGSPLIT-LABEL: wavefront_acq_rel_fence:
538 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
539 ; GFX940-TGSPLIT-NEXT: s_endpgm
541 ; GFX11-WGP-LABEL: wavefront_acq_rel_fence:
542 ; GFX11-WGP: ; %bb.0: ; %entry
543 ; GFX11-WGP-NEXT: s_endpgm
545 ; GFX11-CU-LABEL: wavefront_acq_rel_fence:
546 ; GFX11-CU: ; %bb.0: ; %entry
547 ; GFX11-CU-NEXT: s_endpgm
549 fence syncscope("wavefront") acq_rel
553 define amdgpu_kernel void @wavefront_seq_cst_fence() {
554 ; GFX6-LABEL: wavefront_seq_cst_fence:
555 ; GFX6: ; %bb.0: ; %entry
556 ; GFX6-NEXT: s_endpgm
558 ; GFX7-LABEL: wavefront_seq_cst_fence:
559 ; GFX7: ; %bb.0: ; %entry
560 ; GFX7-NEXT: s_endpgm
562 ; GFX10-WGP-LABEL: wavefront_seq_cst_fence:
563 ; GFX10-WGP: ; %bb.0: ; %entry
564 ; GFX10-WGP-NEXT: s_endpgm
566 ; GFX10-CU-LABEL: wavefront_seq_cst_fence:
567 ; GFX10-CU: ; %bb.0: ; %entry
568 ; GFX10-CU-NEXT: s_endpgm
570 ; SKIP-CACHE-INV-LABEL: wavefront_seq_cst_fence:
571 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
572 ; SKIP-CACHE-INV-NEXT: s_endpgm
574 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:
575 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
576 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
578 ; GFX90A-TGSPLIT-LABEL: wavefront_seq_cst_fence:
579 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
580 ; GFX90A-TGSPLIT-NEXT: s_endpgm
582 ; GFX940-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:
583 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
584 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
586 ; GFX940-TGSPLIT-LABEL: wavefront_seq_cst_fence:
587 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
588 ; GFX940-TGSPLIT-NEXT: s_endpgm
590 ; GFX11-WGP-LABEL: wavefront_seq_cst_fence:
591 ; GFX11-WGP: ; %bb.0: ; %entry
592 ; GFX11-WGP-NEXT: s_endpgm
594 ; GFX11-CU-LABEL: wavefront_seq_cst_fence:
595 ; GFX11-CU: ; %bb.0: ; %entry
596 ; GFX11-CU-NEXT: s_endpgm
598 fence syncscope("wavefront") seq_cst
602 define amdgpu_kernel void @wavefront_one_as_acquire_fence() {
603 ; GFX6-LABEL: wavefront_one_as_acquire_fence:
604 ; GFX6: ; %bb.0: ; %entry
605 ; GFX6-NEXT: s_endpgm
607 ; GFX7-LABEL: wavefront_one_as_acquire_fence:
608 ; GFX7: ; %bb.0: ; %entry
609 ; GFX7-NEXT: s_endpgm
611 ; GFX10-WGP-LABEL: wavefront_one_as_acquire_fence:
612 ; GFX10-WGP: ; %bb.0: ; %entry
613 ; GFX10-WGP-NEXT: s_endpgm
615 ; GFX10-CU-LABEL: wavefront_one_as_acquire_fence:
616 ; GFX10-CU: ; %bb.0: ; %entry
617 ; GFX10-CU-NEXT: s_endpgm
619 ; SKIP-CACHE-INV-LABEL: wavefront_one_as_acquire_fence:
620 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
621 ; SKIP-CACHE-INV-NEXT: s_endpgm
623 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:
624 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
625 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
627 ; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:
628 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
629 ; GFX90A-TGSPLIT-NEXT: s_endpgm
631 ; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:
632 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
633 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
635 ; GFX940-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:
636 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
637 ; GFX940-TGSPLIT-NEXT: s_endpgm
639 ; GFX11-WGP-LABEL: wavefront_one_as_acquire_fence:
640 ; GFX11-WGP: ; %bb.0: ; %entry
641 ; GFX11-WGP-NEXT: s_endpgm
643 ; GFX11-CU-LABEL: wavefront_one_as_acquire_fence:
644 ; GFX11-CU: ; %bb.0: ; %entry
645 ; GFX11-CU-NEXT: s_endpgm
647 fence syncscope("wavefront-one-as") acquire
651 define amdgpu_kernel void @wavefront_one_as_release_fence() {
652 ; GFX6-LABEL: wavefront_one_as_release_fence:
653 ; GFX6: ; %bb.0: ; %entry
654 ; GFX6-NEXT: s_endpgm
656 ; GFX7-LABEL: wavefront_one_as_release_fence:
657 ; GFX7: ; %bb.0: ; %entry
658 ; GFX7-NEXT: s_endpgm
660 ; GFX10-WGP-LABEL: wavefront_one_as_release_fence:
661 ; GFX10-WGP: ; %bb.0: ; %entry
662 ; GFX10-WGP-NEXT: s_endpgm
664 ; GFX10-CU-LABEL: wavefront_one_as_release_fence:
665 ; GFX10-CU: ; %bb.0: ; %entry
666 ; GFX10-CU-NEXT: s_endpgm
668 ; SKIP-CACHE-INV-LABEL: wavefront_one_as_release_fence:
669 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
670 ; SKIP-CACHE-INV-NEXT: s_endpgm
672 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:
673 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
674 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
676 ; GFX90A-TGSPLIT-LABEL: wavefront_one_as_release_fence:
677 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
678 ; GFX90A-TGSPLIT-NEXT: s_endpgm
680 ; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:
681 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
682 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
684 ; GFX940-TGSPLIT-LABEL: wavefront_one_as_release_fence:
685 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
686 ; GFX940-TGSPLIT-NEXT: s_endpgm
688 ; GFX11-WGP-LABEL: wavefront_one_as_release_fence:
689 ; GFX11-WGP: ; %bb.0: ; %entry
690 ; GFX11-WGP-NEXT: s_endpgm
692 ; GFX11-CU-LABEL: wavefront_one_as_release_fence:
693 ; GFX11-CU: ; %bb.0: ; %entry
694 ; GFX11-CU-NEXT: s_endpgm
696 fence syncscope("wavefront-one-as") release
700 define amdgpu_kernel void @wavefront_one_as_acq_rel_fence() {
701 ; GFX6-LABEL: wavefront_one_as_acq_rel_fence:
702 ; GFX6: ; %bb.0: ; %entry
703 ; GFX6-NEXT: s_endpgm
705 ; GFX7-LABEL: wavefront_one_as_acq_rel_fence:
706 ; GFX7: ; %bb.0: ; %entry
707 ; GFX7-NEXT: s_endpgm
709 ; GFX10-WGP-LABEL: wavefront_one_as_acq_rel_fence:
710 ; GFX10-WGP: ; %bb.0: ; %entry
711 ; GFX10-WGP-NEXT: s_endpgm
713 ; GFX10-CU-LABEL: wavefront_one_as_acq_rel_fence:
714 ; GFX10-CU: ; %bb.0: ; %entry
715 ; GFX10-CU-NEXT: s_endpgm
717 ; SKIP-CACHE-INV-LABEL: wavefront_one_as_acq_rel_fence:
718 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
719 ; SKIP-CACHE-INV-NEXT: s_endpgm
721 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
722 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
723 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
725 ; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
726 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
727 ; GFX90A-TGSPLIT-NEXT: s_endpgm
729 ; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
730 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
731 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
733 ; GFX940-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
734 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
735 ; GFX940-TGSPLIT-NEXT: s_endpgm
737 ; GFX11-WGP-LABEL: wavefront_one_as_acq_rel_fence:
738 ; GFX11-WGP: ; %bb.0: ; %entry
739 ; GFX11-WGP-NEXT: s_endpgm
741 ; GFX11-CU-LABEL: wavefront_one_as_acq_rel_fence:
742 ; GFX11-CU: ; %bb.0: ; %entry
743 ; GFX11-CU-NEXT: s_endpgm
745 fence syncscope("wavefront-one-as") acq_rel
749 define amdgpu_kernel void @wavefront_one_as_seq_cst_fence() {
750 ; GFX6-LABEL: wavefront_one_as_seq_cst_fence:
751 ; GFX6: ; %bb.0: ; %entry
752 ; GFX6-NEXT: s_endpgm
754 ; GFX7-LABEL: wavefront_one_as_seq_cst_fence:
755 ; GFX7: ; %bb.0: ; %entry
756 ; GFX7-NEXT: s_endpgm
758 ; GFX10-WGP-LABEL: wavefront_one_as_seq_cst_fence:
759 ; GFX10-WGP: ; %bb.0: ; %entry
760 ; GFX10-WGP-NEXT: s_endpgm
762 ; GFX10-CU-LABEL: wavefront_one_as_seq_cst_fence:
763 ; GFX10-CU: ; %bb.0: ; %entry
764 ; GFX10-CU-NEXT: s_endpgm
766 ; SKIP-CACHE-INV-LABEL: wavefront_one_as_seq_cst_fence:
767 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
768 ; SKIP-CACHE-INV-NEXT: s_endpgm
770 ; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
771 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
772 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
774 ; GFX90A-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
775 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
776 ; GFX90A-TGSPLIT-NEXT: s_endpgm
778 ; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
779 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
780 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
782 ; GFX940-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
783 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
784 ; GFX940-TGSPLIT-NEXT: s_endpgm
786 ; GFX11-WGP-LABEL: wavefront_one_as_seq_cst_fence:
787 ; GFX11-WGP: ; %bb.0: ; %entry
788 ; GFX11-WGP-NEXT: s_endpgm
790 ; GFX11-CU-LABEL: wavefront_one_as_seq_cst_fence:
791 ; GFX11-CU: ; %bb.0: ; %entry
792 ; GFX11-CU-NEXT: s_endpgm
794 fence syncscope("wavefront-one-as") seq_cst
798 define amdgpu_kernel void @workgroup_acquire_fence() {
799 ; GFX6-LABEL: workgroup_acquire_fence:
800 ; GFX6: ; %bb.0: ; %entry
801 ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
802 ; GFX6-NEXT: s_endpgm
804 ; GFX7-LABEL: workgroup_acquire_fence:
805 ; GFX7: ; %bb.0: ; %entry
806 ; GFX7-NEXT: s_waitcnt lgkmcnt(0)
807 ; GFX7-NEXT: s_endpgm
809 ; GFX10-WGP-LABEL: workgroup_acquire_fence:
810 ; GFX10-WGP: ; %bb.0: ; %entry
811 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
812 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
813 ; GFX10-WGP-NEXT: buffer_gl0_inv
814 ; GFX10-WGP-NEXT: s_endpgm
816 ; GFX10-CU-LABEL: workgroup_acquire_fence:
817 ; GFX10-CU: ; %bb.0: ; %entry
818 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
819 ; GFX10-CU-NEXT: s_endpgm
821 ; SKIP-CACHE-INV-LABEL: workgroup_acquire_fence:
822 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
823 ; SKIP-CACHE-INV-NEXT: s_waitcnt lgkmcnt(0)
824 ; SKIP-CACHE-INV-NEXT: s_endpgm
826 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_acquire_fence:
827 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
828 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
829 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
831 ; GFX90A-TGSPLIT-LABEL: workgroup_acquire_fence:
832 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
833 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
834 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
835 ; GFX90A-TGSPLIT-NEXT: s_endpgm
837 ; GFX940-NOTTGSPLIT-LABEL: workgroup_acquire_fence:
838 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
839 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
840 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
842 ; GFX940-TGSPLIT-LABEL: workgroup_acquire_fence:
843 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
844 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
845 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
846 ; GFX940-TGSPLIT-NEXT: s_endpgm
848 ; GFX11-WGP-LABEL: workgroup_acquire_fence:
849 ; GFX11-WGP: ; %bb.0: ; %entry
850 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
851 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
852 ; GFX11-WGP-NEXT: buffer_gl0_inv
853 ; GFX11-WGP-NEXT: s_endpgm
855 ; GFX11-CU-LABEL: workgroup_acquire_fence:
856 ; GFX11-CU: ; %bb.0: ; %entry
857 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
858 ; GFX11-CU-NEXT: s_endpgm
860 fence syncscope("workgroup") acquire
864 define amdgpu_kernel void @workgroup_release_fence() {
865 ; GFX6-LABEL: workgroup_release_fence:
866 ; GFX6: ; %bb.0: ; %entry
867 ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
868 ; GFX6-NEXT: s_endpgm
870 ; GFX7-LABEL: workgroup_release_fence:
871 ; GFX7: ; %bb.0: ; %entry
872 ; GFX7-NEXT: s_waitcnt lgkmcnt(0)
873 ; GFX7-NEXT: s_endpgm
875 ; GFX10-WGP-LABEL: workgroup_release_fence:
876 ; GFX10-WGP: ; %bb.0: ; %entry
877 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
878 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
879 ; GFX10-WGP-NEXT: s_endpgm
881 ; GFX10-CU-LABEL: workgroup_release_fence:
882 ; GFX10-CU: ; %bb.0: ; %entry
883 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
884 ; GFX10-CU-NEXT: s_endpgm
886 ; SKIP-CACHE-INV-LABEL: workgroup_release_fence:
887 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
888 ; SKIP-CACHE-INV-NEXT: s_waitcnt lgkmcnt(0)
889 ; SKIP-CACHE-INV-NEXT: s_endpgm
891 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_release_fence:
892 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
893 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
894 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
896 ; GFX90A-TGSPLIT-LABEL: workgroup_release_fence:
897 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
898 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
899 ; GFX90A-TGSPLIT-NEXT: s_endpgm
901 ; GFX940-NOTTGSPLIT-LABEL: workgroup_release_fence:
902 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
903 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
904 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
906 ; GFX940-TGSPLIT-LABEL: workgroup_release_fence:
907 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
908 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
909 ; GFX940-TGSPLIT-NEXT: s_endpgm
911 ; GFX11-WGP-LABEL: workgroup_release_fence:
912 ; GFX11-WGP: ; %bb.0: ; %entry
913 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
914 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
915 ; GFX11-WGP-NEXT: s_endpgm
917 ; GFX11-CU-LABEL: workgroup_release_fence:
918 ; GFX11-CU: ; %bb.0: ; %entry
919 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
920 ; GFX11-CU-NEXT: s_endpgm
922 fence syncscope("workgroup") release
926 define amdgpu_kernel void @workgroup_acq_rel_fence() {
927 ; GFX6-LABEL: workgroup_acq_rel_fence:
928 ; GFX6: ; %bb.0: ; %entry
929 ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
930 ; GFX6-NEXT: s_endpgm
932 ; GFX7-LABEL: workgroup_acq_rel_fence:
933 ; GFX7: ; %bb.0: ; %entry
934 ; GFX7-NEXT: s_waitcnt lgkmcnt(0)
935 ; GFX7-NEXT: s_endpgm
937 ; GFX10-WGP-LABEL: workgroup_acq_rel_fence:
938 ; GFX10-WGP: ; %bb.0: ; %entry
939 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
940 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
941 ; GFX10-WGP-NEXT: buffer_gl0_inv
942 ; GFX10-WGP-NEXT: s_endpgm
944 ; GFX10-CU-LABEL: workgroup_acq_rel_fence:
945 ; GFX10-CU: ; %bb.0: ; %entry
946 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
947 ; GFX10-CU-NEXT: s_endpgm
949 ; SKIP-CACHE-INV-LABEL: workgroup_acq_rel_fence:
950 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
951 ; SKIP-CACHE-INV-NEXT: s_waitcnt lgkmcnt(0)
952 ; SKIP-CACHE-INV-NEXT: s_endpgm
954 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:
955 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
956 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
957 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
959 ; GFX90A-TGSPLIT-LABEL: workgroup_acq_rel_fence:
960 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
961 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
962 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
963 ; GFX90A-TGSPLIT-NEXT: s_endpgm
965 ; GFX940-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:
966 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
967 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
968 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
970 ; GFX940-TGSPLIT-LABEL: workgroup_acq_rel_fence:
971 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
972 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
973 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
974 ; GFX940-TGSPLIT-NEXT: s_endpgm
976 ; GFX11-WGP-LABEL: workgroup_acq_rel_fence:
977 ; GFX11-WGP: ; %bb.0: ; %entry
978 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
979 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
980 ; GFX11-WGP-NEXT: buffer_gl0_inv
981 ; GFX11-WGP-NEXT: s_endpgm
983 ; GFX11-CU-LABEL: workgroup_acq_rel_fence:
984 ; GFX11-CU: ; %bb.0: ; %entry
985 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
986 ; GFX11-CU-NEXT: s_endpgm
988 fence syncscope("workgroup") acq_rel
992 define amdgpu_kernel void @workgroup_seq_cst_fence() {
993 ; GFX6-LABEL: workgroup_seq_cst_fence:
994 ; GFX6: ; %bb.0: ; %entry
995 ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
996 ; GFX6-NEXT: s_endpgm
998 ; GFX7-LABEL: workgroup_seq_cst_fence:
999 ; GFX7: ; %bb.0: ; %entry
1000 ; GFX7-NEXT: s_waitcnt lgkmcnt(0)
1001 ; GFX7-NEXT: s_endpgm
1003 ; GFX10-WGP-LABEL: workgroup_seq_cst_fence:
1004 ; GFX10-WGP: ; %bb.0: ; %entry
1005 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1006 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1007 ; GFX10-WGP-NEXT: buffer_gl0_inv
1008 ; GFX10-WGP-NEXT: s_endpgm
1010 ; GFX10-CU-LABEL: workgroup_seq_cst_fence:
1011 ; GFX10-CU: ; %bb.0: ; %entry
1012 ; GFX10-CU-NEXT: s_waitcnt lgkmcnt(0)
1013 ; GFX10-CU-NEXT: s_endpgm
1015 ; SKIP-CACHE-INV-LABEL: workgroup_seq_cst_fence:
1016 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1017 ; SKIP-CACHE-INV-NEXT: s_waitcnt lgkmcnt(0)
1018 ; SKIP-CACHE-INV-NEXT: s_endpgm
1020 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:
1021 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1022 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
1023 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1025 ; GFX90A-TGSPLIT-LABEL: workgroup_seq_cst_fence:
1026 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1027 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1028 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1029 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1031 ; GFX940-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:
1032 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1033 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt lgkmcnt(0)
1034 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1036 ; GFX940-TGSPLIT-LABEL: workgroup_seq_cst_fence:
1037 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1038 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1039 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
1040 ; GFX940-TGSPLIT-NEXT: s_endpgm
1042 ; GFX11-WGP-LABEL: workgroup_seq_cst_fence:
1043 ; GFX11-WGP: ; %bb.0: ; %entry
1044 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1045 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1046 ; GFX11-WGP-NEXT: buffer_gl0_inv
1047 ; GFX11-WGP-NEXT: s_endpgm
1049 ; GFX11-CU-LABEL: workgroup_seq_cst_fence:
1050 ; GFX11-CU: ; %bb.0: ; %entry
1051 ; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
1052 ; GFX11-CU-NEXT: s_endpgm
1054 fence syncscope("workgroup") seq_cst
1058 define amdgpu_kernel void @workgroup_one_as_acquire_fence() {
1059 ; GFX6-LABEL: workgroup_one_as_acquire_fence:
1060 ; GFX6: ; %bb.0: ; %entry
1061 ; GFX6-NEXT: s_endpgm
1063 ; GFX7-LABEL: workgroup_one_as_acquire_fence:
1064 ; GFX7: ; %bb.0: ; %entry
1065 ; GFX7-NEXT: s_endpgm
1067 ; GFX10-WGP-LABEL: workgroup_one_as_acquire_fence:
1068 ; GFX10-WGP: ; %bb.0: ; %entry
1069 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1070 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1071 ; GFX10-WGP-NEXT: buffer_gl0_inv
1072 ; GFX10-WGP-NEXT: s_endpgm
1074 ; GFX10-CU-LABEL: workgroup_one_as_acquire_fence:
1075 ; GFX10-CU: ; %bb.0: ; %entry
1076 ; GFX10-CU-NEXT: s_endpgm
1078 ; SKIP-CACHE-INV-LABEL: workgroup_one_as_acquire_fence:
1079 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1080 ; SKIP-CACHE-INV-NEXT: s_endpgm
1082 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:
1083 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1084 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1086 ; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:
1087 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1088 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1089 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1090 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1092 ; GFX940-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:
1093 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1094 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1096 ; GFX940-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:
1097 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1098 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1099 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
1100 ; GFX940-TGSPLIT-NEXT: s_endpgm
1102 ; GFX11-WGP-LABEL: workgroup_one_as_acquire_fence:
1103 ; GFX11-WGP: ; %bb.0: ; %entry
1104 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1105 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1106 ; GFX11-WGP-NEXT: buffer_gl0_inv
1107 ; GFX11-WGP-NEXT: s_endpgm
1109 ; GFX11-CU-LABEL: workgroup_one_as_acquire_fence:
1110 ; GFX11-CU: ; %bb.0: ; %entry
1111 ; GFX11-CU-NEXT: s_endpgm
1113 fence syncscope("workgroup-one-as") acquire
1117 define amdgpu_kernel void @workgroup_one_as_release_fence() {
1118 ; GFX6-LABEL: workgroup_one_as_release_fence:
1119 ; GFX6: ; %bb.0: ; %entry
1120 ; GFX6-NEXT: s_endpgm
1122 ; GFX7-LABEL: workgroup_one_as_release_fence:
1123 ; GFX7: ; %bb.0: ; %entry
1124 ; GFX7-NEXT: s_endpgm
1126 ; GFX10-WGP-LABEL: workgroup_one_as_release_fence:
1127 ; GFX10-WGP: ; %bb.0: ; %entry
1128 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1129 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1130 ; GFX10-WGP-NEXT: s_endpgm
1132 ; GFX10-CU-LABEL: workgroup_one_as_release_fence:
1133 ; GFX10-CU: ; %bb.0: ; %entry
1134 ; GFX10-CU-NEXT: s_endpgm
1136 ; SKIP-CACHE-INV-LABEL: workgroup_one_as_release_fence:
1137 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1138 ; SKIP-CACHE-INV-NEXT: s_endpgm
1140 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:
1141 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1142 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1144 ; GFX90A-TGSPLIT-LABEL: workgroup_one_as_release_fence:
1145 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1146 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1147 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1149 ; GFX940-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:
1150 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1151 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1153 ; GFX940-TGSPLIT-LABEL: workgroup_one_as_release_fence:
1154 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1155 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1156 ; GFX940-TGSPLIT-NEXT: s_endpgm
1158 ; GFX11-WGP-LABEL: workgroup_one_as_release_fence:
1159 ; GFX11-WGP: ; %bb.0: ; %entry
1160 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1161 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1162 ; GFX11-WGP-NEXT: s_endpgm
1164 ; GFX11-CU-LABEL: workgroup_one_as_release_fence:
1165 ; GFX11-CU: ; %bb.0: ; %entry
1166 ; GFX11-CU-NEXT: s_endpgm
1168 fence syncscope("workgroup-one-as") release
1172 define amdgpu_kernel void @workgroup_one_as_acq_rel_fence() {
1173 ; GFX6-LABEL: workgroup_one_as_acq_rel_fence:
1174 ; GFX6: ; %bb.0: ; %entry
1175 ; GFX6-NEXT: s_endpgm
1177 ; GFX7-LABEL: workgroup_one_as_acq_rel_fence:
1178 ; GFX7: ; %bb.0: ; %entry
1179 ; GFX7-NEXT: s_endpgm
1181 ; GFX10-WGP-LABEL: workgroup_one_as_acq_rel_fence:
1182 ; GFX10-WGP: ; %bb.0: ; %entry
1183 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1184 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1185 ; GFX10-WGP-NEXT: buffer_gl0_inv
1186 ; GFX10-WGP-NEXT: s_endpgm
1188 ; GFX10-CU-LABEL: workgroup_one_as_acq_rel_fence:
1189 ; GFX10-CU: ; %bb.0: ; %entry
1190 ; GFX10-CU-NEXT: s_endpgm
1192 ; SKIP-CACHE-INV-LABEL: workgroup_one_as_acq_rel_fence:
1193 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1194 ; SKIP-CACHE-INV-NEXT: s_endpgm
1196 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:
1197 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1198 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1200 ; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:
1201 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1202 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1203 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1204 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1206 ; GFX940-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:
1207 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1208 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1210 ; GFX940-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:
1211 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1212 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1213 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
1214 ; GFX940-TGSPLIT-NEXT: s_endpgm
1216 ; GFX11-WGP-LABEL: workgroup_one_as_acq_rel_fence:
1217 ; GFX11-WGP: ; %bb.0: ; %entry
1218 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1219 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1220 ; GFX11-WGP-NEXT: buffer_gl0_inv
1221 ; GFX11-WGP-NEXT: s_endpgm
1223 ; GFX11-CU-LABEL: workgroup_one_as_acq_rel_fence:
1224 ; GFX11-CU: ; %bb.0: ; %entry
1225 ; GFX11-CU-NEXT: s_endpgm
1227 fence syncscope("workgroup-one-as") acq_rel
1231 define amdgpu_kernel void @workgroup_one_as_seq_cst_fence() {
1232 ; GFX6-LABEL: workgroup_one_as_seq_cst_fence:
1233 ; GFX6: ; %bb.0: ; %entry
1234 ; GFX6-NEXT: s_endpgm
1236 ; GFX7-LABEL: workgroup_one_as_seq_cst_fence:
1237 ; GFX7: ; %bb.0: ; %entry
1238 ; GFX7-NEXT: s_endpgm
1240 ; GFX10-WGP-LABEL: workgroup_one_as_seq_cst_fence:
1241 ; GFX10-WGP: ; %bb.0: ; %entry
1242 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1243 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1244 ; GFX10-WGP-NEXT: buffer_gl0_inv
1245 ; GFX10-WGP-NEXT: s_endpgm
1247 ; GFX10-CU-LABEL: workgroup_one_as_seq_cst_fence:
1248 ; GFX10-CU: ; %bb.0: ; %entry
1249 ; GFX10-CU-NEXT: s_endpgm
1251 ; SKIP-CACHE-INV-LABEL: workgroup_one_as_seq_cst_fence:
1252 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1253 ; SKIP-CACHE-INV-NEXT: s_endpgm
1255 ; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:
1256 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1257 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1259 ; GFX90A-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:
1260 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1261 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1262 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1263 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1265 ; GFX940-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:
1266 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1267 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1269 ; GFX940-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:
1270 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1271 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1272 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0
1273 ; GFX940-TGSPLIT-NEXT: s_endpgm
1275 ; GFX11-WGP-LABEL: workgroup_one_as_seq_cst_fence:
1276 ; GFX11-WGP: ; %bb.0: ; %entry
1277 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1278 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1279 ; GFX11-WGP-NEXT: buffer_gl0_inv
1280 ; GFX11-WGP-NEXT: s_endpgm
1282 ; GFX11-CU-LABEL: workgroup_one_as_seq_cst_fence:
1283 ; GFX11-CU: ; %bb.0: ; %entry
1284 ; GFX11-CU-NEXT: s_endpgm
1286 fence syncscope("workgroup-one-as") seq_cst
1290 define amdgpu_kernel void @agent_acquire_fence() {
1291 ; GFX6-LABEL: agent_acquire_fence:
1292 ; GFX6: ; %bb.0: ; %entry
1293 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1294 ; GFX6-NEXT: buffer_wbinvl1
1295 ; GFX6-NEXT: s_endpgm
1297 ; GFX7-LABEL: agent_acquire_fence:
1298 ; GFX7: ; %bb.0: ; %entry
1299 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1300 ; GFX7-NEXT: buffer_wbinvl1_vol
1301 ; GFX7-NEXT: s_endpgm
1303 ; GFX10-WGP-LABEL: agent_acquire_fence:
1304 ; GFX10-WGP: ; %bb.0: ; %entry
1305 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1306 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1307 ; GFX10-WGP-NEXT: buffer_gl0_inv
1308 ; GFX10-WGP-NEXT: buffer_gl1_inv
1309 ; GFX10-WGP-NEXT: s_endpgm
1311 ; GFX10-CU-LABEL: agent_acquire_fence:
1312 ; GFX10-CU: ; %bb.0: ; %entry
1313 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1314 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1315 ; GFX10-CU-NEXT: buffer_gl0_inv
1316 ; GFX10-CU-NEXT: buffer_gl1_inv
1317 ; GFX10-CU-NEXT: s_endpgm
1319 ; SKIP-CACHE-INV-LABEL: agent_acquire_fence:
1320 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1321 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1322 ; SKIP-CACHE-INV-NEXT: s_endpgm
1324 ; GFX90A-NOTTGSPLIT-LABEL: agent_acquire_fence:
1325 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1326 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1327 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1328 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1330 ; GFX90A-TGSPLIT-LABEL: agent_acquire_fence:
1331 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1332 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1333 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1334 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1336 ; GFX940-NOTTGSPLIT-LABEL: agent_acquire_fence:
1337 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1338 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1339 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1340 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1342 ; GFX940-TGSPLIT-LABEL: agent_acquire_fence:
1343 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1344 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1345 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1346 ; GFX940-TGSPLIT-NEXT: s_endpgm
1348 ; GFX11-WGP-LABEL: agent_acquire_fence:
1349 ; GFX11-WGP: ; %bb.0: ; %entry
1350 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1351 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1352 ; GFX11-WGP-NEXT: buffer_gl0_inv
1353 ; GFX11-WGP-NEXT: buffer_gl1_inv
1354 ; GFX11-WGP-NEXT: s_endpgm
1356 ; GFX11-CU-LABEL: agent_acquire_fence:
1357 ; GFX11-CU: ; %bb.0: ; %entry
1358 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1359 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1360 ; GFX11-CU-NEXT: buffer_gl0_inv
1361 ; GFX11-CU-NEXT: buffer_gl1_inv
1362 ; GFX11-CU-NEXT: s_endpgm
1364 fence syncscope("agent") acquire
1368 define amdgpu_kernel void @agent_release_fence() {
1369 ; GFX6-LABEL: agent_release_fence:
1370 ; GFX6: ; %bb.0: ; %entry
1371 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1372 ; GFX6-NEXT: s_endpgm
1374 ; GFX7-LABEL: agent_release_fence:
1375 ; GFX7: ; %bb.0: ; %entry
1376 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1377 ; GFX7-NEXT: s_endpgm
1379 ; GFX10-WGP-LABEL: agent_release_fence:
1380 ; GFX10-WGP: ; %bb.0: ; %entry
1381 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1382 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1383 ; GFX10-WGP-NEXT: s_endpgm
1385 ; GFX10-CU-LABEL: agent_release_fence:
1386 ; GFX10-CU: ; %bb.0: ; %entry
1387 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1388 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1389 ; GFX10-CU-NEXT: s_endpgm
1391 ; SKIP-CACHE-INV-LABEL: agent_release_fence:
1392 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1393 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1394 ; SKIP-CACHE-INV-NEXT: s_endpgm
1396 ; GFX90A-NOTTGSPLIT-LABEL: agent_release_fence:
1397 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1398 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1399 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1401 ; GFX90A-TGSPLIT-LABEL: agent_release_fence:
1402 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1403 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1404 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1406 ; GFX940-NOTTGSPLIT-LABEL: agent_release_fence:
1407 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1408 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1409 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1410 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1412 ; GFX940-TGSPLIT-LABEL: agent_release_fence:
1413 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1414 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1415 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1416 ; GFX940-TGSPLIT-NEXT: s_endpgm
1418 ; GFX11-WGP-LABEL: agent_release_fence:
1419 ; GFX11-WGP: ; %bb.0: ; %entry
1420 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1421 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1422 ; GFX11-WGP-NEXT: s_endpgm
1424 ; GFX11-CU-LABEL: agent_release_fence:
1425 ; GFX11-CU: ; %bb.0: ; %entry
1426 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1427 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1428 ; GFX11-CU-NEXT: s_endpgm
1430 fence syncscope("agent") release
1434 define amdgpu_kernel void @agent_acq_rel_fence() {
1435 ; GFX6-LABEL: agent_acq_rel_fence:
1436 ; GFX6: ; %bb.0: ; %entry
1437 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1438 ; GFX6-NEXT: buffer_wbinvl1
1439 ; GFX6-NEXT: s_endpgm
1441 ; GFX7-LABEL: agent_acq_rel_fence:
1442 ; GFX7: ; %bb.0: ; %entry
1443 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1444 ; GFX7-NEXT: buffer_wbinvl1_vol
1445 ; GFX7-NEXT: s_endpgm
1447 ; GFX10-WGP-LABEL: agent_acq_rel_fence:
1448 ; GFX10-WGP: ; %bb.0: ; %entry
1449 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1450 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1451 ; GFX10-WGP-NEXT: buffer_gl0_inv
1452 ; GFX10-WGP-NEXT: buffer_gl1_inv
1453 ; GFX10-WGP-NEXT: s_endpgm
1455 ; GFX10-CU-LABEL: agent_acq_rel_fence:
1456 ; GFX10-CU: ; %bb.0: ; %entry
1457 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1458 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1459 ; GFX10-CU-NEXT: buffer_gl0_inv
1460 ; GFX10-CU-NEXT: buffer_gl1_inv
1461 ; GFX10-CU-NEXT: s_endpgm
1463 ; SKIP-CACHE-INV-LABEL: agent_acq_rel_fence:
1464 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1465 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1466 ; SKIP-CACHE-INV-NEXT: s_endpgm
1468 ; GFX90A-NOTTGSPLIT-LABEL: agent_acq_rel_fence:
1469 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1470 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1471 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1472 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1474 ; GFX90A-TGSPLIT-LABEL: agent_acq_rel_fence:
1475 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1476 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1477 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1478 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1480 ; GFX940-NOTTGSPLIT-LABEL: agent_acq_rel_fence:
1481 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1482 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1483 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1484 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1485 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1487 ; GFX940-TGSPLIT-LABEL: agent_acq_rel_fence:
1488 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1489 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1490 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1491 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1492 ; GFX940-TGSPLIT-NEXT: s_endpgm
1494 ; GFX11-WGP-LABEL: agent_acq_rel_fence:
1495 ; GFX11-WGP: ; %bb.0: ; %entry
1496 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1497 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1498 ; GFX11-WGP-NEXT: buffer_gl0_inv
1499 ; GFX11-WGP-NEXT: buffer_gl1_inv
1500 ; GFX11-WGP-NEXT: s_endpgm
1502 ; GFX11-CU-LABEL: agent_acq_rel_fence:
1503 ; GFX11-CU: ; %bb.0: ; %entry
1504 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1505 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1506 ; GFX11-CU-NEXT: buffer_gl0_inv
1507 ; GFX11-CU-NEXT: buffer_gl1_inv
1508 ; GFX11-CU-NEXT: s_endpgm
1510 fence syncscope("agent") acq_rel
1514 define amdgpu_kernel void @agent_seq_cst_fence() {
1515 ; GFX6-LABEL: agent_seq_cst_fence:
1516 ; GFX6: ; %bb.0: ; %entry
1517 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1518 ; GFX6-NEXT: buffer_wbinvl1
1519 ; GFX6-NEXT: s_endpgm
1521 ; GFX7-LABEL: agent_seq_cst_fence:
1522 ; GFX7: ; %bb.0: ; %entry
1523 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1524 ; GFX7-NEXT: buffer_wbinvl1_vol
1525 ; GFX7-NEXT: s_endpgm
1527 ; GFX10-WGP-LABEL: agent_seq_cst_fence:
1528 ; GFX10-WGP: ; %bb.0: ; %entry
1529 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1530 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1531 ; GFX10-WGP-NEXT: buffer_gl0_inv
1532 ; GFX10-WGP-NEXT: buffer_gl1_inv
1533 ; GFX10-WGP-NEXT: s_endpgm
1535 ; GFX10-CU-LABEL: agent_seq_cst_fence:
1536 ; GFX10-CU: ; %bb.0: ; %entry
1537 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1538 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1539 ; GFX10-CU-NEXT: buffer_gl0_inv
1540 ; GFX10-CU-NEXT: buffer_gl1_inv
1541 ; GFX10-CU-NEXT: s_endpgm
1543 ; SKIP-CACHE-INV-LABEL: agent_seq_cst_fence:
1544 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1545 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1546 ; SKIP-CACHE-INV-NEXT: s_endpgm
1548 ; GFX90A-NOTTGSPLIT-LABEL: agent_seq_cst_fence:
1549 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1550 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1551 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1552 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1554 ; GFX90A-TGSPLIT-LABEL: agent_seq_cst_fence:
1555 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1556 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1557 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1558 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1560 ; GFX940-NOTTGSPLIT-LABEL: agent_seq_cst_fence:
1561 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1562 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1563 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1564 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1565 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1567 ; GFX940-TGSPLIT-LABEL: agent_seq_cst_fence:
1568 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1569 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1570 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1571 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1572 ; GFX940-TGSPLIT-NEXT: s_endpgm
1574 ; GFX11-WGP-LABEL: agent_seq_cst_fence:
1575 ; GFX11-WGP: ; %bb.0: ; %entry
1576 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1577 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1578 ; GFX11-WGP-NEXT: buffer_gl0_inv
1579 ; GFX11-WGP-NEXT: buffer_gl1_inv
1580 ; GFX11-WGP-NEXT: s_endpgm
1582 ; GFX11-CU-LABEL: agent_seq_cst_fence:
1583 ; GFX11-CU: ; %bb.0: ; %entry
1584 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1585 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1586 ; GFX11-CU-NEXT: buffer_gl0_inv
1587 ; GFX11-CU-NEXT: buffer_gl1_inv
1588 ; GFX11-CU-NEXT: s_endpgm
1590 fence syncscope("agent") seq_cst
1594 define amdgpu_kernel void @agent_one_as_acquire_fence() {
1595 ; GFX6-LABEL: agent_one_as_acquire_fence:
1596 ; GFX6: ; %bb.0: ; %entry
1597 ; GFX6-NEXT: s_waitcnt vmcnt(0)
1598 ; GFX6-NEXT: buffer_wbinvl1
1599 ; GFX6-NEXT: s_endpgm
1601 ; GFX7-LABEL: agent_one_as_acquire_fence:
1602 ; GFX7: ; %bb.0: ; %entry
1603 ; GFX7-NEXT: s_waitcnt vmcnt(0)
1604 ; GFX7-NEXT: buffer_wbinvl1_vol
1605 ; GFX7-NEXT: s_endpgm
1607 ; GFX10-WGP-LABEL: agent_one_as_acquire_fence:
1608 ; GFX10-WGP: ; %bb.0: ; %entry
1609 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1610 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1611 ; GFX10-WGP-NEXT: buffer_gl0_inv
1612 ; GFX10-WGP-NEXT: buffer_gl1_inv
1613 ; GFX10-WGP-NEXT: s_endpgm
1615 ; GFX10-CU-LABEL: agent_one_as_acquire_fence:
1616 ; GFX10-CU: ; %bb.0: ; %entry
1617 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1618 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1619 ; GFX10-CU-NEXT: buffer_gl0_inv
1620 ; GFX10-CU-NEXT: buffer_gl1_inv
1621 ; GFX10-CU-NEXT: s_endpgm
1623 ; SKIP-CACHE-INV-LABEL: agent_one_as_acquire_fence:
1624 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1625 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
1626 ; SKIP-CACHE-INV-NEXT: s_endpgm
1628 ; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:
1629 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1630 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1631 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1632 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1634 ; GFX90A-TGSPLIT-LABEL: agent_one_as_acquire_fence:
1635 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1636 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1637 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1638 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1640 ; GFX940-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:
1641 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1642 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1643 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1644 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1646 ; GFX940-TGSPLIT-LABEL: agent_one_as_acquire_fence:
1647 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1648 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1649 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1650 ; GFX940-TGSPLIT-NEXT: s_endpgm
1652 ; GFX11-WGP-LABEL: agent_one_as_acquire_fence:
1653 ; GFX11-WGP: ; %bb.0: ; %entry
1654 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1655 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1656 ; GFX11-WGP-NEXT: buffer_gl0_inv
1657 ; GFX11-WGP-NEXT: buffer_gl1_inv
1658 ; GFX11-WGP-NEXT: s_endpgm
1660 ; GFX11-CU-LABEL: agent_one_as_acquire_fence:
1661 ; GFX11-CU: ; %bb.0: ; %entry
1662 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1663 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1664 ; GFX11-CU-NEXT: buffer_gl0_inv
1665 ; GFX11-CU-NEXT: buffer_gl1_inv
1666 ; GFX11-CU-NEXT: s_endpgm
1668 fence syncscope("agent-one-as") acquire
1672 define amdgpu_kernel void @agent_one_as_release_fence() {
1673 ; GFX6-LABEL: agent_one_as_release_fence:
1674 ; GFX6: ; %bb.0: ; %entry
1675 ; GFX6-NEXT: s_waitcnt vmcnt(0)
1676 ; GFX6-NEXT: s_endpgm
1678 ; GFX7-LABEL: agent_one_as_release_fence:
1679 ; GFX7: ; %bb.0: ; %entry
1680 ; GFX7-NEXT: s_waitcnt vmcnt(0)
1681 ; GFX7-NEXT: s_endpgm
1683 ; GFX10-WGP-LABEL: agent_one_as_release_fence:
1684 ; GFX10-WGP: ; %bb.0: ; %entry
1685 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1686 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1687 ; GFX10-WGP-NEXT: s_endpgm
1689 ; GFX10-CU-LABEL: agent_one_as_release_fence:
1690 ; GFX10-CU: ; %bb.0: ; %entry
1691 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1692 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1693 ; GFX10-CU-NEXT: s_endpgm
1695 ; SKIP-CACHE-INV-LABEL: agent_one_as_release_fence:
1696 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1697 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
1698 ; SKIP-CACHE-INV-NEXT: s_endpgm
1700 ; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_release_fence:
1701 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1702 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1703 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1705 ; GFX90A-TGSPLIT-LABEL: agent_one_as_release_fence:
1706 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1707 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1708 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1710 ; GFX940-NOTTGSPLIT-LABEL: agent_one_as_release_fence:
1711 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1712 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1713 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1714 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1716 ; GFX940-TGSPLIT-LABEL: agent_one_as_release_fence:
1717 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1718 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1719 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1720 ; GFX940-TGSPLIT-NEXT: s_endpgm
1722 ; GFX11-WGP-LABEL: agent_one_as_release_fence:
1723 ; GFX11-WGP: ; %bb.0: ; %entry
1724 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1725 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1726 ; GFX11-WGP-NEXT: s_endpgm
1728 ; GFX11-CU-LABEL: agent_one_as_release_fence:
1729 ; GFX11-CU: ; %bb.0: ; %entry
1730 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1731 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1732 ; GFX11-CU-NEXT: s_endpgm
1734 fence syncscope("agent-one-as") release
1738 define amdgpu_kernel void @agent_one_as_acq_rel_fence() {
1739 ; GFX6-LABEL: agent_one_as_acq_rel_fence:
1740 ; GFX6: ; %bb.0: ; %entry
1741 ; GFX6-NEXT: s_waitcnt vmcnt(0)
1742 ; GFX6-NEXT: buffer_wbinvl1
1743 ; GFX6-NEXT: s_endpgm
1745 ; GFX7-LABEL: agent_one_as_acq_rel_fence:
1746 ; GFX7: ; %bb.0: ; %entry
1747 ; GFX7-NEXT: s_waitcnt vmcnt(0)
1748 ; GFX7-NEXT: buffer_wbinvl1_vol
1749 ; GFX7-NEXT: s_endpgm
1751 ; GFX10-WGP-LABEL: agent_one_as_acq_rel_fence:
1752 ; GFX10-WGP: ; %bb.0: ; %entry
1753 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1754 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1755 ; GFX10-WGP-NEXT: buffer_gl0_inv
1756 ; GFX10-WGP-NEXT: buffer_gl1_inv
1757 ; GFX10-WGP-NEXT: s_endpgm
1759 ; GFX10-CU-LABEL: agent_one_as_acq_rel_fence:
1760 ; GFX10-CU: ; %bb.0: ; %entry
1761 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1762 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1763 ; GFX10-CU-NEXT: buffer_gl0_inv
1764 ; GFX10-CU-NEXT: buffer_gl1_inv
1765 ; GFX10-CU-NEXT: s_endpgm
1767 ; SKIP-CACHE-INV-LABEL: agent_one_as_acq_rel_fence:
1768 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1769 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
1770 ; SKIP-CACHE-INV-NEXT: s_endpgm
1772 ; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:
1773 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1774 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1775 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1776 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1778 ; GFX90A-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:
1779 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1780 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1781 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1782 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1784 ; GFX940-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:
1785 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1786 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1787 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1788 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1789 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1791 ; GFX940-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:
1792 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1793 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1794 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1795 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1796 ; GFX940-TGSPLIT-NEXT: s_endpgm
1798 ; GFX11-WGP-LABEL: agent_one_as_acq_rel_fence:
1799 ; GFX11-WGP: ; %bb.0: ; %entry
1800 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1801 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1802 ; GFX11-WGP-NEXT: buffer_gl0_inv
1803 ; GFX11-WGP-NEXT: buffer_gl1_inv
1804 ; GFX11-WGP-NEXT: s_endpgm
1806 ; GFX11-CU-LABEL: agent_one_as_acq_rel_fence:
1807 ; GFX11-CU: ; %bb.0: ; %entry
1808 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1809 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1810 ; GFX11-CU-NEXT: buffer_gl0_inv
1811 ; GFX11-CU-NEXT: buffer_gl1_inv
1812 ; GFX11-CU-NEXT: s_endpgm
1814 fence syncscope("agent-one-as") acq_rel
1818 define amdgpu_kernel void @agent_one_as_seq_cst_fence() {
1819 ; GFX6-LABEL: agent_one_as_seq_cst_fence:
1820 ; GFX6: ; %bb.0: ; %entry
1821 ; GFX6-NEXT: s_waitcnt vmcnt(0)
1822 ; GFX6-NEXT: buffer_wbinvl1
1823 ; GFX6-NEXT: s_endpgm
1825 ; GFX7-LABEL: agent_one_as_seq_cst_fence:
1826 ; GFX7: ; %bb.0: ; %entry
1827 ; GFX7-NEXT: s_waitcnt vmcnt(0)
1828 ; GFX7-NEXT: buffer_wbinvl1_vol
1829 ; GFX7-NEXT: s_endpgm
1831 ; GFX10-WGP-LABEL: agent_one_as_seq_cst_fence:
1832 ; GFX10-WGP: ; %bb.0: ; %entry
1833 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
1834 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1835 ; GFX10-WGP-NEXT: buffer_gl0_inv
1836 ; GFX10-WGP-NEXT: buffer_gl1_inv
1837 ; GFX10-WGP-NEXT: s_endpgm
1839 ; GFX10-CU-LABEL: agent_one_as_seq_cst_fence:
1840 ; GFX10-CU: ; %bb.0: ; %entry
1841 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
1842 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1843 ; GFX10-CU-NEXT: buffer_gl0_inv
1844 ; GFX10-CU-NEXT: buffer_gl1_inv
1845 ; GFX10-CU-NEXT: s_endpgm
1847 ; SKIP-CACHE-INV-LABEL: agent_one_as_seq_cst_fence:
1848 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1849 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
1850 ; SKIP-CACHE-INV-NEXT: s_endpgm
1852 ; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:
1853 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1854 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1855 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1856 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1858 ; GFX90A-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:
1859 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1860 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1861 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1862 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1864 ; GFX940-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:
1865 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1866 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc1
1867 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
1868 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc1
1869 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1871 ; GFX940-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:
1872 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1873 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc1
1874 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
1875 ; GFX940-TGSPLIT-NEXT: buffer_inv sc1
1876 ; GFX940-TGSPLIT-NEXT: s_endpgm
1878 ; GFX11-WGP-LABEL: agent_one_as_seq_cst_fence:
1879 ; GFX11-WGP: ; %bb.0: ; %entry
1880 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
1881 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1882 ; GFX11-WGP-NEXT: buffer_gl0_inv
1883 ; GFX11-WGP-NEXT: buffer_gl1_inv
1884 ; GFX11-WGP-NEXT: s_endpgm
1886 ; GFX11-CU-LABEL: agent_one_as_seq_cst_fence:
1887 ; GFX11-CU: ; %bb.0: ; %entry
1888 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
1889 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1890 ; GFX11-CU-NEXT: buffer_gl0_inv
1891 ; GFX11-CU-NEXT: buffer_gl1_inv
1892 ; GFX11-CU-NEXT: s_endpgm
1894 fence syncscope("agent-one-as") seq_cst
1898 define amdgpu_kernel void @system_acquire_fence() {
1899 ; GFX6-LABEL: system_acquire_fence:
1900 ; GFX6: ; %bb.0: ; %entry
1901 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1902 ; GFX6-NEXT: buffer_wbinvl1
1903 ; GFX6-NEXT: s_endpgm
1905 ; GFX7-LABEL: system_acquire_fence:
1906 ; GFX7: ; %bb.0: ; %entry
1907 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1908 ; GFX7-NEXT: buffer_wbinvl1_vol
1909 ; GFX7-NEXT: s_endpgm
1911 ; GFX10-WGP-LABEL: system_acquire_fence:
1912 ; GFX10-WGP: ; %bb.0: ; %entry
1913 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1914 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1915 ; GFX10-WGP-NEXT: buffer_gl0_inv
1916 ; GFX10-WGP-NEXT: buffer_gl1_inv
1917 ; GFX10-WGP-NEXT: s_endpgm
1919 ; GFX10-CU-LABEL: system_acquire_fence:
1920 ; GFX10-CU: ; %bb.0: ; %entry
1921 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1922 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1923 ; GFX10-CU-NEXT: buffer_gl0_inv
1924 ; GFX10-CU-NEXT: buffer_gl1_inv
1925 ; GFX10-CU-NEXT: s_endpgm
1927 ; SKIP-CACHE-INV-LABEL: system_acquire_fence:
1928 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
1929 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1930 ; SKIP-CACHE-INV-NEXT: s_endpgm
1932 ; GFX90A-NOTTGSPLIT-LABEL: system_acquire_fence:
1933 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
1934 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1935 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
1936 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
1937 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
1939 ; GFX90A-TGSPLIT-LABEL: system_acquire_fence:
1940 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
1941 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1942 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
1943 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
1944 ; GFX90A-TGSPLIT-NEXT: s_endpgm
1946 ; GFX940-NOTTGSPLIT-LABEL: system_acquire_fence:
1947 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
1948 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1949 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
1950 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
1952 ; GFX940-TGSPLIT-LABEL: system_acquire_fence:
1953 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
1954 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1955 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
1956 ; GFX940-TGSPLIT-NEXT: s_endpgm
1958 ; GFX11-WGP-LABEL: system_acquire_fence:
1959 ; GFX11-WGP: ; %bb.0: ; %entry
1960 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1961 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1962 ; GFX11-WGP-NEXT: buffer_gl0_inv
1963 ; GFX11-WGP-NEXT: buffer_gl1_inv
1964 ; GFX11-WGP-NEXT: s_endpgm
1966 ; GFX11-CU-LABEL: system_acquire_fence:
1967 ; GFX11-CU: ; %bb.0: ; %entry
1968 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1969 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
1970 ; GFX11-CU-NEXT: buffer_gl0_inv
1971 ; GFX11-CU-NEXT: buffer_gl1_inv
1972 ; GFX11-CU-NEXT: s_endpgm
1978 define amdgpu_kernel void @system_release_fence() {
1979 ; GFX6-LABEL: system_release_fence:
1980 ; GFX6: ; %bb.0: ; %entry
1981 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1982 ; GFX6-NEXT: s_endpgm
1984 ; GFX7-LABEL: system_release_fence:
1985 ; GFX7: ; %bb.0: ; %entry
1986 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1987 ; GFX7-NEXT: s_endpgm
1989 ; GFX10-WGP-LABEL: system_release_fence:
1990 ; GFX10-WGP: ; %bb.0: ; %entry
1991 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1992 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
1993 ; GFX10-WGP-NEXT: s_endpgm
1995 ; GFX10-CU-LABEL: system_release_fence:
1996 ; GFX10-CU: ; %bb.0: ; %entry
1997 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
1998 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
1999 ; GFX10-CU-NEXT: s_endpgm
2001 ; SKIP-CACHE-INV-LABEL: system_release_fence:
2002 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2003 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2004 ; SKIP-CACHE-INV-NEXT: s_endpgm
2006 ; GFX90A-NOTTGSPLIT-LABEL: system_release_fence:
2007 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2008 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2009 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2010 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2012 ; GFX90A-TGSPLIT-LABEL: system_release_fence:
2013 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2014 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2015 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2016 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2018 ; GFX940-NOTTGSPLIT-LABEL: system_release_fence:
2019 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2020 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2021 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2022 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2024 ; GFX940-TGSPLIT-LABEL: system_release_fence:
2025 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2026 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2027 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2028 ; GFX940-TGSPLIT-NEXT: s_endpgm
2030 ; GFX11-WGP-LABEL: system_release_fence:
2031 ; GFX11-WGP: ; %bb.0: ; %entry
2032 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2033 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2034 ; GFX11-WGP-NEXT: s_endpgm
2036 ; GFX11-CU-LABEL: system_release_fence:
2037 ; GFX11-CU: ; %bb.0: ; %entry
2038 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2039 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2040 ; GFX11-CU-NEXT: s_endpgm
2046 define amdgpu_kernel void @system_acq_rel_fence() {
2047 ; GFX6-LABEL: system_acq_rel_fence:
2048 ; GFX6: ; %bb.0: ; %entry
2049 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2050 ; GFX6-NEXT: buffer_wbinvl1
2051 ; GFX6-NEXT: s_endpgm
2053 ; GFX7-LABEL: system_acq_rel_fence:
2054 ; GFX7: ; %bb.0: ; %entry
2055 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2056 ; GFX7-NEXT: buffer_wbinvl1_vol
2057 ; GFX7-NEXT: s_endpgm
2059 ; GFX10-WGP-LABEL: system_acq_rel_fence:
2060 ; GFX10-WGP: ; %bb.0: ; %entry
2061 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2062 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2063 ; GFX10-WGP-NEXT: buffer_gl0_inv
2064 ; GFX10-WGP-NEXT: buffer_gl1_inv
2065 ; GFX10-WGP-NEXT: s_endpgm
2067 ; GFX10-CU-LABEL: system_acq_rel_fence:
2068 ; GFX10-CU: ; %bb.0: ; %entry
2069 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2070 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2071 ; GFX10-CU-NEXT: buffer_gl0_inv
2072 ; GFX10-CU-NEXT: buffer_gl1_inv
2073 ; GFX10-CU-NEXT: s_endpgm
2075 ; SKIP-CACHE-INV-LABEL: system_acq_rel_fence:
2076 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2077 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2078 ; SKIP-CACHE-INV-NEXT: s_endpgm
2080 ; GFX90A-NOTTGSPLIT-LABEL: system_acq_rel_fence:
2081 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2082 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2083 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2084 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
2085 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
2086 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2088 ; GFX90A-TGSPLIT-LABEL: system_acq_rel_fence:
2089 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2090 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2091 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2092 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
2093 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
2094 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2096 ; GFX940-NOTTGSPLIT-LABEL: system_acq_rel_fence:
2097 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2098 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2099 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2100 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
2101 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2103 ; GFX940-TGSPLIT-LABEL: system_acq_rel_fence:
2104 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2105 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2106 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2107 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
2108 ; GFX940-TGSPLIT-NEXT: s_endpgm
2110 ; GFX11-WGP-LABEL: system_acq_rel_fence:
2111 ; GFX11-WGP: ; %bb.0: ; %entry
2112 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2113 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2114 ; GFX11-WGP-NEXT: buffer_gl0_inv
2115 ; GFX11-WGP-NEXT: buffer_gl1_inv
2116 ; GFX11-WGP-NEXT: s_endpgm
2118 ; GFX11-CU-LABEL: system_acq_rel_fence:
2119 ; GFX11-CU: ; %bb.0: ; %entry
2120 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2121 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2122 ; GFX11-CU-NEXT: buffer_gl0_inv
2123 ; GFX11-CU-NEXT: buffer_gl1_inv
2124 ; GFX11-CU-NEXT: s_endpgm
2130 define amdgpu_kernel void @system_seq_cst_fence() {
2131 ; GFX6-LABEL: system_seq_cst_fence:
2132 ; GFX6: ; %bb.0: ; %entry
2133 ; GFX6-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2134 ; GFX6-NEXT: buffer_wbinvl1
2135 ; GFX6-NEXT: s_endpgm
2137 ; GFX7-LABEL: system_seq_cst_fence:
2138 ; GFX7: ; %bb.0: ; %entry
2139 ; GFX7-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2140 ; GFX7-NEXT: buffer_wbinvl1_vol
2141 ; GFX7-NEXT: s_endpgm
2143 ; GFX10-WGP-LABEL: system_seq_cst_fence:
2144 ; GFX10-WGP: ; %bb.0: ; %entry
2145 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2146 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2147 ; GFX10-WGP-NEXT: buffer_gl0_inv
2148 ; GFX10-WGP-NEXT: buffer_gl1_inv
2149 ; GFX10-WGP-NEXT: s_endpgm
2151 ; GFX10-CU-LABEL: system_seq_cst_fence:
2152 ; GFX10-CU: ; %bb.0: ; %entry
2153 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2154 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2155 ; GFX10-CU-NEXT: buffer_gl0_inv
2156 ; GFX10-CU-NEXT: buffer_gl1_inv
2157 ; GFX10-CU-NEXT: s_endpgm
2159 ; SKIP-CACHE-INV-LABEL: system_seq_cst_fence:
2160 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2161 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2162 ; SKIP-CACHE-INV-NEXT: s_endpgm
2164 ; GFX90A-NOTTGSPLIT-LABEL: system_seq_cst_fence:
2165 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2166 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2167 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2168 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
2169 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
2170 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2172 ; GFX90A-TGSPLIT-LABEL: system_seq_cst_fence:
2173 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2174 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2175 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2176 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
2177 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
2178 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2180 ; GFX940-NOTTGSPLIT-LABEL: system_seq_cst_fence:
2181 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2182 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2183 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2184 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
2185 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2187 ; GFX940-TGSPLIT-LABEL: system_seq_cst_fence:
2188 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2189 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2190 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2191 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
2192 ; GFX940-TGSPLIT-NEXT: s_endpgm
2194 ; GFX11-WGP-LABEL: system_seq_cst_fence:
2195 ; GFX11-WGP: ; %bb.0: ; %entry
2196 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2197 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2198 ; GFX11-WGP-NEXT: buffer_gl0_inv
2199 ; GFX11-WGP-NEXT: buffer_gl1_inv
2200 ; GFX11-WGP-NEXT: s_endpgm
2202 ; GFX11-CU-LABEL: system_seq_cst_fence:
2203 ; GFX11-CU: ; %bb.0: ; %entry
2204 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
2205 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2206 ; GFX11-CU-NEXT: buffer_gl0_inv
2207 ; GFX11-CU-NEXT: buffer_gl1_inv
2208 ; GFX11-CU-NEXT: s_endpgm
2214 define amdgpu_kernel void @system_one_as_acquire_fence() {
2215 ; GFX6-LABEL: system_one_as_acquire_fence:
2216 ; GFX6: ; %bb.0: ; %entry
2217 ; GFX6-NEXT: s_waitcnt vmcnt(0)
2218 ; GFX6-NEXT: buffer_wbinvl1
2219 ; GFX6-NEXT: s_endpgm
2221 ; GFX7-LABEL: system_one_as_acquire_fence:
2222 ; GFX7: ; %bb.0: ; %entry
2223 ; GFX7-NEXT: s_waitcnt vmcnt(0)
2224 ; GFX7-NEXT: buffer_wbinvl1_vol
2225 ; GFX7-NEXT: s_endpgm
2227 ; GFX10-WGP-LABEL: system_one_as_acquire_fence:
2228 ; GFX10-WGP: ; %bb.0: ; %entry
2229 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
2230 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2231 ; GFX10-WGP-NEXT: buffer_gl0_inv
2232 ; GFX10-WGP-NEXT: buffer_gl1_inv
2233 ; GFX10-WGP-NEXT: s_endpgm
2235 ; GFX10-CU-LABEL: system_one_as_acquire_fence:
2236 ; GFX10-CU: ; %bb.0: ; %entry
2237 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2238 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2239 ; GFX10-CU-NEXT: buffer_gl0_inv
2240 ; GFX10-CU-NEXT: buffer_gl1_inv
2241 ; GFX10-CU-NEXT: s_endpgm
2243 ; SKIP-CACHE-INV-LABEL: system_one_as_acquire_fence:
2244 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2245 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
2246 ; SKIP-CACHE-INV-NEXT: s_endpgm
2248 ; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:
2249 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2250 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2251 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
2252 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
2253 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2255 ; GFX90A-TGSPLIT-LABEL: system_one_as_acquire_fence:
2256 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2257 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2258 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
2259 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
2260 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2262 ; GFX940-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:
2263 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2264 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2265 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
2266 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2268 ; GFX940-TGSPLIT-LABEL: system_one_as_acquire_fence:
2269 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2270 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2271 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
2272 ; GFX940-TGSPLIT-NEXT: s_endpgm
2274 ; GFX11-WGP-LABEL: system_one_as_acquire_fence:
2275 ; GFX11-WGP: ; %bb.0: ; %entry
2276 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
2277 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2278 ; GFX11-WGP-NEXT: buffer_gl0_inv
2279 ; GFX11-WGP-NEXT: buffer_gl1_inv
2280 ; GFX11-WGP-NEXT: s_endpgm
2282 ; GFX11-CU-LABEL: system_one_as_acquire_fence:
2283 ; GFX11-CU: ; %bb.0: ; %entry
2284 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2285 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2286 ; GFX11-CU-NEXT: buffer_gl0_inv
2287 ; GFX11-CU-NEXT: buffer_gl1_inv
2288 ; GFX11-CU-NEXT: s_endpgm
2290 fence syncscope("one-as") acquire
2294 define amdgpu_kernel void @system_one_as_release_fence() {
2295 ; GFX6-LABEL: system_one_as_release_fence:
2296 ; GFX6: ; %bb.0: ; %entry
2297 ; GFX6-NEXT: s_waitcnt vmcnt(0)
2298 ; GFX6-NEXT: s_endpgm
2300 ; GFX7-LABEL: system_one_as_release_fence:
2301 ; GFX7: ; %bb.0: ; %entry
2302 ; GFX7-NEXT: s_waitcnt vmcnt(0)
2303 ; GFX7-NEXT: s_endpgm
2305 ; GFX10-WGP-LABEL: system_one_as_release_fence:
2306 ; GFX10-WGP: ; %bb.0: ; %entry
2307 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
2308 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2309 ; GFX10-WGP-NEXT: s_endpgm
2311 ; GFX10-CU-LABEL: system_one_as_release_fence:
2312 ; GFX10-CU: ; %bb.0: ; %entry
2313 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2314 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2315 ; GFX10-CU-NEXT: s_endpgm
2317 ; SKIP-CACHE-INV-LABEL: system_one_as_release_fence:
2318 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2319 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
2320 ; SKIP-CACHE-INV-NEXT: s_endpgm
2322 ; GFX90A-NOTTGSPLIT-LABEL: system_one_as_release_fence:
2323 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2324 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2325 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2326 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2328 ; GFX90A-TGSPLIT-LABEL: system_one_as_release_fence:
2329 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2330 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2331 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2332 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2334 ; GFX940-NOTTGSPLIT-LABEL: system_one_as_release_fence:
2335 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2336 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2337 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2338 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2340 ; GFX940-TGSPLIT-LABEL: system_one_as_release_fence:
2341 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2342 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2343 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2344 ; GFX940-TGSPLIT-NEXT: s_endpgm
2346 ; GFX11-WGP-LABEL: system_one_as_release_fence:
2347 ; GFX11-WGP: ; %bb.0: ; %entry
2348 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
2349 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2350 ; GFX11-WGP-NEXT: s_endpgm
2352 ; GFX11-CU-LABEL: system_one_as_release_fence:
2353 ; GFX11-CU: ; %bb.0: ; %entry
2354 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2355 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2356 ; GFX11-CU-NEXT: s_endpgm
2358 fence syncscope("one-as") release
2362 define amdgpu_kernel void @system_one_as_acq_rel_fence() {
2363 ; GFX6-LABEL: system_one_as_acq_rel_fence:
2364 ; GFX6: ; %bb.0: ; %entry
2365 ; GFX6-NEXT: s_waitcnt vmcnt(0)
2366 ; GFX6-NEXT: buffer_wbinvl1
2367 ; GFX6-NEXT: s_endpgm
2369 ; GFX7-LABEL: system_one_as_acq_rel_fence:
2370 ; GFX7: ; %bb.0: ; %entry
2371 ; GFX7-NEXT: s_waitcnt vmcnt(0)
2372 ; GFX7-NEXT: buffer_wbinvl1_vol
2373 ; GFX7-NEXT: s_endpgm
2375 ; GFX10-WGP-LABEL: system_one_as_acq_rel_fence:
2376 ; GFX10-WGP: ; %bb.0: ; %entry
2377 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
2378 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2379 ; GFX10-WGP-NEXT: buffer_gl0_inv
2380 ; GFX10-WGP-NEXT: buffer_gl1_inv
2381 ; GFX10-WGP-NEXT: s_endpgm
2383 ; GFX10-CU-LABEL: system_one_as_acq_rel_fence:
2384 ; GFX10-CU: ; %bb.0: ; %entry
2385 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2386 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2387 ; GFX10-CU-NEXT: buffer_gl0_inv
2388 ; GFX10-CU-NEXT: buffer_gl1_inv
2389 ; GFX10-CU-NEXT: s_endpgm
2391 ; SKIP-CACHE-INV-LABEL: system_one_as_acq_rel_fence:
2392 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2393 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
2394 ; SKIP-CACHE-INV-NEXT: s_endpgm
2396 ; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:
2397 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2398 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2399 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2400 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
2401 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
2402 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2404 ; GFX90A-TGSPLIT-LABEL: system_one_as_acq_rel_fence:
2405 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2406 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2407 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2408 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
2409 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
2410 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2412 ; GFX940-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:
2413 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2414 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2415 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2416 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
2417 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2419 ; GFX940-TGSPLIT-LABEL: system_one_as_acq_rel_fence:
2420 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2421 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2422 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2423 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
2424 ; GFX940-TGSPLIT-NEXT: s_endpgm
2426 ; GFX11-WGP-LABEL: system_one_as_acq_rel_fence:
2427 ; GFX11-WGP: ; %bb.0: ; %entry
2428 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
2429 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2430 ; GFX11-WGP-NEXT: buffer_gl0_inv
2431 ; GFX11-WGP-NEXT: buffer_gl1_inv
2432 ; GFX11-WGP-NEXT: s_endpgm
2434 ; GFX11-CU-LABEL: system_one_as_acq_rel_fence:
2435 ; GFX11-CU: ; %bb.0: ; %entry
2436 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2437 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2438 ; GFX11-CU-NEXT: buffer_gl0_inv
2439 ; GFX11-CU-NEXT: buffer_gl1_inv
2440 ; GFX11-CU-NEXT: s_endpgm
2442 fence syncscope("one-as") acq_rel
2446 define amdgpu_kernel void @system_one_as_seq_cst_fence() {
2447 ; GFX6-LABEL: system_one_as_seq_cst_fence:
2448 ; GFX6: ; %bb.0: ; %entry
2449 ; GFX6-NEXT: s_waitcnt vmcnt(0)
2450 ; GFX6-NEXT: buffer_wbinvl1
2451 ; GFX6-NEXT: s_endpgm
2453 ; GFX7-LABEL: system_one_as_seq_cst_fence:
2454 ; GFX7: ; %bb.0: ; %entry
2455 ; GFX7-NEXT: s_waitcnt vmcnt(0)
2456 ; GFX7-NEXT: buffer_wbinvl1_vol
2457 ; GFX7-NEXT: s_endpgm
2459 ; GFX10-WGP-LABEL: system_one_as_seq_cst_fence:
2460 ; GFX10-WGP: ; %bb.0: ; %entry
2461 ; GFX10-WGP-NEXT: s_waitcnt vmcnt(0)
2462 ; GFX10-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2463 ; GFX10-WGP-NEXT: buffer_gl0_inv
2464 ; GFX10-WGP-NEXT: buffer_gl1_inv
2465 ; GFX10-WGP-NEXT: s_endpgm
2467 ; GFX10-CU-LABEL: system_one_as_seq_cst_fence:
2468 ; GFX10-CU: ; %bb.0: ; %entry
2469 ; GFX10-CU-NEXT: s_waitcnt vmcnt(0)
2470 ; GFX10-CU-NEXT: s_waitcnt_vscnt null, 0x0
2471 ; GFX10-CU-NEXT: buffer_gl0_inv
2472 ; GFX10-CU-NEXT: buffer_gl1_inv
2473 ; GFX10-CU-NEXT: s_endpgm
2475 ; SKIP-CACHE-INV-LABEL: system_one_as_seq_cst_fence:
2476 ; SKIP-CACHE-INV: ; %bb.0: ; %entry
2477 ; SKIP-CACHE-INV-NEXT: s_waitcnt vmcnt(0)
2478 ; SKIP-CACHE-INV-NEXT: s_endpgm
2480 ; GFX90A-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:
2481 ; GFX90A-NOTTGSPLIT: ; %bb.0: ; %entry
2482 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbl2
2483 ; GFX90A-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2484 ; GFX90A-NOTTGSPLIT-NEXT: buffer_invl2
2485 ; GFX90A-NOTTGSPLIT-NEXT: buffer_wbinvl1_vol
2486 ; GFX90A-NOTTGSPLIT-NEXT: s_endpgm
2488 ; GFX90A-TGSPLIT-LABEL: system_one_as_seq_cst_fence:
2489 ; GFX90A-TGSPLIT: ; %bb.0: ; %entry
2490 ; GFX90A-TGSPLIT-NEXT: buffer_wbl2
2491 ; GFX90A-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2492 ; GFX90A-TGSPLIT-NEXT: buffer_invl2
2493 ; GFX90A-TGSPLIT-NEXT: buffer_wbinvl1_vol
2494 ; GFX90A-TGSPLIT-NEXT: s_endpgm
2496 ; GFX940-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:
2497 ; GFX940-NOTTGSPLIT: ; %bb.0: ; %entry
2498 ; GFX940-NOTTGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2499 ; GFX940-NOTTGSPLIT-NEXT: s_waitcnt vmcnt(0)
2500 ; GFX940-NOTTGSPLIT-NEXT: buffer_inv sc0 sc1
2501 ; GFX940-NOTTGSPLIT-NEXT: s_endpgm
2503 ; GFX940-TGSPLIT-LABEL: system_one_as_seq_cst_fence:
2504 ; GFX940-TGSPLIT: ; %bb.0: ; %entry
2505 ; GFX940-TGSPLIT-NEXT: buffer_wbl2 sc0 sc1
2506 ; GFX940-TGSPLIT-NEXT: s_waitcnt vmcnt(0)
2507 ; GFX940-TGSPLIT-NEXT: buffer_inv sc0 sc1
2508 ; GFX940-TGSPLIT-NEXT: s_endpgm
2510 ; GFX11-WGP-LABEL: system_one_as_seq_cst_fence:
2511 ; GFX11-WGP: ; %bb.0: ; %entry
2512 ; GFX11-WGP-NEXT: s_waitcnt vmcnt(0)
2513 ; GFX11-WGP-NEXT: s_waitcnt_vscnt null, 0x0
2514 ; GFX11-WGP-NEXT: buffer_gl0_inv
2515 ; GFX11-WGP-NEXT: buffer_gl1_inv
2516 ; GFX11-WGP-NEXT: s_endpgm
2518 ; GFX11-CU-LABEL: system_one_as_seq_cst_fence:
2519 ; GFX11-CU: ; %bb.0: ; %entry
2520 ; GFX11-CU-NEXT: s_waitcnt vmcnt(0)
2521 ; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
2522 ; GFX11-CU-NEXT: buffer_gl0_inv
2523 ; GFX11-CU-NEXT: buffer_gl1_inv
2524 ; GFX11-CU-NEXT: s_endpgm
2526 fence syncscope("one-as") seq_cst