Skip to content

Conversation

@Pierre-vh
Copy link
Contributor

No description provided.

@Pierre-vh Pierre-vh marked this pull request as ready for review August 21, 2025 10:33
@llvmbot
Copy link
Member

llvmbot commented Aug 21, 2025

@llvm/pr-subscribers-backend-amdgpu

Author: Pierre van Houtryve (Pierre-vh)

Changes

Patch is 1.33 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/154725.diff

25 Files Affected:

  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll (+171)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll (+100)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll (+239)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll (+1651)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-lastuse.ll (+51)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll (+65)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-singlethread.ll (+1241)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll (+1709)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll (+80)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-wavefront.ll (+1225)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll (+1223)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll (+1613)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-lastuse.ll (+56)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-nontemporal.ll (+67)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll (+1241)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll (+1586)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll (+81)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll (+1241)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll (+1271)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-agent.ll (+1211)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-nontemporal.ll (+69)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-singlethread.ll (+1165)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-system.ll (+1211)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll (+80)
  • (modified) llvm/test/CodeGen/AMDGPU/memory-legalizer-local-wavefront.ll ()
diff --git a/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll b/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
index 80445f793934b..20822c71198b6 100644
--- a/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
+++ b/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-global.ll
@@ -12,6 +12,7 @@
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GFX1250-CU %s
 
 define amdgpu_kernel void @workgroup_acquire_fence() {
 ; GFX6-LABEL: workgroup_acquire_fence:
@@ -78,6 +79,10 @@ define amdgpu_kernel void @workgroup_acquire_fence() {
 ; GFX12-CU-LABEL: workgroup_acquire_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -145,6 +150,10 @@ define amdgpu_kernel void @workgroup_release_fence() {
 ; GFX12-CU-LABEL: workgroup_release_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -217,6 +226,10 @@ define amdgpu_kernel void @workgroup_acq_rel_fence() {
 ; GFX12-CU-LABEL: workgroup_acq_rel_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -289,6 +302,10 @@ define amdgpu_kernel void @workgroup_seq_cst_fence() {
 ; GFX12-CU-LABEL: workgroup_seq_cst_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -359,6 +376,10 @@ define amdgpu_kernel void @workgroup_one_as_acquire_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_acquire_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -426,6 +447,10 @@ define amdgpu_kernel void @workgroup_one_as_release_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_release_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -498,6 +523,10 @@ define amdgpu_kernel void @workgroup_one_as_acq_rel_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_acq_rel_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -570,6 +599,10 @@ define amdgpu_kernel void @workgroup_one_as_seq_cst_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_seq_cst_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -662,6 +695,13 @@ define amdgpu_kernel void @agent_acquire_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -744,6 +784,14 @@ define amdgpu_kernel void @agent_release_fence() {
 ; GFX12-CU-NEXT:    s_wait_loadcnt 0x0
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -842,6 +890,15 @@ define amdgpu_kernel void @agent_acq_rel_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -940,6 +997,15 @@ define amdgpu_kernel void @agent_seq_cst_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1032,6 +1098,13 @@ define amdgpu_kernel void @agent_one_as_acquire_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_one_as_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent-one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1114,6 +1187,14 @@ define amdgpu_kernel void @agent_one_as_release_fence() {
 ; GFX12-CU-NEXT:    s_wait_loadcnt 0x0
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_one_as_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent-one-as") release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1212,6 +1293,15 @@ define amdgpu_kernel void @agent_one_as_acq_rel_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_one_as_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent-one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1310,6 +1400,15 @@ define amdgpu_kernel void @agent_one_as_seq_cst_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_one_as_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_DEV
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent-one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1404,6 +1503,13 @@ define amdgpu_kernel void @system_acquire_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1490,6 +1596,15 @@ define amdgpu_kernel void @system_release_fence() {
 ; GFX12-CU-NEXT:    s_wait_loadcnt 0x0
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1594,6 +1709,16 @@ define amdgpu_kernel void @system_acq_rel_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1698,6 +1823,16 @@ define amdgpu_kernel void @system_seq_cst_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1792,6 +1927,13 @@ define amdgpu_kernel void @system_one_as_acquire_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_one_as_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1878,6 +2020,15 @@ define amdgpu_kernel void @system_one_as_release_fence() {
 ; GFX12-CU-NEXT:    s_wait_loadcnt 0x0
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_one_as_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("one-as") release, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -1982,6 +2133,16 @@ define amdgpu_kernel void @system_one_as_acq_rel_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_one_as_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
@@ -2086,6 +2247,16 @@ define amdgpu_kernel void @system_one_as_seq_cst_fence() {
 ; GFX12-CU-NEXT:    s_wait_storecnt 0x0
 ; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: system_one_as_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    global_wb scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_wait_bvhcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_samplecnt 0x0
+; GFX1250-CU-NEXT:    s_wait_loadcnt 0x0
+; GFX1250-CU-NEXT:    s_wait_storecnt 0x0
+; GFX1250-CU-NEXT:    global_inv scope:SCOPE_SYS
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"global"}
   ret void
diff --git a/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll b/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
index 7a419a5031ba9..767dbc1432242 100644
--- a/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
+++ b/llvm/test/CodeGen/AMDGPU/memory-legalizer-fence-mmra-local.ll
@@ -12,6 +12,7 @@
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GFX1250-CU %s
 
 define amdgpu_kernel void @workgroup_acquire_fence() {
 ; GFX6-LABEL: workgroup_acquire_fence:
@@ -76,6 +77,11 @@ define amdgpu_kernel void @workgroup_acquire_fence() {
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_wait_dscnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_dscnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -142,6 +148,10 @@ define amdgpu_kernel void @workgroup_release_fence() {
 ; GFX12-CU-LABEL: workgroup_release_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") release, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -208,6 +218,10 @@ define amdgpu_kernel void @workgroup_acq_rel_fence() {
 ; GFX12-CU-LABEL: workgroup_acq_rel_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -274,6 +288,10 @@ define amdgpu_kernel void @workgroup_seq_cst_fence() {
 ; GFX12-CU-LABEL: workgroup_seq_cst_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -331,6 +349,10 @@ define amdgpu_kernel void @workgroup_one_as_acquire_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_acquire_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -388,6 +410,10 @@ define amdgpu_kernel void @workgroup_one_as_release_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_release_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") release, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -445,6 +471,10 @@ define amdgpu_kernel void @workgroup_one_as_acq_rel_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_acq_rel_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -502,6 +532,10 @@ define amdgpu_kernel void @workgroup_one_as_seq_cst_fence() {
 ; GFX12-CU-LABEL: workgroup_one_as_seq_cst_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: workgroup_one_as_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("workgroup-one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -570,6 +604,11 @@ define amdgpu_kernel void @agent_acquire_fence() {
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_wait_dscnt 0x0
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_wait_dscnt 0x0
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -636,6 +675,10 @@ define amdgpu_kernel void @agent_release_fence() {
 ; GFX12-CU-LABEL: agent_release_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_release_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") release, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -702,6 +745,10 @@ define amdgpu_kernel void @agent_acq_rel_fence() {
 ; GFX12-CU-LABEL: agent_acq_rel_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_acq_rel_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -768,6 +815,10 @@ define amdgpu_kernel void @agent_seq_cst_fence() {
 ; GFX12-CU-LABEL: agent_seq_cst_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_seq_cst_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}
   ret void
@@ -825,6 +876,10 @@ define amdgpu_kernel void @agent_one_as_acquire_fence() {
 ; GFX12-CU-LABEL: agent_one_as_acquire_fence:
 ; GFX12-CU:       ; %bb.0: ; %entry
 ; GFX12-CU-NEXT:    s_endpgm
+;
+; GFX1250-CU-LABEL: agent_one_as_acquire_fence:
+; GFX1250-CU:       ; %bb.0: ; %entry
+; GFX1250-CU-NEXT:    s_endpgm
 entry:
   fence syncscope("agent-...
[truncated]

@Pierre-vh Pierre-vh changed the title [AMDGPU][gfx1250] Add memory legalizer tests [AMDGPU][gfx1250] Add memory legalizer tests (NFC) Aug 21, 2025
@Pierre-vh Pierre-vh force-pushed the users/pierre-vh/gfx1250-memorylegalizer-test branch from ba265d8 to 7f7b1bb Compare August 22, 2025 08:12
@Pierre-vh Pierre-vh merged commit 4ab5efd into main Aug 22, 2025
7 of 9 checks passed
@Pierre-vh Pierre-vh deleted the users/pierre-vh/gfx1250-memorylegalizer-test branch August 22, 2025 08:14
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.

4 participants