Skip to content

Commit a559de0

Browse files
committed
[AMDGPU] Simplify definition of SIbuffer_atomic_*. NFC.
1 parent dffd93b commit a559de0

File tree

1 file changed

+28
-46
lines changed

1 file changed

+28
-46
lines changed

llvm/lib/Target/AMDGPU/SIInstrInfo.td

Lines changed: 28 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -158,36 +158,18 @@ def SIbuffer_store_format_d16 : SDNode <"AMDGPUISD::BUFFER_STORE_FORMAT_D16",
158158
SDTBufferStore,
159159
[SDNPMayStore, SDNPMemOperand, SDNPHasChain]>;
160160

161-
class SDBufferAtomic<string opcode> : SDNode <opcode,
162-
SDTypeProfile<1, 8,
163-
[SDTCisVT<2, v4i32>, // rsrc
164-
SDTCisVT<3, i32>, // vindex(VGPR)
165-
SDTCisVT<4, i32>, // voffset(VGPR)
166-
SDTCisVT<5, i32>, // soffset(SGPR)
167-
SDTCisVT<6, i32>, // offset(imm)
168-
SDTCisVT<7, i32>, // cachepolicy(imm)
169-
SDTCisVT<8, i1>]>, // idxen(imm)
170-
[SDNPMemOperand, SDNPHasChain, SDNPMayLoad, SDNPMayStore]
171-
>;
172-
173-
def SIbuffer_atomic_swap : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SWAP">;
174-
def SIbuffer_atomic_add : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_ADD">;
175-
def SIbuffer_atomic_sub : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SUB">;
176-
def SIbuffer_atomic_smin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SMIN">;
177-
def SIbuffer_atomic_umin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_UMIN">;
178-
def SIbuffer_atomic_smax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SMAX">;
179-
def SIbuffer_atomic_umax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_UMAX">;
180-
def SIbuffer_atomic_and : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_AND">;
181-
def SIbuffer_atomic_or : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_OR">;
182-
def SIbuffer_atomic_xor : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_XOR">;
183-
def SIbuffer_atomic_inc : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_INC">;
184-
def SIbuffer_atomic_dec : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_DEC">;
185-
def SIbuffer_atomic_csub : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_CSUB">;
186-
def SIbuffer_atomic_fadd : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FADD">;
187-
def SIbuffer_atomic_fmin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FMIN">;
188-
def SIbuffer_atomic_fmax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FMAX">;
189-
190-
multiclass SDBufferAtomicNoRet {
161+
multiclass SDBufferAtomic<string opcode> {
162+
def "" : SDNode <opcode,
163+
SDTypeProfile<1, 8,
164+
[SDTCisVT<2, v4i32>, // rsrc
165+
SDTCisVT<3, i32>, // vindex(VGPR)
166+
SDTCisVT<4, i32>, // voffset(VGPR)
167+
SDTCisVT<5, i32>, // soffset(SGPR)
168+
SDTCisVT<6, i32>, // offset(imm)
169+
SDTCisVT<7, i32>, // cachepolicy(imm)
170+
SDTCisVT<8, i1>]>, // idxen(imm)
171+
[SDNPMemOperand, SDNPHasChain, SDNPMayLoad, SDNPMayStore]
172+
>;
191173
def "_noret" : PatFrag<
192174
(ops node:$vdata_in, node:$rsrc, node:$vindex, node:$voffset, node:$soffset,
193175
node:$offset, node:$cachepolicy, node:$idxen),
@@ -198,22 +180,22 @@ multiclass SDBufferAtomicNoRet {
198180
}
199181
}
200182

201-
defm SIbuffer_atomic_swap : SDBufferAtomicNoRet;
202-
defm SIbuffer_atomic_add : SDBufferAtomicNoRet;
203-
defm SIbuffer_atomic_sub : SDBufferAtomicNoRet;
204-
defm SIbuffer_atomic_smin : SDBufferAtomicNoRet;
205-
defm SIbuffer_atomic_umin : SDBufferAtomicNoRet;
206-
defm SIbuffer_atomic_smax : SDBufferAtomicNoRet;
207-
defm SIbuffer_atomic_umax : SDBufferAtomicNoRet;
208-
defm SIbuffer_atomic_and : SDBufferAtomicNoRet;
209-
defm SIbuffer_atomic_or : SDBufferAtomicNoRet;
210-
defm SIbuffer_atomic_xor : SDBufferAtomicNoRet;
211-
defm SIbuffer_atomic_inc : SDBufferAtomicNoRet;
212-
defm SIbuffer_atomic_dec : SDBufferAtomicNoRet;
213-
defm SIbuffer_atomic_csub : SDBufferAtomicNoRet;
214-
defm SIbuffer_atomic_fadd : SDBufferAtomicNoRet;
215-
defm SIbuffer_atomic_fmin : SDBufferAtomicNoRet;
216-
defm SIbuffer_atomic_fmax : SDBufferAtomicNoRet;
183+
defm SIbuffer_atomic_swap : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SWAP">;
184+
defm SIbuffer_atomic_add : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_ADD">;
185+
defm SIbuffer_atomic_sub : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SUB">;
186+
defm SIbuffer_atomic_smin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SMIN">;
187+
defm SIbuffer_atomic_umin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_UMIN">;
188+
defm SIbuffer_atomic_smax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_SMAX">;
189+
defm SIbuffer_atomic_umax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_UMAX">;
190+
defm SIbuffer_atomic_and : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_AND">;
191+
defm SIbuffer_atomic_or : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_OR">;
192+
defm SIbuffer_atomic_xor : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_XOR">;
193+
defm SIbuffer_atomic_inc : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_INC">;
194+
defm SIbuffer_atomic_dec : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_DEC">;
195+
defm SIbuffer_atomic_csub : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_CSUB">;
196+
defm SIbuffer_atomic_fadd : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FADD">;
197+
defm SIbuffer_atomic_fmin : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FMIN">;
198+
defm SIbuffer_atomic_fmax : SDBufferAtomic <"AMDGPUISD::BUFFER_ATOMIC_FMAX">;
217199

218200
def SIbuffer_atomic_cmpswap : SDNode <"AMDGPUISD::BUFFER_ATOMIC_CMPSWAP",
219201
SDTypeProfile<1, 9,

0 commit comments

Comments
 (0)