[llvm] 89eb732 - [AMDGPU] Add VDSDIR encoding to gfx13 (#181620)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 17 00:25:18 PST 2026
Author: Mariusz Sikora
Date: 2026-02-17T09:25:14+01:00
New Revision: 89eb7329bfad4b5096edee93fcf907542704ce7b
URL: https://github.com/llvm/llvm-project/commit/89eb7329bfad4b5096edee93fcf907542704ce7b
DIFF: https://github.com/llvm/llvm-project/commit/89eb7329bfad4b5096edee93fcf907542704ce7b.diff
LOG: [AMDGPU] Add VDSDIR encoding to gfx13 (#181620)
Added:
llvm/test/MC/AMDGPU/gfx13_asm_vdsdir.s
llvm/test/MC/AMDGPU/gfx13_asm_vdsdir_alias.s
Modified:
llvm/lib/Target/AMDGPU/DSDIRInstructions.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/DSDIRInstructions.td b/llvm/lib/Target/AMDGPU/DSDIRInstructions.td
index d9d7a650dfc21..09053b324e063 100644
--- a/llvm/lib/Target/AMDGPU/DSDIRInstructions.td
+++ b/llvm/lib/Target/AMDGPU/DSDIRInstructions.td
@@ -177,22 +177,26 @@ defm LDS_PARAM_LOAD : DSDIR_Real_gfx11<0x0>;
defm LDS_DIRECT_LOAD : DSDIR_Real_gfx11<0x1>;
//===----------------------------------------------------------------------===//
-// GFX12+
+// GFX12, GFX13
//===----------------------------------------------------------------------===//
-multiclass DSDIR_Real_gfx12<bits<2> op> {
+multiclass DSDIR_Real<GFXGen Gen, bits<2> op> {
defvar lds = !cast<DSDIR_Pseudo>(NAME);
- def _gfx12 : DSDIR_Real<lds, lds.InOperandList,
- VDSDIR_getAsm<lds.is_direct>.ret,
- SIEncodingFamily.GFX12>,
- VDSDIRe<op, lds.is_direct> {
- let AssemblerPredicate = isGFX12Plus;
- let DecoderNamespace = "GFX12";
+ def Gen.Suffix : DSDIR_Real<lds, lds.InOperandList,
+ VDSDIR_getAsm<lds.is_direct>.ret,
+ Gen.Subtarget>,
+ VDSDIRe<op, lds.is_direct> {
+ let AssemblerPredicate = Gen.AssemblerPredicate;
+ let DecoderNamespace = Gen.DecoderNamespace;
}
}
-defm DS_PARAM_LOAD : DSDIR_Real_gfx12<0x0>;
-defm DS_DIRECT_LOAD : DSDIR_Real_gfx12<0x1>;
+multiclass DSDIR_Real_gfx12_gfx13<bits<2> op> :
+ DSDIR_Real<GFX12Gen, op>,
+ DSDIR_Real<GFX13Gen, op>;
+
+defm DS_PARAM_LOAD : DSDIR_Real_gfx12_gfx13<0x0>;
+defm DS_DIRECT_LOAD : DSDIR_Real_gfx12_gfx13<0x1>;
let SubtargetPredicate = isGFX12Plus in {
def : AMDGPUMnemonicAlias<"lds_param_load", "ds_param_load">;
diff --git a/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir.s b/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir.s
new file mode 100644
index 0000000000000..e9d26a43164b4
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir.s
@@ -0,0 +1,39 @@
+// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 6
+// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding < %s | FileCheck -check-prefix=GFX13 %s
+// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding < %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1310 -disassemble -show-encoding | FileCheck -check-prefix=GFX13 %s
+
+ds_direct_load v1 wait_va_vdst:15
+// GFX13: ds_direct_load v1 wait_va_vdst:15 wait_vm_vsrc:0 ; encoding: [0x01,0x00,0x1f,0xce]
+
+ds_direct_load v16 wait_va_vdst:0
+// GFX13: ds_direct_load v16 wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x10,0x00,0x10,0xce]
+
+ds_direct_load v17
+// GFX13: ds_direct_load v17 wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x11,0x00,0x10,0xce]
+
+ds_param_load v1, attr0.x wait_va_vdst:15
+// GFX13: ds_param_load v1, attr0.x wait_va_vdst:15 wait_vm_vsrc:0 ; encoding: [0x01,0x00,0x0f,0xce]
+
+ds_param_load v16, attr32.w wait_va_vdst:0
+// GFX13: ds_param_load v16, attr32.w wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x10,0x83,0x00,0xce]
+
+ds_param_load v17, attr32.w
+// GFX13: ds_param_load v17, attr32.w wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x11,0x83,0x00,0xce]
+
+ds_direct_load v1 wait_va_vdst:15 wait_vm_vsrc:1
+// GFX13: ds_direct_load v1 wait_va_vdst:15 wait_vm_vsrc:1 ; encoding: [0x01,0x00,0x9f,0xce]
+
+ds_direct_load v16 wait_va_vdst:0 wait_vm_vsrc:1
+// GFX13: ds_direct_load v16 wait_va_vdst:0 wait_vm_vsrc:1 ; encoding: [0x10,0x00,0x90,0xce]
+
+ds_direct_load v17 wait_vm_vsrc:1
+// GFX13: ds_direct_load v17 wait_va_vdst:0 wait_vm_vsrc:1 ; encoding: [0x11,0x00,0x90,0xce]
+
+ds_param_load v1, attr0.x wait_va_vdst:15 wait_vm_vsrc:1
+// GFX13: ds_param_load v1, attr0.x wait_va_vdst:15 wait_vm_vsrc:1 ; encoding: [0x01,0x00,0x8f,0xce]
+
+ds_param_load v16, attr32.w wait_va_vdst:0 wait_vm_vsrc:1
+// GFX13: ds_param_load v16, attr32.w wait_va_vdst:0 wait_vm_vsrc:1 ; encoding: [0x10,0x83,0x80,0xce]
+
+ds_param_load v17, attr32.w wait_vm_vsrc:1
+// GFX13: ds_param_load v17, attr32.w wait_va_vdst:0 wait_vm_vsrc:1 ; encoding: [0x11,0x83,0x80,0xce]
diff --git a/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir_alias.s b/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir_alias.s
new file mode 100644
index 0000000000000..b3c14e5c44000
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx13_asm_vdsdir_alias.s
@@ -0,0 +1,9 @@
+// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5
+// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding < %s | FileCheck -check-prefix=GFX13 %s
+// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding < %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1310 -disassemble -show-encoding | FileCheck -check-prefix=GFX13 %s
+
+lds_direct_load v0
+// GFX13: ds_direct_load v0 wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x00,0x00,0x10,0xce]
+
+lds_param_load v0, attr0.x
+// GFX13: ds_param_load v0, attr0.x wait_va_vdst:0 wait_vm_vsrc:0 ; encoding: [0x00,0x00,0x00,0xce]
More information about the llvm-commits
mailing list