aco: remove buffer_load_lds instructions
They don't exist See https://github.com/llvm/llvm-project/pull/132916 Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14041 Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37716>
This commit is contained in:
@@ -555,10 +555,7 @@ emit_mubuf_instruction(asm_context& ctx, std::vector<uint32_t>& out, const Instr
|
||||
bool dlc = mubuf.cache.value & ac_dlc;
|
||||
|
||||
uint32_t encoding = (0b111000 << 26);
|
||||
if (ctx.gfx_level >= GFX11 && mubuf.lds) /* GFX11 has separate opcodes for LDS loads */
|
||||
opcode = opcode == 0 ? 0x32 : (opcode + 0x1d);
|
||||
else
|
||||
encoding |= (mubuf.lds ? 1 : 0) << 16;
|
||||
encoding |= (mubuf.lds ? 1 : 0) << 16;
|
||||
encoding |= opcode << 18;
|
||||
encoding |= (glc ? 1 : 0) << 14;
|
||||
if (ctx.gfx_level <= GFX10_3)
|
||||
|
||||
@@ -1761,12 +1761,6 @@ MUBUF = {
|
||||
("buffer_gl0_inv", op(gfx10=0x71, gfx11=0x2b, gfx12=-1)),
|
||||
("buffer_gl1_inv", op(gfx10=0x72, gfx11=0x2c, gfx12=-1)),
|
||||
("buffer_atomic_csub", op(gfx10=0x34, gfx11=0x37)), #GFX10.3+. seems glc must be set. buffer_atomic_csub_u32 in GFX11
|
||||
("buffer_load_lds_b32", op(gfx11=0x31, gfx12=-1)),
|
||||
("buffer_load_lds_format_x", op(gfx11=0x32, gfx12=-1)),
|
||||
("buffer_load_lds_i8", op(gfx11=0x2e, gfx12=-1)),
|
||||
("buffer_load_lds_i16", op(gfx11=0x30, gfx12=-1)),
|
||||
("buffer_load_lds_u8", op(gfx11=0x2d, gfx12=-1)),
|
||||
("buffer_load_lds_u16", op(gfx11=0x2f, gfx12=-1)),
|
||||
("buffer_atomic_add_f32", op(gfx11=0x56)),
|
||||
("buffer_atomic_pk_add_f16", op(gfx12=0x59)),
|
||||
("buffer_atomic_pk_add_bf16", op(gfx12=0x5a)),
|
||||
|
||||
@@ -630,45 +630,6 @@ BEGIN_TEST(assembler.mubuf)
|
||||
->mubuf()
|
||||
.tfe = true;
|
||||
|
||||
/* LDS */
|
||||
if (gfx == GFX11) {
|
||||
//~gfx11! buffer_load_lds_b32 off, s[32:35], 0 ; e0c40000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_dword, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
|
||||
//~gfx11! buffer_load_lds_i8 off, s[32:35], 0 ; e0b80000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_sbyte, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
|
||||
//~gfx11! buffer_load_lds_i16 off, s[32:35], 0 ; e0c00000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_sshort, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
|
||||
//~gfx11! buffer_load_lds_u8 off, s[32:35], 0 ; e0b40000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_ubyte, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
|
||||
//~gfx11! buffer_load_lds_u16 off, s[32:35], 0 ; e0bc0000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_ushort, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
|
||||
//~gfx11! buffer_load_lds_format_x off, s[32:35], 0 ; e0c80000 80080080
|
||||
bld.mubuf(aco_opcode::buffer_load_format_x, op_s4, Operand(v1), Operand::zero(), op_m0, 0,
|
||||
false)
|
||||
->mubuf()
|
||||
.lds = true;
|
||||
}
|
||||
|
||||
/* Stores */
|
||||
//~gfx11! buffer_store_b32 v10, off, s[32:35], s30 ; e0680000 1e080a80
|
||||
//~gfx12! buffer_store_b32 v10, off, s[32:35], s30 ; c406801e 0080400a 00000000
|
||||
|
||||
Reference in New Issue
Block a user