From 5fc5c7ebe251a1ed8fa06cf4bea983492ba80111 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Fri, 10 Mar 2023 14:31:24 +0000 Subject: [PATCH] [AMDGPU] Make use of defvar in defining SMEM Real instructions --- llvm/lib/Target/AMDGPU/SMInstructions.td | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index 715d407..12e59ef 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -465,18 +465,16 @@ class SMRD_Real_si op, SM_Pseudo ps> let Inst{31-27} = 0x18; //encoding } -multiclass SM_Real_Loads_si op, string ps, - SM_Load_Pseudo immPs = !cast(ps#_IMM), - SM_Load_Pseudo sgprPs = !cast(ps#_SGPR)> { - +multiclass SM_Real_Loads_si op, string ps> { + defvar immPs = !cast(ps#_IMM); def _IMM_si : SMRD_Real_si { let InOperandList = (ins immPs.BaseClass:$sbase, smrd_offset_8:$offset, CPol:$cpol); } + defvar sgprPs = !cast(ps#_SGPR); def _SGPR_si : SMRD_Real_si { let InOperandList = (ins sgprPs.BaseClass:$sbase, SReg_32:$soffset, CPol:$cpol); } - } defm S_LOAD_DWORD : SM_Real_Loads_si <0x00, "S_LOAD_DWORD">; @@ -1000,19 +998,20 @@ class SMEM_Real_Store_gfx10 op, SM_Pseudo ps> : SMEM_Real_gfx10 let Inst{12-6} = !if(ps.has_sdst, sdata{6-0}, ?); } -multiclass SM_Real_Stores_gfx10 op, string ps, - SM_Store_Pseudo immPs = !cast(ps#_IMM), - SM_Store_Pseudo sgprPs = !cast(ps#_SGPR)> { +multiclass SM_Real_Stores_gfx10 op, string ps> { + defvar immPs = !cast(ps#_IMM); def _IMM_gfx10 : SMEM_Real_Store_gfx10 { let InOperandList = (ins immPs.SrcClass:$sdata, immPs.BaseClass:$sbase, smem_offset:$offset, CPol:$cpol); } + defvar sgprPs = !cast(ps#_SGPR); def _SGPR_gfx10 : SMEM_Real_Store_gfx10 { let InOperandList = (ins sgprPs.SrcClass:$sdata, sgprPs.BaseClass:$sbase, SReg_32:$soffset, CPol:$cpol); } - def _SGPR_IMM_gfx10 : SMEM_Real_Store_gfx10 (ps#_SGPR_IMM)> { - let InOperandList = (ins sgprPs.SrcClass:$sdata, sgprPs.BaseClass:$sbase, + defvar sgprImmPs = !cast(ps#_SGPR_IMM); + def _SGPR_IMM_gfx10 : SMEM_Real_Store_gfx10 { + let InOperandList = (ins sgprImmPs.SrcClass:$sdata, sgprImmPs.BaseClass:$sbase, SReg_32:$soffset, smem_offset_mod:$offset, CPol:$cpol); } } -- 2.7.4