Skip to content

[AMDGPU] Rename get_MUBUF_ps and use it for MTBUF too. NFC. #83991

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

Merged
merged 1 commit into from
Mar 5, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 17 additions & 20 deletions llvm/lib/Target/AMDGPU/BUFInstructions.td
Original file line number Diff line number Diff line change
Expand Up @@ -2431,10 +2431,10 @@ class VBUFFER_MTBUF_Real_gfx12<bits<4> op, MTBUF_Pseudo ps,
// MUBUF - GFX11, GFX12.
//===----------------------------------------------------------------------===//

// Shortcut to default Mnemonic from MUBUF_Pseudo. Hides the cast to the
// Shortcut to default Mnemonic from BUF_Pseudo. Hides the cast to the
// specific pseudo (bothen in this case) since any of them will work.
class get_MUBUF_ps<string name> {
string Mnemonic = !cast<MUBUF_Pseudo>(name # "_BOTHEN").Mnemonic;
class get_BUF_ps<string name> {
string Mnemonic = !cast<BUF_Pseudo>(name # "_BOTHEN").Mnemonic;
}

// gfx11 instruction that accept both old and new assembler name.
Expand Down Expand Up @@ -2487,14 +2487,14 @@ multiclass MUBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<bits<8> op, string real_n

// Non-renamed, non-atomic gfx11/gfx12 mubuf instructions.
multiclass MUBUF_Real_AllAddr_gfx11<bits<8> op, bit hasTFE = 1> :
MUBUF_Real_AllAddr_gfx11_Renamed_Impl<op, get_MUBUF_ps<NAME>.Mnemonic, hasTFE>;
MUBUF_Real_AllAddr_gfx11_Renamed_Impl<op, get_BUF_ps<NAME>.Mnemonic, hasTFE>;

multiclass MUBUF_Real_AllAddr_gfx11_gfx12<bits<8> op, bit hasTFE = 1> :
MUBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, get_MUBUF_ps<NAME>.Mnemonic, hasTFE>;
MUBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, get_BUF_ps<NAME>.Mnemonic, hasTFE>;

multiclass MUBUF_Real_AllAddr_gfx11_gfx12_Renamed<bits<8> op, string real_name> :
MUBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, real_name> {
def : Mnem_gfx11_gfx12<get_MUBUF_ps<NAME>.Mnemonic, real_name>;
def : Mnem_gfx11_gfx12<get_BUF_ps<NAME>.Mnemonic, real_name>;
}

class MUBUF_Real_Atomic_gfx11_impl<bits<8> op, string ps_name,
Expand Down Expand Up @@ -2538,32 +2538,32 @@ multiclass MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<bits<8> op, bit is_return,

// Non-renamed gfx11/gfx12 mubuf atomic.
multiclass MUBUF_Real_Atomic_gfx11_gfx12<bits<8> op> :
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 0, get_MUBUF_ps<NAME>.Mnemonic>,
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 1, get_MUBUF_ps<NAME>.Mnemonic>;
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 0, get_BUF_ps<NAME>.Mnemonic>,
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 1, get_BUF_ps<NAME>.Mnemonic>;

multiclass MUBUF_Real_Atomic_gfx12<bits<8> op> :
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 0, get_MUBUF_ps<NAME>.Mnemonic>,
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 1, get_MUBUF_ps<NAME>.Mnemonic>;
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 0, get_BUF_ps<NAME>.Mnemonic>,
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 1, get_BUF_ps<NAME>.Mnemonic>;

multiclass MUBUF_Real_Atomic_gfx11_Renamed<bits<8> op, string real_name> :
MUBUF_Real_Atomic_gfx11_Renamed_impl<op, 0, real_name>,
MUBUF_Real_Atomic_gfx11_Renamed_impl<op, 1, real_name> {
def : Mnem_gfx11_gfx12<get_MUBUF_ps<NAME>.Mnemonic, real_name>;
def : Mnem_gfx11_gfx12<get_BUF_ps<NAME>.Mnemonic, real_name>;
}

multiclass MUBUF_Real_Atomic_gfx11_gfx12_Renamed<bits<8> op, string real_name> :
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 0, real_name>,
MUBUF_Real_Atomic_gfx11_gfx12_Renamed_impl<op, 1, real_name> {
def : Mnem_gfx11_gfx12<get_MUBUF_ps<NAME>.Mnemonic, real_name>;
def : Mnem_gfx11_gfx12<get_BUF_ps<NAME>.Mnemonic, real_name>;
}

multiclass MUBUF_Real_Atomic_gfx11_gfx12_Renamed_gfx12_Renamed<bits<8> op, string gfx12_name, string gfx11_name> :
MUBUF_Real_Atomic_gfx11_Renamed_impl<op, 0, gfx11_name>,
MUBUF_Real_Atomic_gfx11_Renamed_impl<op, 1, gfx11_name>,
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 0, gfx12_name>,
MUBUF_Real_Atomic_gfx12_Renamed_impl<op, 1, gfx12_name> {
def : Mnem_gfx11<get_MUBUF_ps<NAME>.Mnemonic, gfx11_name>;
def : Mnem_gfx12<get_MUBUF_ps<NAME>.Mnemonic, gfx12_name>;
def : Mnem_gfx11<get_BUF_ps<NAME>.Mnemonic, gfx11_name>;
def : Mnem_gfx12<get_BUF_ps<NAME>.Mnemonic, gfx12_name>;
def : Mnem_gfx12<gfx11_name, gfx12_name>;
}

Expand Down Expand Up @@ -2944,17 +2944,14 @@ multiclass MTBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<bits<4> op, string real_n
VBUFFER_MTBUF_Real_gfx12<op, !cast<MTBUF_Pseudo>(NAME#"_VBUFFER_OFFSET"), real_name>;
}

multiclass MTBUF_Real_AllAddr_gfx11_gfx12_Impl<bits<4> op, MTBUF_Pseudo ps>
: MTBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, ps.Mnemonic>;
multiclass MTBUF_Real_AllAddr_gfx11_gfx12<bits<4> op>
: MTBUF_Real_AllAddr_gfx11_gfx12_Impl<op, !cast<MTBUF_Pseudo>(NAME#"_BOTHEN")>;
: MTBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, get_BUF_ps<NAME>.Mnemonic>;


class Pre_gfx11_MTBUF_Name <MTBUF_Pseudo ps, string real_name>
: MnemonicAlias<ps.Mnemonic, real_name>, Requires<[isGFX11Plus]>;
multiclass MTBUF_Real_AllAddr_gfx11_gfx12_Renamed<bits<4> op, string real_name>
: MTBUF_Real_AllAddr_gfx11_gfx12_Renamed_Impl<op, real_name> {
def : Pre_gfx11_MTBUF_Name<!cast<MTBUF_Pseudo>(NAME#"_BOTHEN"), real_name>;
defvar ps = get_BUF_ps<NAME>;
def : MnemonicAlias<ps.Mnemonic, real_name>, Requires<[isGFX11Plus]>;
}

defm TBUFFER_LOAD_FORMAT_D16_X : MTBUF_Real_AllAddr_gfx11_gfx12_Renamed<0x008, "tbuffer_load_d16_format_x">;
Expand Down