-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[AMDGPU][GFX11] buffer_load_lds_{size} instructions do not exist #132916
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AMDGPU][GFX11] buffer_load_lds_{size} instructions do not exist #132916
Conversation
According to the shader manual there are not buffer load lds instructions of gfx11. The tests for the regular `buffer_load ... lds` instructions for gfx11 are already present in AMDGPU/gfx11_asm_mubuf.s, where the compiler fails to encode the instructions for this target.
@llvm/pr-subscribers-backend-amdgpu Author: Juan Manuel Martinez Caamaño (jmmartinez) ChangesAccording to the shader manual there are not buffer load lds instructions of gfx11. The tests for the regular Patch is 46.55 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/132916.diff 6 Files Affected:
diff --git a/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst b/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
index c3eb05bdbd291..85e9c47a5c97d 100644
--- a/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
+++ b/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
@@ -695,12 +695,6 @@ MUBUF
buffer_load_format_xyzw :ref:`vdst<amdgpu_synid_gfx11_vdst_f47754>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_i16 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_i8 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
- buffer_load_lds_b32 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_format_x :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_i16 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_i8 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_u16 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_u8 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
buffer_load_sbyte :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_sbyte_d16 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_sbyte_d16_hi :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td
index f2686bdf56b41..f4edfe1387731 100644
--- a/llvm/lib/Target/AMDGPU/BUFInstructions.td
+++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td
@@ -588,25 +588,6 @@ multiclass MUBUF_Pseudo_Loads_Lds<string opName, ValueType load_vt = i32, Predic
}
-multiclass MUBUF_Pseudo_Loads_LDSOpc<string opName,
- ValueType load_vt = i32,
- bit TiedDest = 0,
- bit isLds = 0,
- bit isLdsOpc = 1> {
-
- defvar legal_load_vt = !if(!eq(!cast<string>(load_vt), !cast<string>(v3f16)), v4f16, load_vt);
-
- def _OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
-
- def _VBUFFER_OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
-}
-
class MUBUF_Store_Pseudo <string opName,
int addrKind,
ValueType store_vt,
@@ -972,25 +953,6 @@ defm BUFFER_LOAD_DWORDX4 : MUBUF_Pseudo_Loads_Lds <
"buffer_load_dwordx4", v4i32, /*LDSPred=*/HasGFX950Insts
>;
-defm BUFFER_LOAD_LDS_B32 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_b32", i32
->;
-defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_format_x", f32
->;
-defm BUFFER_LOAD_LDS_I8 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_i8", i32
->;
-defm BUFFER_LOAD_LDS_I16 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_i16", i32
->;
-defm BUFFER_LOAD_LDS_U8 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_u8", i32
->;
-defm BUFFER_LOAD_LDS_U16 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_u16", i32
->;
-
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_8_global>;
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_zext_8_global>;
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_USHORT", i32, atomic_load_16_global>;
@@ -2648,12 +2610,6 @@ defm BUFFER_LOAD_SBYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x011, "buffe
defm BUFFER_LOAD_SSHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x013, "buffer_load_i16">;
defm BUFFER_LOAD_UBYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x010, "buffer_load_u8">;
defm BUFFER_LOAD_USHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x012, "buffer_load_u16">;
-defm BUFFER_LOAD_LDS_B32 : MUBUF_Real_AllAddr_gfx11<0x031, 0>;
-defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Real_AllAddr_gfx11<0x032, 0>;
-defm BUFFER_LOAD_LDS_I8 : MUBUF_Real_AllAddr_gfx11<0x02e, 0>;
-defm BUFFER_LOAD_LDS_I16 : MUBUF_Real_AllAddr_gfx11<0x030, 0>;
-defm BUFFER_LOAD_LDS_U8 : MUBUF_Real_AllAddr_gfx11<0x02d, 0>;
-defm BUFFER_LOAD_LDS_U16 : MUBUF_Real_AllAddr_gfx11<0x02f, 0>;
defm BUFFER_STORE_BYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x018, "buffer_store_b8">;
defm BUFFER_STORE_SHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x019, "buffer_store_b16">;
defm BUFFER_STORE_DWORD : MUBUF_Real_AllAddr_gfx11_gfx12<0x01A, "buffer_store_b32">;
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s b/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
index 6dfb23771301b..dfc017acfc570 100644
--- a/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
@@ -1324,351 +1324,6 @@ buffer_load_u16 v5, off, s[8:11], s3 offset:4095 dlc
buffer_load_u16 v5, off, s[8:11], s3 offset:4095 glc slc dlc
// GFX11: encoding: [0xff,0x7f,0x48,0xe0,0x00,0x05,0x02,0x03]
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_b32 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_b32 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_b32 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_b32 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_b32 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_b32 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_b32 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_b32 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 lds
-// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_format_x off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_format_x off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_format_x off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_format_x off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_format_x off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_format_x off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_format_x v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_format_x v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_i8 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_i8 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_i8 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_i8 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_i8 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_i8 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_i8 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_i8 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_i16 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_i16 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_i16 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_i16 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_i16 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_i16 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_i16 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_i16 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_u8 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_u8 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_u8 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_u8 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_u8 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_u8 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_u8 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_u8 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095 ...
[truncated]
|
@llvm/pr-subscribers-mc Author: Juan Manuel Martinez Caamaño (jmmartinez) ChangesAccording to the shader manual there are not buffer load lds instructions of gfx11. The tests for the regular Patch is 46.55 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/132916.diff 6 Files Affected:
diff --git a/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst b/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
index c3eb05bdbd291..85e9c47a5c97d 100644
--- a/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
+++ b/llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst
@@ -695,12 +695,6 @@ MUBUF
buffer_load_format_xyzw :ref:`vdst<amdgpu_synid_gfx11_vdst_f47754>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_i16 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_i8 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
- buffer_load_lds_b32 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_format_x :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_i16 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_i8 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_u16 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
- buffer_load_lds_u8 :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>`
buffer_load_sbyte :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_sbyte_d16 :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
buffer_load_sbyte_d16_hi :ref:`vdst<amdgpu_synid_gfx11_vdst_5d50a1>`, :ref:`vaddr<amdgpu_synid_gfx11_vaddr_b73dc0>`, :ref:`srsrc<amdgpu_synid_gfx11_srsrc_80eef6>`, :ref:`soffset<amdgpu_synid_gfx11_soffset_fef808>` :ref:`idxen<amdgpu_synid_idxen>` :ref:`offen<amdgpu_synid_offen>` :ref:`offset12<amdgpu_synid_buf_offset12>` :ref:`glc<amdgpu_synid_glc>` :ref:`slc<amdgpu_synid_slc>` :ref:`dlc<amdgpu_synid_dlc>` :ref:`tfe<amdgpu_synid_tfe>`
diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td
index f2686bdf56b41..f4edfe1387731 100644
--- a/llvm/lib/Target/AMDGPU/BUFInstructions.td
+++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td
@@ -588,25 +588,6 @@ multiclass MUBUF_Pseudo_Loads_Lds<string opName, ValueType load_vt = i32, Predic
}
-multiclass MUBUF_Pseudo_Loads_LDSOpc<string opName,
- ValueType load_vt = i32,
- bit TiedDest = 0,
- bit isLds = 0,
- bit isLdsOpc = 1> {
-
- defvar legal_load_vt = !if(!eq(!cast<string>(load_vt), !cast<string>(v3f16)), v4f16, load_vt);
-
- def _OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
- def _BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
-
- def _VBUFFER_OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
- def _VBUFFER_BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
-}
-
class MUBUF_Store_Pseudo <string opName,
int addrKind,
ValueType store_vt,
@@ -972,25 +953,6 @@ defm BUFFER_LOAD_DWORDX4 : MUBUF_Pseudo_Loads_Lds <
"buffer_load_dwordx4", v4i32, /*LDSPred=*/HasGFX950Insts
>;
-defm BUFFER_LOAD_LDS_B32 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_b32", i32
->;
-defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_format_x", f32
->;
-defm BUFFER_LOAD_LDS_I8 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_i8", i32
->;
-defm BUFFER_LOAD_LDS_I16 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_i16", i32
->;
-defm BUFFER_LOAD_LDS_U8 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_u8", i32
->;
-defm BUFFER_LOAD_LDS_U16 : MUBUF_Pseudo_Loads_LDSOpc <
- "buffer_load_lds_u16", i32
->;
-
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_8_global>;
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_zext_8_global>;
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_USHORT", i32, atomic_load_16_global>;
@@ -2648,12 +2610,6 @@ defm BUFFER_LOAD_SBYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x011, "buffe
defm BUFFER_LOAD_SSHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x013, "buffer_load_i16">;
defm BUFFER_LOAD_UBYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x010, "buffer_load_u8">;
defm BUFFER_LOAD_USHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x012, "buffer_load_u16">;
-defm BUFFER_LOAD_LDS_B32 : MUBUF_Real_AllAddr_gfx11<0x031, 0>;
-defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Real_AllAddr_gfx11<0x032, 0>;
-defm BUFFER_LOAD_LDS_I8 : MUBUF_Real_AllAddr_gfx11<0x02e, 0>;
-defm BUFFER_LOAD_LDS_I16 : MUBUF_Real_AllAddr_gfx11<0x030, 0>;
-defm BUFFER_LOAD_LDS_U8 : MUBUF_Real_AllAddr_gfx11<0x02d, 0>;
-defm BUFFER_LOAD_LDS_U16 : MUBUF_Real_AllAddr_gfx11<0x02f, 0>;
defm BUFFER_STORE_BYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x018, "buffer_store_b8">;
defm BUFFER_STORE_SHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x019, "buffer_store_b16">;
defm BUFFER_STORE_DWORD : MUBUF_Real_AllAddr_gfx11_gfx12<0x01A, "buffer_store_b32">;
diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s b/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
index 6dfb23771301b..dfc017acfc570 100644
--- a/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
+++ b/llvm/test/MC/AMDGPU/gfx11_asm_mubuf.s
@@ -1324,351 +1324,6 @@ buffer_load_u16 v5, off, s[8:11], s3 offset:4095 dlc
buffer_load_u16 v5, off, s[8:11], s3 offset:4095 glc slc dlc
// GFX11: encoding: [0xff,0x7f,0x48,0xe0,0x00,0x05,0x02,0x03]
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_b32 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_b32 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_b32 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_b32 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_b32 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_b32 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_b32 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_b32 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc4,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_b32 off, s[8:11], s3 lds
-// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_format_x off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_format_x off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_format_x off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_format_x off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_format_x off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_format_x off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_format_x v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_format_x v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc8,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_format_x off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_i8 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_i8 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_i8 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_i8 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_i8 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_i8 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_i8 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_i8 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb8,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i8 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xb8,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_i16 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_i16 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_i16 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_i16 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_i16 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_i16 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_i16 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_i16 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xc0,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 glc
-// GFX11: encoding: [0xff,0x4f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 slc
-// GFX11: encoding: [0xff,0x1f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 dlc
-// GFX11: encoding: [0xff,0x2f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_i16 off, s[8:11], s3 offset:4095 glc slc dlc
-// GFX11: encoding: [0xff,0x7f,0xc0,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[12:15], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x03,0x03]
-
-buffer_load_lds_u8 off, s[96:99], s3 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x18,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s101 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x65]
-
-buffer_load_lds_u8 off, s[8:11], m0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x7d]
-
-buffer_load_lds_u8 off, s[8:11], 0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0x80]
-
-buffer_load_lds_u8 off, s[8:11], -1 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xc1]
-
-buffer_load_lds_u8 off, s[8:11], 0.5 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xf0]
-
-buffer_load_lds_u8 off, s[8:11], -4.0 offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x02,0xf7]
-
-buffer_load_lds_u8 v0, s[8:11], s3 idxen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x82,0x03]
-
-buffer_load_lds_u8 v0, s[8:11], s3 offen offset:4095
-// GFX11: encoding: [0xff,0x0f,0xb4,0xe0,0x00,0x00,0x42,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3
-// GFX11: encoding: [0x00,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:0
-// GFX11: encoding: [0x00,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:7
-// GFX11: encoding: [0x07,0x00,0xb4,0xe0,0x00,0x00,0x02,0x03]
-
-buffer_load_lds_u8 off, s[8:11], s3 offset:4095 ...
[truncated]
|
Could you please move those into |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks.
According to the shader manual there are not buffer load lds instructions of gfx11.
The tests for the regular
buffer_load ... lds
instructions for gfx11 are already present in AMDGPU/gfx11_asm_mubuf.s, where the compiler fails to encode the instructions for this target.