Skip to content

Commit db33978

Browse files
authored
[AMDGPU][GFX11] buffer_load_lds_{size} instructions do not exist (#132916)
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.
1 parent ba46c37 commit db33978

File tree

6 files changed

+0
-773
lines changed

6 files changed

+0
-773
lines changed

llvm/docs/AMDGPU/AMDGPUAsmGFX11.rst

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -695,12 +695,6 @@ MUBUF
695695
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>`
696696
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>`
697697
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>`
698-
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>`
699-
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>`
700-
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>`
701-
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>`
702-
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>`
703-
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>`
704698
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>`
705699
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>`
706700
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>`

llvm/lib/Target/AMDGPU/BUFInstructions.td

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -588,25 +588,6 @@ multiclass MUBUF_Pseudo_Loads_Lds<string opName, ValueType load_vt = i32, Predic
588588

589589
}
590590

591-
multiclass MUBUF_Pseudo_Loads_LDSOpc<string opName,
592-
ValueType load_vt = i32,
593-
bit TiedDest = 0,
594-
bit isLds = 0,
595-
bit isLdsOpc = 1> {
596-
597-
defvar legal_load_vt = !if(!eq(!cast<string>(load_vt), !cast<string>(v3f16)), v4f16, load_vt);
598-
599-
def _OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc>;
600-
def _OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
601-
def _IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
602-
def _BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc>;
603-
604-
def _VBUFFER_OFFSET : MUBUF_Load_Pseudo <opName, BUFAddrKind.Offset, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
605-
def _VBUFFER_OFFEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.OffEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
606-
def _VBUFFER_IDXEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.IdxEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
607-
def _VBUFFER_BOTHEN : MUBUF_Load_Pseudo <opName, BUFAddrKind.BothEn, legal_load_vt, TiedDest, isLds, isLdsOpc, 0, 1>;
608-
}
609-
610591
class MUBUF_Store_Pseudo <string opName,
611592
int addrKind,
612593
ValueType store_vt,
@@ -972,25 +953,6 @@ defm BUFFER_LOAD_DWORDX4 : MUBUF_Pseudo_Loads_Lds <
972953
"buffer_load_dwordx4", v4i32, /*LDSPred=*/HasGFX950Insts
973954
>;
974955

975-
defm BUFFER_LOAD_LDS_B32 : MUBUF_Pseudo_Loads_LDSOpc <
976-
"buffer_load_lds_b32", i32
977-
>;
978-
defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Pseudo_Loads_LDSOpc <
979-
"buffer_load_lds_format_x", f32
980-
>;
981-
defm BUFFER_LOAD_LDS_I8 : MUBUF_Pseudo_Loads_LDSOpc <
982-
"buffer_load_lds_i8", i32
983-
>;
984-
defm BUFFER_LOAD_LDS_I16 : MUBUF_Pseudo_Loads_LDSOpc <
985-
"buffer_load_lds_i16", i32
986-
>;
987-
defm BUFFER_LOAD_LDS_U8 : MUBUF_Pseudo_Loads_LDSOpc <
988-
"buffer_load_lds_u8", i32
989-
>;
990-
defm BUFFER_LOAD_LDS_U16 : MUBUF_Pseudo_Loads_LDSOpc <
991-
"buffer_load_lds_u16", i32
992-
>;
993-
994956
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_8_global>;
995957
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_UBYTE", i32, atomic_load_zext_8_global>;
996958
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
26482610
defm BUFFER_LOAD_SSHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x013, "buffer_load_i16">;
26492611
defm BUFFER_LOAD_UBYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x010, "buffer_load_u8">;
26502612
defm BUFFER_LOAD_USHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x012, "buffer_load_u16">;
2651-
defm BUFFER_LOAD_LDS_B32 : MUBUF_Real_AllAddr_gfx11<0x031, 0>;
2652-
defm BUFFER_LOAD_LDS_FORMAT_X : MUBUF_Real_AllAddr_gfx11<0x032, 0>;
2653-
defm BUFFER_LOAD_LDS_I8 : MUBUF_Real_AllAddr_gfx11<0x02e, 0>;
2654-
defm BUFFER_LOAD_LDS_I16 : MUBUF_Real_AllAddr_gfx11<0x030, 0>;
2655-
defm BUFFER_LOAD_LDS_U8 : MUBUF_Real_AllAddr_gfx11<0x02d, 0>;
2656-
defm BUFFER_LOAD_LDS_U16 : MUBUF_Real_AllAddr_gfx11<0x02f, 0>;
26572613
defm BUFFER_STORE_BYTE : MUBUF_Real_AllAddr_gfx11_gfx12<0x018, "buffer_store_b8">;
26582614
defm BUFFER_STORE_SHORT : MUBUF_Real_AllAddr_gfx11_gfx12<0x019, "buffer_store_b16">;
26592615
defm BUFFER_STORE_DWORD : MUBUF_Real_AllAddr_gfx11_gfx12<0x01A, "buffer_store_b32">;

0 commit comments

Comments
 (0)