10b57cec5SDimitry Andric //===-- AMDGPUAsmUtils.cpp - AsmParser/InstPrinter common -----------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric #include "AMDGPUAsmUtils.h"
9af732203SDimitry Andric #include "SIDefines.h"
10af732203SDimitry Andric 
11af732203SDimitry Andric #include "llvm/ADT/StringRef.h"
120b57cec5SDimitry Andric 
130b57cec5SDimitry Andric namespace llvm {
140b57cec5SDimitry Andric namespace AMDGPU {
150b57cec5SDimitry Andric namespace SendMsg {
160b57cec5SDimitry Andric 
170b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::SendMsg::Id enum members, see SIDefines.h.
18*5f7ddb14SDimitry Andric const char *const IdSymbolic[ID_GAPS_LAST_] = {
190b57cec5SDimitry Andric   nullptr,
200b57cec5SDimitry Andric   "MSG_INTERRUPT",
210b57cec5SDimitry Andric   "MSG_GS",
220b57cec5SDimitry Andric   "MSG_GS_DONE",
23*5f7ddb14SDimitry Andric   "MSG_SAVEWAVE",
24*5f7ddb14SDimitry Andric   "MSG_STALL_WAVE_GEN",
25*5f7ddb14SDimitry Andric   "MSG_HALT_WAVES",
26*5f7ddb14SDimitry Andric   "MSG_ORDERED_PS_DONE",
27*5f7ddb14SDimitry Andric   "MSG_EARLY_PRIM_DEALLOC",
280b57cec5SDimitry Andric   "MSG_GS_ALLOC_REQ",
290b57cec5SDimitry Andric   "MSG_GET_DOORBELL",
30*5f7ddb14SDimitry Andric   "MSG_GET_DDID",
310b57cec5SDimitry Andric   nullptr,
320b57cec5SDimitry Andric   nullptr,
330b57cec5SDimitry Andric   nullptr,
340b57cec5SDimitry Andric   "MSG_SYSMSG"
350b57cec5SDimitry Andric };
360b57cec5SDimitry Andric 
370b57cec5SDimitry Andric // These two must be in sync with llvm::AMDGPU::SendMsg::Op enum members, see SIDefines.h.
38*5f7ddb14SDimitry Andric const char *const OpSysSymbolic[OP_SYS_LAST_] = {
390b57cec5SDimitry Andric   nullptr,
400b57cec5SDimitry Andric   "SYSMSG_OP_ECC_ERR_INTERRUPT",
410b57cec5SDimitry Andric   "SYSMSG_OP_REG_RD",
420b57cec5SDimitry Andric   "SYSMSG_OP_HOST_TRAP_ACK",
430b57cec5SDimitry Andric   "SYSMSG_OP_TTRACE_PC"
440b57cec5SDimitry Andric };
450b57cec5SDimitry Andric 
46*5f7ddb14SDimitry Andric const char *const OpGsSymbolic[OP_GS_LAST_] = {
470b57cec5SDimitry Andric   "GS_OP_NOP",
480b57cec5SDimitry Andric   "GS_OP_CUT",
490b57cec5SDimitry Andric   "GS_OP_EMIT",
500b57cec5SDimitry Andric   "GS_OP_EMIT_CUT"
510b57cec5SDimitry Andric };
520b57cec5SDimitry Andric 
530b57cec5SDimitry Andric } // namespace SendMsg
540b57cec5SDimitry Andric 
550b57cec5SDimitry Andric namespace Hwreg {
560b57cec5SDimitry Andric 
570b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::Hwreg::ID_SYMBOLIC_FIRST_/LAST_, see SIDefines.h.
580b57cec5SDimitry Andric const char* const IdSymbolic[] = {
590b57cec5SDimitry Andric   nullptr,
600b57cec5SDimitry Andric   "HW_REG_MODE",
610b57cec5SDimitry Andric   "HW_REG_STATUS",
620b57cec5SDimitry Andric   "HW_REG_TRAPSTS",
630b57cec5SDimitry Andric   "HW_REG_HW_ID",
640b57cec5SDimitry Andric   "HW_REG_GPR_ALLOC",
650b57cec5SDimitry Andric   "HW_REG_LDS_ALLOC",
660b57cec5SDimitry Andric   "HW_REG_IB_STS",
670b57cec5SDimitry Andric   nullptr,
680b57cec5SDimitry Andric   nullptr,
690b57cec5SDimitry Andric   nullptr,
700b57cec5SDimitry Andric   nullptr,
710b57cec5SDimitry Andric   nullptr,
720b57cec5SDimitry Andric   nullptr,
730b57cec5SDimitry Andric   nullptr,
740b57cec5SDimitry Andric   "HW_REG_SH_MEM_BASES",
750b57cec5SDimitry Andric   "HW_REG_TBA_LO",
760b57cec5SDimitry Andric   "HW_REG_TBA_HI",
770b57cec5SDimitry Andric   "HW_REG_TMA_LO",
780b57cec5SDimitry Andric   "HW_REG_TMA_HI",
790b57cec5SDimitry Andric   "HW_REG_FLAT_SCR_LO",
800b57cec5SDimitry Andric   "HW_REG_FLAT_SCR_HI",
810b57cec5SDimitry Andric   "HW_REG_XNACK_MASK",
820b57cec5SDimitry Andric   nullptr, // HW_ID1, no predictable values
830b57cec5SDimitry Andric   nullptr, // HW_ID2, no predictable values
845ffd83dbSDimitry Andric   "HW_REG_POPS_PACKER",
855ffd83dbSDimitry Andric   nullptr,
865ffd83dbSDimitry Andric   nullptr,
875ffd83dbSDimitry Andric   nullptr,
885ffd83dbSDimitry Andric   "HW_REG_SHADER_CYCLES"
890b57cec5SDimitry Andric };
900b57cec5SDimitry Andric 
910b57cec5SDimitry Andric } // namespace Hwreg
920b57cec5SDimitry Andric 
93af732203SDimitry Andric namespace MTBUFFormat {
94af732203SDimitry Andric 
95af732203SDimitry Andric StringLiteral const DfmtSymbolic[] = {
96af732203SDimitry Andric   "BUF_DATA_FORMAT_INVALID",
97af732203SDimitry Andric   "BUF_DATA_FORMAT_8",
98af732203SDimitry Andric   "BUF_DATA_FORMAT_16",
99af732203SDimitry Andric   "BUF_DATA_FORMAT_8_8",
100af732203SDimitry Andric   "BUF_DATA_FORMAT_32",
101af732203SDimitry Andric   "BUF_DATA_FORMAT_16_16",
102af732203SDimitry Andric   "BUF_DATA_FORMAT_10_11_11",
103af732203SDimitry Andric   "BUF_DATA_FORMAT_11_11_10",
104af732203SDimitry Andric   "BUF_DATA_FORMAT_10_10_10_2",
105af732203SDimitry Andric   "BUF_DATA_FORMAT_2_10_10_10",
106af732203SDimitry Andric   "BUF_DATA_FORMAT_8_8_8_8",
107af732203SDimitry Andric   "BUF_DATA_FORMAT_32_32",
108af732203SDimitry Andric   "BUF_DATA_FORMAT_16_16_16_16",
109af732203SDimitry Andric   "BUF_DATA_FORMAT_32_32_32",
110af732203SDimitry Andric   "BUF_DATA_FORMAT_32_32_32_32",
111af732203SDimitry Andric   "BUF_DATA_FORMAT_RESERVED_15"
112af732203SDimitry Andric };
113af732203SDimitry Andric 
114af732203SDimitry Andric StringLiteral const NfmtSymbolicGFX10[] = {
115af732203SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
116af732203SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
117af732203SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
118af732203SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
119af732203SDimitry Andric   "BUF_NUM_FORMAT_UINT",
120af732203SDimitry Andric   "BUF_NUM_FORMAT_SINT",
121af732203SDimitry Andric   "",
122af732203SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
123af732203SDimitry Andric };
124af732203SDimitry Andric 
125af732203SDimitry Andric StringLiteral const NfmtSymbolicSICI[] = {
126af732203SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
127af732203SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
128af732203SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
129af732203SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
130af732203SDimitry Andric   "BUF_NUM_FORMAT_UINT",
131af732203SDimitry Andric   "BUF_NUM_FORMAT_SINT",
132af732203SDimitry Andric   "BUF_NUM_FORMAT_SNORM_OGL",
133af732203SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
134af732203SDimitry Andric };
135af732203SDimitry Andric 
136af732203SDimitry Andric StringLiteral const NfmtSymbolicVI[] = {    // VI and GFX9
137af732203SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
138af732203SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
139af732203SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
140af732203SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
141af732203SDimitry Andric   "BUF_NUM_FORMAT_UINT",
142af732203SDimitry Andric   "BUF_NUM_FORMAT_SINT",
143af732203SDimitry Andric   "BUF_NUM_FORMAT_RESERVED_6",
144af732203SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
145af732203SDimitry Andric };
146af732203SDimitry Andric 
147af732203SDimitry Andric StringLiteral const UfmtSymbolic[] = {
148af732203SDimitry Andric   "BUF_FMT_INVALID",
149af732203SDimitry Andric 
150af732203SDimitry Andric   "BUF_FMT_8_UNORM",
151af732203SDimitry Andric   "BUF_FMT_8_SNORM",
152af732203SDimitry Andric   "BUF_FMT_8_USCALED",
153af732203SDimitry Andric   "BUF_FMT_8_SSCALED",
154af732203SDimitry Andric   "BUF_FMT_8_UINT",
155af732203SDimitry Andric   "BUF_FMT_8_SINT",
156af732203SDimitry Andric 
157af732203SDimitry Andric   "BUF_FMT_16_UNORM",
158af732203SDimitry Andric   "BUF_FMT_16_SNORM",
159af732203SDimitry Andric   "BUF_FMT_16_USCALED",
160af732203SDimitry Andric   "BUF_FMT_16_SSCALED",
161af732203SDimitry Andric   "BUF_FMT_16_UINT",
162af732203SDimitry Andric   "BUF_FMT_16_SINT",
163af732203SDimitry Andric   "BUF_FMT_16_FLOAT",
164af732203SDimitry Andric 
165af732203SDimitry Andric   "BUF_FMT_8_8_UNORM",
166af732203SDimitry Andric   "BUF_FMT_8_8_SNORM",
167af732203SDimitry Andric   "BUF_FMT_8_8_USCALED",
168af732203SDimitry Andric   "BUF_FMT_8_8_SSCALED",
169af732203SDimitry Andric   "BUF_FMT_8_8_UINT",
170af732203SDimitry Andric   "BUF_FMT_8_8_SINT",
171af732203SDimitry Andric 
172af732203SDimitry Andric   "BUF_FMT_32_UINT",
173af732203SDimitry Andric   "BUF_FMT_32_SINT",
174af732203SDimitry Andric   "BUF_FMT_32_FLOAT",
175af732203SDimitry Andric 
176af732203SDimitry Andric   "BUF_FMT_16_16_UNORM",
177af732203SDimitry Andric   "BUF_FMT_16_16_SNORM",
178af732203SDimitry Andric   "BUF_FMT_16_16_USCALED",
179af732203SDimitry Andric   "BUF_FMT_16_16_SSCALED",
180af732203SDimitry Andric   "BUF_FMT_16_16_UINT",
181af732203SDimitry Andric   "BUF_FMT_16_16_SINT",
182af732203SDimitry Andric   "BUF_FMT_16_16_FLOAT",
183af732203SDimitry Andric 
184af732203SDimitry Andric   "BUF_FMT_10_11_11_UNORM",
185af732203SDimitry Andric   "BUF_FMT_10_11_11_SNORM",
186af732203SDimitry Andric   "BUF_FMT_10_11_11_USCALED",
187af732203SDimitry Andric   "BUF_FMT_10_11_11_SSCALED",
188af732203SDimitry Andric   "BUF_FMT_10_11_11_UINT",
189af732203SDimitry Andric   "BUF_FMT_10_11_11_SINT",
190af732203SDimitry Andric   "BUF_FMT_10_11_11_FLOAT",
191af732203SDimitry Andric 
192af732203SDimitry Andric   "BUF_FMT_11_11_10_UNORM",
193af732203SDimitry Andric   "BUF_FMT_11_11_10_SNORM",
194af732203SDimitry Andric   "BUF_FMT_11_11_10_USCALED",
195af732203SDimitry Andric   "BUF_FMT_11_11_10_SSCALED",
196af732203SDimitry Andric   "BUF_FMT_11_11_10_UINT",
197af732203SDimitry Andric   "BUF_FMT_11_11_10_SINT",
198af732203SDimitry Andric   "BUF_FMT_11_11_10_FLOAT",
199af732203SDimitry Andric 
200af732203SDimitry Andric   "BUF_FMT_10_10_10_2_UNORM",
201af732203SDimitry Andric   "BUF_FMT_10_10_10_2_SNORM",
202af732203SDimitry Andric   "BUF_FMT_10_10_10_2_USCALED",
203af732203SDimitry Andric   "BUF_FMT_10_10_10_2_SSCALED",
204af732203SDimitry Andric   "BUF_FMT_10_10_10_2_UINT",
205af732203SDimitry Andric   "BUF_FMT_10_10_10_2_SINT",
206af732203SDimitry Andric 
207af732203SDimitry Andric   "BUF_FMT_2_10_10_10_UNORM",
208af732203SDimitry Andric   "BUF_FMT_2_10_10_10_SNORM",
209af732203SDimitry Andric   "BUF_FMT_2_10_10_10_USCALED",
210af732203SDimitry Andric   "BUF_FMT_2_10_10_10_SSCALED",
211af732203SDimitry Andric   "BUF_FMT_2_10_10_10_UINT",
212af732203SDimitry Andric   "BUF_FMT_2_10_10_10_SINT",
213af732203SDimitry Andric 
214af732203SDimitry Andric   "BUF_FMT_8_8_8_8_UNORM",
215af732203SDimitry Andric   "BUF_FMT_8_8_8_8_SNORM",
216af732203SDimitry Andric   "BUF_FMT_8_8_8_8_USCALED",
217af732203SDimitry Andric   "BUF_FMT_8_8_8_8_SSCALED",
218af732203SDimitry Andric   "BUF_FMT_8_8_8_8_UINT",
219af732203SDimitry Andric   "BUF_FMT_8_8_8_8_SINT",
220af732203SDimitry Andric 
221af732203SDimitry Andric   "BUF_FMT_32_32_UINT",
222af732203SDimitry Andric   "BUF_FMT_32_32_SINT",
223af732203SDimitry Andric   "BUF_FMT_32_32_FLOAT",
224af732203SDimitry Andric 
225af732203SDimitry Andric   "BUF_FMT_16_16_16_16_UNORM",
226af732203SDimitry Andric   "BUF_FMT_16_16_16_16_SNORM",
227af732203SDimitry Andric   "BUF_FMT_16_16_16_16_USCALED",
228af732203SDimitry Andric   "BUF_FMT_16_16_16_16_SSCALED",
229af732203SDimitry Andric   "BUF_FMT_16_16_16_16_UINT",
230af732203SDimitry Andric   "BUF_FMT_16_16_16_16_SINT",
231af732203SDimitry Andric   "BUF_FMT_16_16_16_16_FLOAT",
232af732203SDimitry Andric 
233af732203SDimitry Andric   "BUF_FMT_32_32_32_UINT",
234af732203SDimitry Andric   "BUF_FMT_32_32_32_SINT",
235af732203SDimitry Andric   "BUF_FMT_32_32_32_FLOAT",
236af732203SDimitry Andric   "BUF_FMT_32_32_32_32_UINT",
237af732203SDimitry Andric   "BUF_FMT_32_32_32_32_SINT",
238af732203SDimitry Andric   "BUF_FMT_32_32_32_32_FLOAT"
239af732203SDimitry Andric };
240af732203SDimitry Andric 
241af732203SDimitry Andric unsigned const DfmtNfmt2UFmt[] = {
242af732203SDimitry Andric   DFMT_INVALID     | (NFMT_UNORM   << NFMT_SHIFT),
243af732203SDimitry Andric 
244af732203SDimitry Andric   DFMT_8           | (NFMT_UNORM   << NFMT_SHIFT),
245af732203SDimitry Andric   DFMT_8           | (NFMT_SNORM   << NFMT_SHIFT),
246af732203SDimitry Andric   DFMT_8           | (NFMT_USCALED << NFMT_SHIFT),
247af732203SDimitry Andric   DFMT_8           | (NFMT_SSCALED << NFMT_SHIFT),
248af732203SDimitry Andric   DFMT_8           | (NFMT_UINT    << NFMT_SHIFT),
249af732203SDimitry Andric   DFMT_8           | (NFMT_SINT    << NFMT_SHIFT),
250af732203SDimitry Andric 
251af732203SDimitry Andric   DFMT_16          | (NFMT_UNORM   << NFMT_SHIFT),
252af732203SDimitry Andric   DFMT_16          | (NFMT_SNORM   << NFMT_SHIFT),
253af732203SDimitry Andric   DFMT_16          | (NFMT_USCALED << NFMT_SHIFT),
254af732203SDimitry Andric   DFMT_16          | (NFMT_SSCALED << NFMT_SHIFT),
255af732203SDimitry Andric   DFMT_16          | (NFMT_UINT    << NFMT_SHIFT),
256af732203SDimitry Andric   DFMT_16          | (NFMT_SINT    << NFMT_SHIFT),
257af732203SDimitry Andric   DFMT_16          | (NFMT_FLOAT   << NFMT_SHIFT),
258af732203SDimitry Andric 
259af732203SDimitry Andric   DFMT_8_8         | (NFMT_UNORM   << NFMT_SHIFT),
260af732203SDimitry Andric   DFMT_8_8         | (NFMT_SNORM   << NFMT_SHIFT),
261af732203SDimitry Andric   DFMT_8_8         | (NFMT_USCALED << NFMT_SHIFT),
262af732203SDimitry Andric   DFMT_8_8         | (NFMT_SSCALED << NFMT_SHIFT),
263af732203SDimitry Andric   DFMT_8_8         | (NFMT_UINT    << NFMT_SHIFT),
264af732203SDimitry Andric   DFMT_8_8         | (NFMT_SINT    << NFMT_SHIFT),
265af732203SDimitry Andric 
266af732203SDimitry Andric   DFMT_32          | (NFMT_UINT    << NFMT_SHIFT),
267af732203SDimitry Andric   DFMT_32          | (NFMT_SINT    << NFMT_SHIFT),
268af732203SDimitry Andric   DFMT_32          | (NFMT_FLOAT   << NFMT_SHIFT),
269af732203SDimitry Andric 
270af732203SDimitry Andric   DFMT_16_16       | (NFMT_UNORM   << NFMT_SHIFT),
271af732203SDimitry Andric   DFMT_16_16       | (NFMT_SNORM   << NFMT_SHIFT),
272af732203SDimitry Andric   DFMT_16_16       | (NFMT_USCALED << NFMT_SHIFT),
273af732203SDimitry Andric   DFMT_16_16       | (NFMT_SSCALED << NFMT_SHIFT),
274af732203SDimitry Andric   DFMT_16_16       | (NFMT_UINT    << NFMT_SHIFT),
275af732203SDimitry Andric   DFMT_16_16       | (NFMT_SINT    << NFMT_SHIFT),
276af732203SDimitry Andric   DFMT_16_16       | (NFMT_FLOAT   << NFMT_SHIFT),
277af732203SDimitry Andric 
278af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_UNORM   << NFMT_SHIFT),
279af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_SNORM   << NFMT_SHIFT),
280af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_USCALED << NFMT_SHIFT),
281af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_SSCALED << NFMT_SHIFT),
282af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_UINT    << NFMT_SHIFT),
283af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_SINT    << NFMT_SHIFT),
284af732203SDimitry Andric   DFMT_10_11_11    | (NFMT_FLOAT   << NFMT_SHIFT),
285af732203SDimitry Andric 
286af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_UNORM   << NFMT_SHIFT),
287af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_SNORM   << NFMT_SHIFT),
288af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_USCALED << NFMT_SHIFT),
289af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_SSCALED << NFMT_SHIFT),
290af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_UINT    << NFMT_SHIFT),
291af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_SINT    << NFMT_SHIFT),
292af732203SDimitry Andric   DFMT_11_11_10    | (NFMT_FLOAT   << NFMT_SHIFT),
293af732203SDimitry Andric 
294af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UNORM   << NFMT_SHIFT),
295af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SNORM   << NFMT_SHIFT),
296af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_USCALED << NFMT_SHIFT),
297af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SSCALED << NFMT_SHIFT),
298af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UINT    << NFMT_SHIFT),
299af732203SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SINT    << NFMT_SHIFT),
300af732203SDimitry Andric 
301af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UNORM   << NFMT_SHIFT),
302af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SNORM   << NFMT_SHIFT),
303af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_USCALED << NFMT_SHIFT),
304af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SSCALED << NFMT_SHIFT),
305af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UINT    << NFMT_SHIFT),
306af732203SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SINT    << NFMT_SHIFT),
307af732203SDimitry Andric 
308af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UNORM   << NFMT_SHIFT),
309af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SNORM   << NFMT_SHIFT),
310af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_USCALED << NFMT_SHIFT),
311af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SSCALED << NFMT_SHIFT),
312af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UINT    << NFMT_SHIFT),
313af732203SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SINT    << NFMT_SHIFT),
314af732203SDimitry Andric 
315af732203SDimitry Andric   DFMT_32_32       | (NFMT_UINT    << NFMT_SHIFT),
316af732203SDimitry Andric   DFMT_32_32       | (NFMT_SINT    << NFMT_SHIFT),
317af732203SDimitry Andric   DFMT_32_32       | (NFMT_FLOAT   << NFMT_SHIFT),
318af732203SDimitry Andric 
319af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UNORM   << NFMT_SHIFT),
320af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SNORM   << NFMT_SHIFT),
321af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_USCALED << NFMT_SHIFT),
322af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SSCALED << NFMT_SHIFT),
323af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UINT    << NFMT_SHIFT),
324af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SINT    << NFMT_SHIFT),
325af732203SDimitry Andric   DFMT_16_16_16_16 | (NFMT_FLOAT   << NFMT_SHIFT),
326af732203SDimitry Andric 
327af732203SDimitry Andric   DFMT_32_32_32    | (NFMT_UINT    << NFMT_SHIFT),
328af732203SDimitry Andric   DFMT_32_32_32    | (NFMT_SINT    << NFMT_SHIFT),
329af732203SDimitry Andric   DFMT_32_32_32    | (NFMT_FLOAT   << NFMT_SHIFT),
330af732203SDimitry Andric   DFMT_32_32_32_32 | (NFMT_UINT    << NFMT_SHIFT),
331af732203SDimitry Andric   DFMT_32_32_32_32 | (NFMT_SINT    << NFMT_SHIFT),
332af732203SDimitry Andric   DFMT_32_32_32_32 | (NFMT_FLOAT   << NFMT_SHIFT)
333af732203SDimitry Andric };
334af732203SDimitry Andric 
335af732203SDimitry Andric } // namespace MTBUFFormat
336af732203SDimitry Andric 
3370b57cec5SDimitry Andric namespace Swizzle {
3380b57cec5SDimitry Andric 
3390b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::Swizzle::Id enum members, see SIDefines.h.
3400b57cec5SDimitry Andric const char* const IdSymbolic[] = {
3410b57cec5SDimitry Andric   "QUAD_PERM",
3420b57cec5SDimitry Andric   "BITMASK_PERM",
3430b57cec5SDimitry Andric   "SWAP",
3440b57cec5SDimitry Andric   "REVERSE",
3450b57cec5SDimitry Andric   "BROADCAST",
3460b57cec5SDimitry Andric };
3470b57cec5SDimitry Andric 
3480b57cec5SDimitry Andric } // namespace Swizzle
3490b57cec5SDimitry Andric 
3500b57cec5SDimitry Andric namespace VGPRIndexMode {
3510b57cec5SDimitry Andric 
3520b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::VGPRIndexMode::Id enum members, see SIDefines.h.
3530b57cec5SDimitry Andric const char* const IdSymbolic[] = {
3540b57cec5SDimitry Andric   "SRC0",
3550b57cec5SDimitry Andric   "SRC1",
3560b57cec5SDimitry Andric   "SRC2",
3570b57cec5SDimitry Andric   "DST",
3580b57cec5SDimitry Andric };
3590b57cec5SDimitry Andric 
3600b57cec5SDimitry Andric } // namespace VGPRIndexMode
3610b57cec5SDimitry Andric 
3620b57cec5SDimitry Andric } // namespace AMDGPU
3630b57cec5SDimitry Andric } // namespace llvm
364