Skip to content

Commit daea6b9

Browse files
jayfoadtru
authored andcommitted
[AMDGPU] Add GFX12 test coverage for vmcnt flushing in loop headers (#105548)
(cherry picked from commit 6119461)
1 parent 3f768dd commit daea6b9

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

llvm/test/CodeGen/AMDGPU/waitcnt-vmcnt-loop.mir

+129
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-insert-waitcnts -o - %s | FileCheck -check-prefix=GFX9 %s
22
# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass si-insert-waitcnts -o - %s | FileCheck -check-prefix=GFX10 %s
3+
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs -run-pass si-insert-waitcnts -o - %s | FileCheck -check-prefix=GFX12 %s
34

45
---
56

@@ -20,6 +21,13 @@
2021
# GFX10-LABEL: bb.1:
2122
# GFX10: S_WAITCNT 16
2223
# GFX10-LABEL: bb.2:
24+
25+
# GFX12-LABEL: waitcnt_vm_loop
26+
# GFX12-LABEL: bb.0:
27+
# GFX12-NOT: S_WAIT_LOADCNT 0
28+
# GFX12-LABEL: bb.1:
29+
# GFX12: S_WAIT_LOADCNT 0
30+
# GFX12-LABEL: bb.2:
2331
name: waitcnt_vm_loop
2432
body: |
2533
bb.0:
@@ -58,6 +66,13 @@ body: |
5866
# GFX10-LABEL: bb.1:
5967
# GFX10: S_WAITCNT 16
6068
# GFX10-LABEL: bb.2:
69+
70+
# GFX12-LABEL: waitcnt_vm_loop_noterm
71+
# GFX12-LABEL: bb.0:
72+
# GFX12-NOT: S_WAIT_LOADCNT 0
73+
# GFX12-LABEL: bb.1:
74+
# GFX12: S_WAIT_LOADCNT 0
75+
# GFX12-LABEL: bb.2:
6176
name: waitcnt_vm_loop_noterm
6277
body: |
6378
bb.0:
@@ -129,6 +144,13 @@ body: |
129144
# GFX10-LABEL: bb.1:
130145
# GFX10: S_WAITCNT 16
131146
# GFX10-LABEL: bb.2:
147+
148+
# GFX12-LABEL: waitcnt_vm_loop_load
149+
# GFX12-LABEL: bb.0:
150+
# GFX12-NOT: S_WAIT_LOADCNT 0
151+
# GFX12-LABEL: bb.1:
152+
# GFX12: S_WAIT_LOADCNT 0
153+
# GFX12-LABEL: bb.2:
132154
name: waitcnt_vm_loop_load
133155
body: |
134156
bb.0:
@@ -170,6 +192,13 @@ body: |
170192
# GFX10-LABEL: bb.1:
171193
# GFX10: S_WAITCNT 16
172194
# GFX10-LABEL: bb.2:
195+
196+
# GFX12-LABEL: waitcnt_vm_loop_no_store
197+
# GFX12-LABEL: bb.0:
198+
# GFX12-NOT: S_WAIT_LOADCNT 0
199+
# GFX12-LABEL: bb.1:
200+
# GFX12: S_WAIT_LOADCNT 0
201+
# GFX12-LABEL: bb.2:
173202
name: waitcnt_vm_loop_no_store
174203
body: |
175204
bb.0:
@@ -212,6 +241,13 @@ body: |
212241
# GFX10-LABEL: bb.1:
213242
# GFX10-NOT: S_WAITCNT 16
214243
# GFX10-LABEL: bb.2:
244+
245+
# GFX12-LABEL: waitcnt_vm_loop_no_use
246+
# GFX12-LABEL: bb.0:
247+
# GFX12-NOT: S_WAIT_LOADCNT 0
248+
# GFX12-LABEL: bb.1:
249+
# GFX12-NOT: S_WAIT_LOADCNT 0
250+
# GFX12-LABEL: bb.2:
215251
name: waitcnt_vm_loop_no_use
216252
body: |
217253
bb.0:
@@ -255,6 +291,14 @@ body: |
255291
# GFX10-LABEL: bb.1:
256292
# GFX10-NOT: S_WAITCNT 16
257293
# GFX10-LABEL: bb.2:
294+
295+
# GFX12-LABEL: waitcnt_vm_loop2
296+
# GFX12-LABEL: bb.0:
297+
# GFX12: BUFFER_LOAD_FORMAT_X_IDXEN
298+
# GFX12: S_WAIT_LOADCNT 0
299+
# GFX12-LABEL: bb.1:
300+
# GFX12-NOT: S_WAIT_LOADCNT 0
301+
# GFX12-LABEL: bb.2:
258302
name: waitcnt_vm_loop2
259303
body: |
260304
bb.0:
@@ -294,6 +338,14 @@ body: |
294338
# GFX10-LABEL: bb.1:
295339
# GFX10-NOT: S_WAITCNT 16
296340
# GFX10-LABEL: bb.2:
341+
342+
# GFX12-LABEL: waitcnt_vm_loop2_store
343+
# GFX12-LABEL: bb.0:
344+
# GFX12: BUFFER_LOAD_FORMAT_X_IDXEN
345+
# GFX12: S_WAIT_LOADCNT 0
346+
# GFX12-LABEL: bb.1:
347+
# GFX12-NOT: S_WAIT_LOADCNT 0
348+
# GFX12-LABEL: bb.2:
297349
name: waitcnt_vm_loop2_store
298350
body: |
299351
bb.0:
@@ -334,6 +386,13 @@ body: |
334386
# GFX10-LABEL: bb.1:
335387
# GFX10: S_WAITCNT 16
336388
# GFX10-LABEL: bb.2:
389+
390+
# GFX12-LABEL: waitcnt_vm_loop2_use_in_loop
391+
# GFX12-LABEL: bb.0:
392+
# GFX12-NOT: S_WAIT_LOADCNT 0
393+
# GFX12-LABEL: bb.1:
394+
# GFX12: S_WAIT_LOADCNT 0
395+
# GFX12-LABEL: bb.2:
337396
name: waitcnt_vm_loop2_use_in_loop
338397
body: |
339398
bb.0:
@@ -379,6 +438,15 @@ body: |
379438
# GFX10-LABEL: bb.2:
380439
# GFX10-NOT: S_WAITCNT 16
381440
# GFX10-LABEL: bb.3:
441+
442+
# GFX12-LABEL: waitcnt_vm_loop2_nowait
443+
# GFX12-LABEL: bb.0:
444+
# GFX12: S_WAIT_LOADCNT 0
445+
# GFX12-LABEL: bb.1:
446+
# GFX12-NOT: S_WAIT_LOADCNT 0
447+
# GFX12-LABEL: bb.2:
448+
# GFX12-NOT: S_WAIT_LOADCNT 0
449+
# GFX12-LABEL: bb.3:
382450
name: waitcnt_vm_loop2_nowait
383451
body: |
384452
bb.0:
@@ -427,6 +495,14 @@ body: |
427495
# GFX10-LABEL: bb.1:
428496
# GFX10-NOT: S_WAITCNT 16
429497
# GFX10-LABEL: bb.2:
498+
499+
# GFX12-LABEL: waitcnt_vm_loop2_reginterval
500+
# GFX12-LABEL: bb.0:
501+
# GFX12: GLOBAL_LOAD_DWORDX4
502+
# GFX12: S_WAIT_LOADCNT 0
503+
# GFX12-LABEL: bb.1:
504+
# GFX12-NOT: S_WAIT_LOADCNT 0
505+
# GFX12-LABEL: bb.2:
430506
name: waitcnt_vm_loop2_reginterval
431507
body: |
432508
bb.0:
@@ -467,6 +543,13 @@ body: |
467543
# GFX10-LABEL: bb.1:
468544
# GFX10: S_WAITCNT 16
469545
# GFX10-LABEL: bb.2:
546+
547+
# GFX12-LABEL: waitcnt_vm_loop2_reginterval2
548+
# GFX12-LABEL: bb.0:
549+
# GFX12-NOT: S_WAIT_LOADCNT 0
550+
# GFX12-LABEL: bb.1:
551+
# GFX12: S_WAIT_LOADCNT 0
552+
# GFX12-LABEL: bb.2:
470553
name: waitcnt_vm_loop2_reginterval2
471554
body: |
472555
bb.0:
@@ -513,6 +596,15 @@ body: |
513596
# GFX10-NOT: S_WAITCNT 16240
514597
# GFX10-LABEL: bb.2:
515598

599+
# GFX12-LABEL: waitcnt_vm_zero
600+
# GFX12-LABEL: bb.0:
601+
# GFX12: BUFFER_LOAD_FORMAT_X_IDXEN
602+
# GFX12: BUFFER_LOAD_FORMAT_X_IDXEN
603+
# GFX12: S_WAIT_LOADCNT 0
604+
# GFX12-LABEL: bb.1:
605+
# GFX12-NOT: S_WAIT_LOADCNT 0
606+
# GFX12-LABEL: bb.2:
607+
516608
name: waitcnt_vm_zero
517609
body: |
518610
bb.0:
@@ -548,6 +640,14 @@ body: |
548640
# GFX10-LABEL: bb.1:
549641
# GFX10-NOT: S_WAITCNT
550642

643+
# GFX12-LABEL: waitcnt_vm_necessary
644+
# GFX12-LABEL: bb.0:
645+
# GFX12: S_WAIT_LOADCNT 0
646+
# GFX12: $vgpr4
647+
# GFX12-NOT: S_WAITCNT
648+
# GFX12-LABEL: bb.1:
649+
# GFX12-NOT: S_WAITCNT
650+
551651
# GFX9-LABEL: waitcnt_vm_necessary
552652
# GFX9-LABEL: bb.0:
553653
# GFX9: S_WAITCNT 3952
@@ -590,6 +690,13 @@ body: |
590690
# GFX10: S_WAITCNT 16
591691
# GFX10-LABEL: bb.2:
592692

693+
# GFX12-LABEL: waitcnt_vm_loop_global_mem
694+
# GFX12-LABEL: bb.0:
695+
# GFX12-NOT: S_WAIT_LOADCNT 0
696+
# GFX12-LABEL: bb.1:
697+
# GFX12: S_WAIT_LOADCNT 0
698+
# GFX12-LABEL: bb.2:
699+
593700
name: waitcnt_vm_loop_global_mem
594701
body: |
595702
bb.0:
@@ -631,6 +738,13 @@ body: |
631738
# GFX10: S_WAITCNT 16
632739
# GFX10-LABEL: bb.2:
633740

741+
# GFX12-LABEL: waitcnt_vm_loop_scratch_mem
742+
# GFX12-LABEL: bb.0:
743+
# GFX12-NOT: S_WAIT_LOADCNT 0
744+
# GFX12-LABEL: bb.1:
745+
# GFX12: S_WAIT_LOADCNT 0
746+
# GFX12-LABEL: bb.2:
747+
634748
name: waitcnt_vm_loop_scratch_mem
635749
body: |
636750
bb.0:
@@ -671,6 +785,14 @@ body: |
671785
# GFX10-LABEL: bb.1:
672786
# GFX10: S_WAITCNT 11
673787
# GFX10-LABEL: bb.2:
788+
789+
# GFX12-LABEL: waitcnt_vm_loop_flat_mem
790+
# GFX12-LABEL: bb.0:
791+
# GFX12: FLAT_LOAD_DWORD
792+
# GFX12-NOT: S_WAIT_LOADCNT_DSCNT 0
793+
# GFX12-LABEL: bb.1:
794+
# GFX12: S_WAIT_LOADCNT_DSCNT 0
795+
# GFX12-LABEL: bb.2:
674796
name: waitcnt_vm_loop_flat_mem
675797
body: |
676798
bb.0:
@@ -713,6 +835,13 @@ body: |
713835
# GFX10-LABEL: bb.1:
714836
# GFX10: S_WAITCNT 16
715837
# GFX10-LABEL: bb.2:
838+
839+
# GFX12-LABEL: waitcnt_vm_loop_flat_load
840+
# GFX12-LABEL: bb.0:
841+
# GFX12-NOT: S_WAIT_LOADCNT 0
842+
# GFX12-LABEL: bb.1:
843+
# GFX12: S_WAIT_LOADCNT 0
844+
# GFX12-LABEL: bb.2:
716845
name: waitcnt_vm_loop_flat_load
717846
body: |
718847
bb.0:

0 commit comments

Comments
 (0)