From bdf52b5dfe4c9d1074e51cd432c5364d8e69462a Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Thu, 30 Mar 2023 17:31:33 +0100 Subject: [PATCH] [AMDGPU] Don't bother to use OffsetMode to define Real SMEM instructions Various Real classes took an OffsetMode parameter, but only used it to extract the suffix for the name of the corresponding pseudo. I found this confusing because you couldn't usefully define and use a different OffsetMode here, e.g. one with different operand types to affect how the instruction was printed. Overall I think it's simpler to just pass in the suffixed pseudo name directly. Differential Revision: https://reviews.llvm.org/D147242 --- llvm/lib/Target/AMDGPU/SMInstructions.td | 44 ++++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index 77a56f6..0bc608d 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -515,8 +515,8 @@ class SMEM_Real_vi op, SM_Pseudo ps> soffset{6-0}, ?); } -class SMEM_Real_Load_vi op, string ps, OffsetMode offsets> - : SMEM_Real_vi(ps # offsets.Variant)>; +class SMEM_Real_Load_vi op, string ps> + : SMEM_Real_vi(ps)>; // The alternative GFX9 SGPR encoding using soffset to encode the // offset register. Not available in assembler and goes to the GFX9 @@ -531,12 +531,12 @@ class SMEM_Real_SGPR_alt_gfx9 { multiclass SM_Real_Loads_vi op> { defvar ps = NAME; - def _IMM_vi : SMEM_Real_Load_vi ; - def _SGPR_vi : SMEM_Real_Load_vi ; - def _SGPR_alt_gfx9 : SMEM_Real_Load_vi , + def _IMM_vi : SMEM_Real_Load_vi ; + def _SGPR_vi : SMEM_Real_Load_vi ; + def _SGPR_alt_gfx9 : SMEM_Real_Load_vi , SMEM_Real_SGPR_alt_gfx9; let IsGFX9SpecificEncoding = true in - def _SGPR_IMM_gfx9 : SMEM_Real_Load_vi ; + def _SGPR_IMM_gfx9 : SMEM_Real_Load_vi ; } class SMEM_Real_Store_Base_vi op, SM_Pseudo ps> : SMEM_Real_vi { @@ -547,17 +547,17 @@ class SMEM_Real_Store_Base_vi op, SM_Pseudo ps> : SMEM_Real_vi let Inst{12-6} = !if(ps.has_sdst, sdata{6-0}, ?); } -class SMEM_Real_Store_vi op, string ps, OffsetMode offsets> - : SMEM_Real_Store_Base_vi (ps # offsets.Variant)>; +class SMEM_Real_Store_vi op, string ps> + : SMEM_Real_Store_Base_vi (ps)>; multiclass SM_Real_Stores_vi op> { defvar ps = NAME; - def _IMM_vi : SMEM_Real_Store_vi ; - def _SGPR_vi : SMEM_Real_Store_vi ; - def _SGPR_alt_gfx9 : SMEM_Real_Store_vi , + def _IMM_vi : SMEM_Real_Store_vi ; + def _SGPR_vi : SMEM_Real_Store_vi ; + def _SGPR_alt_gfx9 : SMEM_Real_Store_vi , SMEM_Real_SGPR_alt_gfx9; let IsGFX9SpecificEncoding = true in - def _SGPR_IMM_gfx9 : SMEM_Real_Store_vi ; + def _SGPR_IMM_gfx9 : SMEM_Real_Store_vi ; } multiclass SM_Real_Probe_vi op> { @@ -948,14 +948,14 @@ class SMEM_Real_gfx10 op, SM_Pseudo ps> let Inst{16} = !if(ps.has_glc, cpol{CPolBit.GLC}, ?); } -class SMEM_Real_Load_gfx10 op, string ps, OffsetMode offsets> - : SMEM_Real_gfx10(ps # offsets.Variant)>; +class SMEM_Real_Load_gfx10 op, string ps> + : SMEM_Real_gfx10(ps)>; multiclass SM_Real_Loads_gfx10 op> { defvar ps = NAME; - def _IMM_gfx10 : SMEM_Real_Load_gfx10; - def _SGPR_gfx10 : SMEM_Real_Load_gfx10; - def _SGPR_IMM_gfx10 : SMEM_Real_Load_gfx10; + def _IMM_gfx10 : SMEM_Real_Load_gfx10; + def _SGPR_gfx10 : SMEM_Real_Load_gfx10; + def _SGPR_IMM_gfx10 : SMEM_Real_Load_gfx10; } class SMEM_Real_Store_gfx10 op, SM_Pseudo ps> : SMEM_Real_gfx10 { @@ -1147,14 +1147,14 @@ class SMEM_Real_gfx11 op, SM_Pseudo ps, string opName = ps.Mnemonic> : let Inst{14} = !if(ps.has_glc, cpol{CPolBit.GLC}, 0); } -class SMEM_Real_Load_gfx11 op, string ps, string opName, OffsetMode offsets> : - SMEM_Real_gfx11(ps # offsets.Variant), opName>; +class SMEM_Real_Load_gfx11 op, string ps, string opName> : + SMEM_Real_gfx11(ps), opName>; multiclass SM_Real_Loads_gfx11 op, string ps> { defvar opName = !tolower(NAME); - def _IMM_gfx11 : SMEM_Real_Load_gfx11; - def _SGPR_gfx11 : SMEM_Real_Load_gfx11; - def _SGPR_IMM_gfx11 : SMEM_Real_Load_gfx11; + def _IMM_gfx11 : SMEM_Real_Load_gfx11; + def _SGPR_gfx11 : SMEM_Real_Load_gfx11; + def _SGPR_IMM_gfx11 : SMEM_Real_Load_gfx11; def : MnemonicAlias(ps#"_IMM").Mnemonic, opName>, Requires<[isGFX11Plus]>; } -- 2.7.4