Skip to content

Commit 4119042

Browse files
committed
[AMDGPU] Simplify EXP Real instruction definitions. NFC.
Pass the Pseudo (instead of its name) into EXP_Real_Row and EXP_Real_ComprVM since it is already available in all subclasses.
1 parent 5830d1a commit 4119042

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

llvm/lib/Target/AMDGPU/EXPInstructions.td

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,18 @@ class EXP_Pseudo<bit row, bit done>
3737
}
3838

3939
// Real instruction with optional asm operands "compr" and "vm".
40-
class EXP_Real_ComprVM<string pseudo, int subtarget, EXP_Pseudo ps = !cast<EXP_Pseudo>(pseudo)>
40+
class EXP_Real_ComprVM<EXP_Pseudo ps, int subtarget>
4141
: EXPCommon<0, ps.done, "exp$tgt $src0, $src1, $src2, $src3"
4242
#!if(ps.done, " done", "")#"$compr$vm">,
43-
SIMCInstr<pseudo, subtarget> {
43+
SIMCInstr<ps.PseudoInstr, subtarget> {
4444
let AsmMatchConverter = "cvtExp";
4545
}
4646

4747
// Real instruction with optional asm operand "row_en".
48-
class EXP_Real_Row<string pseudo, int subtarget, string name = "exp", EXP_Pseudo ps = !cast<EXP_Pseudo>(pseudo)>
48+
class EXP_Real_Row<EXP_Pseudo ps, int subtarget, string name = "exp">
4949
: EXPCommon<ps.row, ps.done, name#"$tgt $src0, $src1, $src2, $src3"
5050
#!if(ps.done, " done", "")#!if(ps.row, " row_en", "")>,
51-
SIMCInstr<pseudo, subtarget> {
51+
SIMCInstr<ps.PseudoInstr, subtarget> {
5252
let AsmMatchConverter = "cvtExp";
5353
}
5454

@@ -71,7 +71,7 @@ def EXP_ROW_DONE : EXP_Pseudo<1, 1>;
7171

7272
multiclass EXP_Real_si {
7373
defvar ps = !cast<EXP_Pseudo>(NAME);
74-
def _si : EXP_Real_ComprVM<NAME, SIEncodingFamily.SI>, EXPe_ComprVM {
74+
def _si : EXP_Real_ComprVM<ps, SIEncodingFamily.SI>, EXPe_ComprVM {
7575
let AssemblerPredicate = isGFX6GFX7;
7676
let DecoderNamespace = "GFX6GFX7";
7777
let done = ps.done;
@@ -80,7 +80,7 @@ multiclass EXP_Real_si {
8080

8181
multiclass EXP_Real_vi {
8282
defvar ps = !cast<EXP_Pseudo>(NAME);
83-
def _vi : EXP_Real_ComprVM<NAME, SIEncodingFamily.VI>, EXPe_vi {
83+
def _vi : EXP_Real_ComprVM<ps, SIEncodingFamily.VI>, EXPe_vi {
8484
let AssemblerPredicate = isGFX8GFX9;
8585
let SubtargetPredicate = isNotGFX90APlus;
8686
let DecoderNamespace = "GFX8";
@@ -90,7 +90,7 @@ multiclass EXP_Real_vi {
9090

9191
multiclass EXP_Real_gfx10 {
9292
defvar ps = !cast<EXP_Pseudo>(NAME);
93-
def _gfx10 : EXP_Real_ComprVM<NAME, SIEncodingFamily.GFX10>, EXPe_ComprVM {
93+
def _gfx10 : EXP_Real_ComprVM<ps, SIEncodingFamily.GFX10>, EXPe_ComprVM {
9494
let AssemblerPredicate = isGFX10Only;
9595
let DecoderNamespace = "GFX10";
9696
let done = ps.done;
@@ -106,7 +106,7 @@ defm EXP_DONE : EXP_Real_si, EXP_Real_vi, EXP_Real_gfx10;
106106

107107
multiclass EXP_Real_gfx11 {
108108
defvar ps = !cast<EXP_Pseudo>(NAME);
109-
def _gfx11 : EXP_Real_Row<NAME, SIEncodingFamily.GFX11>, EXPe_Row {
109+
def _gfx11 : EXP_Real_Row<ps, SIEncodingFamily.GFX11>, EXPe_Row {
110110
let AssemblerPredicate = isGFX11Only;
111111
let DecoderNamespace = "GFX11";
112112
let row = ps.row;
@@ -116,7 +116,7 @@ multiclass EXP_Real_gfx11 {
116116

117117
multiclass VEXPORT_Real_gfx12 {
118118
defvar ps = !cast<EXP_Pseudo>(NAME);
119-
def _gfx12 : EXP_Real_Row<NAME, SIEncodingFamily.GFX12, "export">,
119+
def _gfx12 : EXP_Real_Row<ps, SIEncodingFamily.GFX12, "export">,
120120
EXPe_Row, MnemonicAlias<"exp", "export">, Requires<[isGFX12Plus, HasExportInsts]> {
121121
let AssemblerPredicate = isGFX12Only;
122122
let DecoderNamespace = "GFX12";

0 commit comments

Comments
 (0)