[llvm-branch-commits] [llvm] [AMDGPU] Add amdgcn.av.global.(load|store).b128 intrinsics (PR #191390)
Shilei Tian via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Apr 12 11:58:01 PDT 2026
================
@@ -0,0 +1,741 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+
+; Test that the scope metadata on global_load/store_b128 produces the same
+; cache policy bits as corresponding atomic operations.
+
+; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX942-SDAG %s
+; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1012 < %s | FileCheck -check-prefixes=GFX1012-SDAG %s
+; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck -check-prefixes=GFX1100-SDAG %s
+; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck -check-prefixes=GFX1250-SDAG %s
+
+; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX942-ISEL %s
+; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1012 < %s | FileCheck -check-prefixes=GFX1012-ISEL %s
+; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck -check-prefixes=GFX1100-ISEL %s
+; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck -check-prefixes=GFX1250-ISEL %s
+
+; scope: wavefront
+define <4 x i32> @load_wavefront(ptr addrspace(1) %p) {
+; GFX942-SDAG-LABEL: load_wavefront:
+; GFX942-SDAG: ; %bb.0:
+; GFX942-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX942-SDAG-NEXT: global_load_dwordx4 v[0:3], v[0:1], off
+; GFX942-SDAG-NEXT: s_waitcnt vmcnt(0)
+; GFX942-SDAG-NEXT: s_setpc_b64 s[30:31]
+;
+; GFX1012-SDAG-LABEL: load_wavefront:
+; GFX1012-SDAG: ; %bb.0:
+; GFX1012-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX1012-SDAG-NEXT: global_load_dwordx4 v[0:3], v[0:1], off
+; GFX1012-SDAG-NEXT: s_waitcnt vmcnt(0)
+; GFX1012-SDAG-NEXT: s_setpc_b64 s[30:31]
+;
+; GFX1100-SDAG-LABEL: load_wavefront:
+; GFX1100-SDAG: ; %bb.0:
+; GFX1100-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX1100-SDAG-NEXT: av_global_load_b128 v[0:3], v[0:1], off
+; GFX1100-SDAG-NEXT: s_waitcnt vmcnt(0)
+; GFX1100-SDAG-NEXT: s_setpc_b64 s[30:31]
+;
+; GFX1250-SDAG-LABEL: load_wavefront:
+; GFX1250-SDAG: ; %bb.0:
+; GFX1250-SDAG-NEXT: s_wait_loadcnt_dscnt 0x0
+; GFX1250-SDAG-NEXT: s_wait_kmcnt 0x0
+; GFX1250-SDAG-NEXT: av_global_load_b128 v[0:3], v[0:1], off
+; GFX1250-SDAG-NEXT: s_wait_loadcnt 0x0
+; GFX1250-SDAG-NEXT: s_set_pc_i64 s[30:31]
+;
+; GFX942-ISEL-LABEL: load_wavefront:
+; GFX942-ISEL: ; %bb.0:
+; GFX942-ISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX942-ISEL-NEXT: global_load_dwordx4 v[0:3], v[0:1], off
+; GFX942-ISEL-NEXT: s_waitcnt vmcnt(0)
+; GFX942-ISEL-NEXT: s_setpc_b64 s[30:31]
+;
+; GFX1012-ISEL-LABEL: load_wavefront:
+; GFX1012-ISEL: ; %bb.0:
+; GFX1012-ISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX1012-ISEL-NEXT: global_load_dwordx4 v[0:3], v[0:1], off
+; GFX1012-ISEL-NEXT: s_waitcnt vmcnt(0)
+; GFX1012-ISEL-NEXT: s_setpc_b64 s[30:31]
+;
+; GFX1100-ISEL-LABEL: load_wavefront:
+; GFX1100-ISEL: ; %bb.0:
+; GFX1100-ISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX1100-ISEL-NEXT: av_global_load_b128 v[0:3], v[0:1], off
----------------
shiltian wrote:
The alias is not handled?
https://github.com/llvm/llvm-project/pull/191390
More information about the llvm-branch-commits
mailing list