[llvm] [AMDGPU] Simplify handling of renamed GFX12 image atomics. NFC. (PR #120776)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 20 09:30:17 PST 2024
https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/120776
None
>From 1eeb1076ab98c48bab678c36d4fcdb72c9fb4f6b Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Fri, 20 Dec 2024 17:24:01 +0000
Subject: [PATCH] [AMDGPU] Simplify handling of renamed GFX12 image atomics.
NFC.
---
llvm/lib/Target/AMDGPU/MIMGInstructions.td | 30 +++++-----------------
1 file changed, 7 insertions(+), 23 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/MIMGInstructions.td b/llvm/lib/Target/AMDGPU/MIMGInstructions.td
index a16a175dc94ab0..4722d3362f6a30 100644
--- a/llvm/lib/Target/AMDGPU/MIMGInstructions.td
+++ b/llvm/lib/Target/AMDGPU/MIMGInstructions.td
@@ -971,7 +971,7 @@ class MIMG_Atomic_nsa_gfx11<mimgopc op, string opcode,
}
class VIMAGE_Atomic_gfx12<mimgopc op, string opcode, RegisterClass DataRC,
- int num_addrs, bit enableDisasm = 0>
+ int num_addrs, string renamed, bit enableDisasm = 0>
: VIMAGE_gfx12<op.GFX12, (outs DataRC:$vdst), num_addrs,
!if(enableDisasm, "GFX12", "")> {
let Constraints = "$vdst = $vdata";
@@ -980,14 +980,10 @@ class VIMAGE_Atomic_gfx12<mimgopc op, string opcode, RegisterClass DataRC,
AddrIns,
(ins SReg_256:$rsrc, DMask:$dmask, Dim:$dim,
CPol:$cpol, R128A16:$r128, A16:$a16, TFE:$tfe));
- let AsmString = opcode#" $vdata, "#AddrAsm#", $rsrc$dmask$dim$cpol$r128$a16$tfe";
+ let AsmString = !if(!empty(renamed), opcode, renamed)#" $vdata, "#AddrAsm#
+ ", $rsrc$dmask$dim$cpol$r128$a16$tfe";
}
-class VIMAGE_Atomic_gfx12_Renamed<mimgopc op, string renamed,
- RegisterClass DataRC, int num_addrs,
- bit enableDisasm = 0>
- : VIMAGE_Atomic_gfx12<op, renamed, DataRC, num_addrs, enableDisasm>;
-
multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
RegisterClass data_rc,
bit enableDasm = 0,
@@ -1014,10 +1010,7 @@ multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
}
}
if op.HAS_GFX12 then {
- if !empty(renamed) then
- def _V1_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 1>;
- else
- def _V1_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, renamed, data_rc, 1>;
+ def _V1_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 1, renamed>;
}
}
let VAddrDwords = 2 in {
@@ -1039,10 +1032,7 @@ multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
}
}
if op.HAS_GFX12 then {
- if !empty(renamed) then
- def _V2_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 2, 0>;
- else
- def _V2_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, renamed, data_rc, 2, 0>;
+ def _V2_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 2, renamed>;
}
}
let VAddrDwords = 3 in {
@@ -1064,10 +1054,7 @@ multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
}
}
if op.HAS_GFX12 then {
- if !empty(renamed) then
- def _V3_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 3, 0>;
- else
- def _V3_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, renamed, data_rc, 3, 0>;
+ def _V3_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 3, renamed>;
}
}
let VAddrDwords = 4 in {
@@ -1089,10 +1076,7 @@ multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
}
}
if op.HAS_GFX12 then {
- if !empty(renamed) then
- def _V4_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 4, enableDasm>;
- else
- def _V4_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, renamed, data_rc, 4, enableDasm>;
+ def _V4_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 4, renamed, enableDasm>;
}
}
}
More information about the llvm-commits
mailing list