Skip to content

Conversation

rampitec
Copy link
Collaborator

@rampitec rampitec commented Sep 8, 2025

No description provided.

Copy link
Collaborator Author

rampitec commented Sep 8, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@rampitec rampitec marked this pull request as ready for review September 8, 2025 19:02
@llvmbot
Copy link
Member

llvmbot commented Sep 8, 2025

@llvm/pr-subscribers-backend-amdgpu

Author: Stanislav Mekhanoshin (rampitec)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/157533.diff

1 Files Affected:

  • (added) llvm/test/CodeGen/AMDGPU/waitcnt-gfx1250.mir (+95)
diff --git a/llvm/test/CodeGen/AMDGPU/waitcnt-gfx1250.mir b/llvm/test/CodeGen/AMDGPU/waitcnt-gfx1250.mir
new file mode 100644
index 0000000000000..b1f36afe5e478
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/waitcnt-gfx1250.mir
@@ -0,0 +1,95 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
+# RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -run-pass si-insert-waitcnts %s -o - | FileCheck %s --check-prefix=GCN
+
+---
+name: no_wait_between_low_and_high_vgpr
+body: |
+  bb.0:
+    ; GCN-LABEL: name: no_wait_between_low_and_high_vgpr
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr0 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr256, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr0 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr256, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...
+
+---
+name: wait_between_high_and_high_vgpr
+body: |
+  bb.0:
+    ; GCN-LABEL: name: wait_between_high_and_high_vgpr
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr511 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr511, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr511 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr511, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...
+
+---
+name: no_wait_between_low_and_high_vgpr_512
+body: |
+  bb.0:
+    ; GCN-LABEL: name: no_wait_between_low_and_high_vgpr_512
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr0 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr0 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...
+
+---
+name: wait_between_high_and_high_vgpr_512
+body: |
+  bb.0:
+    ; GCN-LABEL: name: wait_between_high_and_high_vgpr_512
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr512 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr512 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...
+
+---
+name: no_wait_between_high_vgpr_768_and_high_vgpr_512
+body: |
+  bb.0:
+    ; GCN-LABEL: name: no_wait_between_high_vgpr_768_and_high_vgpr_512
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr768 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr768 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr512, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...
+
+---
+name: wait_between_high_and_high_vgpr_768
+body: |
+  bb.0:
+    ; GCN-LABEL: name: wait_between_high_and_high_vgpr_768
+    ; GCN: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: S_WAIT_KMCNT 0
+    ; GCN-NEXT: $vgpr768 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_WAIT_LOADCNT_DSCNT 0
+    ; GCN-NEXT: FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr768, 0, 0, implicit $exec, implicit $flat_scr
+    ; GCN-NEXT: S_ENDPGM 0
+    $vgpr768 = FLAT_LOAD_DWORD undef $vgpr2_vgpr3, 0, 0, implicit $exec, implicit $flat_scr
+    FLAT_STORE_DWORD undef $vgpr4_vgpr5, $vgpr768, 0, 0, implicit $exec, implicit $flat_scr
+    S_ENDPGM 0
+...

@rampitec rampitec merged commit e7d916b into main Sep 8, 2025
9 checks passed
@rampitec rampitec deleted the users/rampitec/09-08-_amdgpu_high_vgpr_waitcnt_generation_tests._nfc branch September 8, 2025 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants