forked from OSchip/llvm-project
[AMDGPU] Revert wide LDS DMA support.
This reverts ffbee7acdc
, see also bug 37653 which it was fixing.
The bug claims this is an undocumented feature which actually works.
In the reality it is documented as not working for a good reason.
It likely does something, but it is useless anyway. These instructions
write into the LDS. The LDS address is:
M0 + inst_offset + (TIDinWave * 4).
For a store wider than a DWORD neighboring lanes will overwrite each
other.
Differential Revision: https://reviews.llvm.org/D125409
This commit is contained in:
parent
5edd7665fd
commit
332b73fe12
|
@ -954,21 +954,6 @@ defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_DWORDX2", v2i32, load_global>;
|
|||
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_DWORDX3", v3i32, load_global>;
|
||||
defm : MUBUF_Pseudo_Load_Pats<"BUFFER_LOAD_DWORDX4", v4i32, load_global>;
|
||||
|
||||
// This is not described in AMD documentation,
|
||||
// but 'lds' versions of these opcodes are available
|
||||
// in at least GFX8+ chips. See Bug 37653.
|
||||
let SubtargetPredicate = isGFX8GFX9 in {
|
||||
defm BUFFER_LOAD_DWORDX2_LDS : MUBUF_Pseudo_Loads <
|
||||
"buffer_load_dwordx2", v2i32, 0, 1
|
||||
>;
|
||||
defm BUFFER_LOAD_DWORDX3_LDS : MUBUF_Pseudo_Loads <
|
||||
"buffer_load_dwordx3", v3i32, 0, 1
|
||||
>;
|
||||
defm BUFFER_LOAD_DWORDX4_LDS : MUBUF_Pseudo_Loads <
|
||||
"buffer_load_dwordx4", v4i32, 0, 1
|
||||
>;
|
||||
}
|
||||
|
||||
defm BUFFER_STORE_BYTE : MUBUF_Pseudo_Stores <
|
||||
"buffer_store_byte", i32, truncstorei8_global
|
||||
>;
|
||||
|
@ -2850,9 +2835,9 @@ defm BUFFER_LOAD_SBYTE : MUBUF_Real_AllAddr_Lds_vi <0x11>;
|
|||
defm BUFFER_LOAD_USHORT : MUBUF_Real_AllAddr_Lds_vi <0x12>;
|
||||
defm BUFFER_LOAD_SSHORT : MUBUF_Real_AllAddr_Lds_vi <0x13>;
|
||||
defm BUFFER_LOAD_DWORD : MUBUF_Real_AllAddr_Lds_vi <0x14>;
|
||||
defm BUFFER_LOAD_DWORDX2 : MUBUF_Real_AllAddr_Lds_vi <0x15>;
|
||||
defm BUFFER_LOAD_DWORDX3 : MUBUF_Real_AllAddr_Lds_vi <0x16>;
|
||||
defm BUFFER_LOAD_DWORDX4 : MUBUF_Real_AllAddr_Lds_vi <0x17>;
|
||||
defm BUFFER_LOAD_DWORDX2 : MUBUF_Real_AllAddr_vi <0x15>;
|
||||
defm BUFFER_LOAD_DWORDX3 : MUBUF_Real_AllAddr_vi <0x16>;
|
||||
defm BUFFER_LOAD_DWORDX4 : MUBUF_Real_AllAddr_vi <0x17>;
|
||||
defm BUFFER_STORE_BYTE : MUBUF_Real_AllAddr_vi <0x18>;
|
||||
defm BUFFER_STORE_BYTE_D16_HI : MUBUF_Real_AllAddr_vi <0x19>;
|
||||
defm BUFFER_STORE_SHORT : MUBUF_Real_AllAddr_vi <0x1a>;
|
||||
|
|
|
@ -843,18 +843,6 @@ buffer_store_lds_dword s[4:7], s8 offset:4 lds glc slc
|
|||
// NOSICI: error: instruction not supported on this GPU
|
||||
// VI: buffer_store_lds_dword s[4:7], s8 offset:4 lds glc slc ; encoding: [0x04,0x40,0xf7,0xe0,0x00,0x00,0x01,0x08]
|
||||
|
||||
buffer_load_dwordx2 off, s[4:7], s1 lds
|
||||
// NOSICI: error: operands are not valid for this GPU or mode
|
||||
// VI: buffer_load_dwordx2 off, s[4:7], s1 lds ; encoding: [0x00,0x00,0x55,0xe0,0x00,0x00,0x01,0x01]
|
||||
|
||||
buffer_load_dwordx3 off, s[4:7], s0 offset:4095 lds
|
||||
// NOSICI: error: not a valid operand
|
||||
// VI: buffer_load_dwordx3 off, s[4:7], s0 offset:4095 lds ; encoding: [0xff,0x0f,0x59,0xe0,0x00,0x00,0x01,0x00]
|
||||
|
||||
buffer_load_dwordx4 off, s[4:7], s1 lds
|
||||
// NOSICI: error: operands are not valid for this GPU or mode
|
||||
// VI: buffer_load_dwordx4 off, s[4:7], s1 lds ; encoding: [0x00,0x00,0x5d,0xe0,0x00,0x00,0x01,0x01]
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Errors handling
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue