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"
981ad6265SDimitry Andric #include "AMDGPUBaseInfo.h"
10e8d8bef9SDimitry Andric #include "SIDefines.h"
11e8d8bef9SDimitry Andric 
120b57cec5SDimitry Andric namespace llvm {
130b57cec5SDimitry Andric namespace AMDGPU {
1481ad6265SDimitry Andric 
1581ad6265SDimitry Andric namespace DepCtr {
1681ad6265SDimitry Andric 
1781ad6265SDimitry Andric // NOLINTBEGIN
1881ad6265SDimitry Andric const CustomOperandVal DepCtrInfo[] = {
1981ad6265SDimitry Andric   // Name               max dflt offset width  constraint
2081ad6265SDimitry Andric   {{"depctr_hold_cnt"},  1,   1,    7,    1,   isGFX10_BEncoding},
2181ad6265SDimitry Andric   {{"depctr_sa_sdst"},   1,   1,    0,    1},
2281ad6265SDimitry Andric   {{"depctr_va_vdst"},  15,  15,   12,    4},
2381ad6265SDimitry Andric   {{"depctr_va_sdst"},   7,   7,    9,    3},
2481ad6265SDimitry Andric   {{"depctr_va_ssrc"},   1,   1,    8,    1},
2581ad6265SDimitry Andric   {{"depctr_va_vcc"},    1,   1,    1,    1},
2681ad6265SDimitry Andric   {{"depctr_vm_vsrc"},   7,   7,    2,    3},
2781ad6265SDimitry Andric };
2881ad6265SDimitry Andric // NOLINTEND
2981ad6265SDimitry Andric 
3081ad6265SDimitry Andric const int DEP_CTR_SIZE =
3181ad6265SDimitry Andric     static_cast<int>(sizeof(DepCtrInfo) / sizeof(CustomOperandVal));
3281ad6265SDimitry Andric 
3381ad6265SDimitry Andric } // namespace DepCtr
3481ad6265SDimitry Andric 
350b57cec5SDimitry Andric namespace SendMsg {
360b57cec5SDimitry Andric 
3781ad6265SDimitry Andric // Disable lint checking for this block since it makes the table unreadable.
3881ad6265SDimitry Andric // NOLINTBEGIN
39*c9157d92SDimitry Andric // clang-format off
4081ad6265SDimitry Andric const CustomOperand<const MCSubtargetInfo &> Msg[] = {
4181ad6265SDimitry Andric   {{""}},
4281ad6265SDimitry Andric   {{"MSG_INTERRUPT"},           ID_INTERRUPT},
4381ad6265SDimitry Andric   {{"MSG_GS"},                  ID_GS_PreGFX11,             isNotGFX11Plus},
4481ad6265SDimitry Andric   {{"MSG_GS_DONE"},             ID_GS_DONE_PreGFX11,        isNotGFX11Plus},
4581ad6265SDimitry Andric   {{"MSG_SAVEWAVE"},            ID_SAVEWAVE,                isGFX8_GFX9_GFX10},
46*c9157d92SDimitry Andric   {{"MSG_STALL_WAVE_GEN"},      ID_STALL_WAVE_GEN,          isGFX9_GFX10_GFX11},
47*c9157d92SDimitry Andric   {{"MSG_HALT_WAVES"},          ID_HALT_WAVES,              isGFX9_GFX10_GFX11},
48fe013be4SDimitry Andric   {{"MSG_ORDERED_PS_DONE"},     ID_ORDERED_PS_DONE,         isGFX9_GFX10},
4981ad6265SDimitry Andric   {{"MSG_EARLY_PRIM_DEALLOC"},  ID_EARLY_PRIM_DEALLOC,      isGFX9_GFX10},
5081ad6265SDimitry Andric   {{"MSG_GS_ALLOC_REQ"},        ID_GS_ALLOC_REQ,            isGFX9Plus},
5181ad6265SDimitry Andric   {{"MSG_GET_DOORBELL"},        ID_GET_DOORBELL,            isGFX9_GFX10},
5281ad6265SDimitry Andric   {{"MSG_GET_DDID"},            ID_GET_DDID,                isGFX10},
5381ad6265SDimitry Andric   {{"MSG_HS_TESSFACTOR"},       ID_HS_TESSFACTOR_GFX11Plus, isGFX11Plus},
5481ad6265SDimitry Andric   {{"MSG_DEALLOC_VGPRS"},       ID_DEALLOC_VGPRS_GFX11Plus, isGFX11Plus},
5581ad6265SDimitry Andric   {{""}},
5681ad6265SDimitry Andric   {{"MSG_SYSMSG"},              ID_SYSMSG},
5781ad6265SDimitry Andric   {{"MSG_RTN_GET_DOORBELL"},    ID_RTN_GET_DOORBELL,        isGFX11Plus},
5881ad6265SDimitry Andric   {{"MSG_RTN_GET_DDID"},        ID_RTN_GET_DDID,            isGFX11Plus},
5981ad6265SDimitry Andric   {{"MSG_RTN_GET_TMA"},         ID_RTN_GET_TMA,             isGFX11Plus},
6081ad6265SDimitry Andric   {{"MSG_RTN_GET_REALTIME"},    ID_RTN_GET_REALTIME,        isGFX11Plus},
6181ad6265SDimitry Andric   {{"MSG_RTN_SAVE_WAVE"},       ID_RTN_SAVE_WAVE,           isGFX11Plus},
6281ad6265SDimitry Andric   {{"MSG_RTN_GET_TBA"},         ID_RTN_GET_TBA,             isGFX11Plus},
63*c9157d92SDimitry Andric   {{"MSG_RTN_GET_SE_AID_ID"},   ID_RTN_GET_SE_AID_ID,       isGFX12Plus},
640b57cec5SDimitry Andric };
65*c9157d92SDimitry Andric // clang-format on
6681ad6265SDimitry Andric // NOLINTEND
6781ad6265SDimitry Andric 
6881ad6265SDimitry Andric const int MSG_SIZE = static_cast<int>(
6981ad6265SDimitry Andric     sizeof(Msg) / sizeof(CustomOperand<const MCSubtargetInfo &>));
700b57cec5SDimitry Andric 
710b57cec5SDimitry Andric // These two must be in sync with llvm::AMDGPU::SendMsg::Op enum members, see SIDefines.h.
72fe6060f1SDimitry Andric const char *const OpSysSymbolic[OP_SYS_LAST_] = {
730b57cec5SDimitry Andric   nullptr,
740b57cec5SDimitry Andric   "SYSMSG_OP_ECC_ERR_INTERRUPT",
750b57cec5SDimitry Andric   "SYSMSG_OP_REG_RD",
760b57cec5SDimitry Andric   "SYSMSG_OP_HOST_TRAP_ACK",
770b57cec5SDimitry Andric   "SYSMSG_OP_TTRACE_PC"
780b57cec5SDimitry Andric };
790b57cec5SDimitry Andric 
80fe6060f1SDimitry Andric const char *const OpGsSymbolic[OP_GS_LAST_] = {
810b57cec5SDimitry Andric   "GS_OP_NOP",
820b57cec5SDimitry Andric   "GS_OP_CUT",
830b57cec5SDimitry Andric   "GS_OP_EMIT",
840b57cec5SDimitry Andric   "GS_OP_EMIT_CUT"
850b57cec5SDimitry Andric };
860b57cec5SDimitry Andric 
870b57cec5SDimitry Andric } // namespace SendMsg
880b57cec5SDimitry Andric 
890b57cec5SDimitry Andric namespace Hwreg {
900b57cec5SDimitry Andric 
9181ad6265SDimitry Andric // Disable lint checking for this block since it makes the table unreadable.
9281ad6265SDimitry Andric // NOLINTBEGIN
93*c9157d92SDimitry Andric // clang-format off
9481ad6265SDimitry Andric const CustomOperand<const MCSubtargetInfo &> Opr[] = {
9581ad6265SDimitry Andric   {{""}},
9681ad6265SDimitry Andric   {{"HW_REG_MODE"},          ID_MODE},
9781ad6265SDimitry Andric   {{"HW_REG_STATUS"},        ID_STATUS},
98*c9157d92SDimitry Andric   {{"HW_REG_TRAPSTS"},       ID_TRAPSTS,     isNotGFX12Plus},
9981ad6265SDimitry Andric   {{"HW_REG_HW_ID"},         ID_HW_ID,       isNotGFX10Plus},
10081ad6265SDimitry Andric   {{"HW_REG_GPR_ALLOC"},     ID_GPR_ALLOC},
10181ad6265SDimitry Andric   {{"HW_REG_LDS_ALLOC"},     ID_LDS_ALLOC},
10281ad6265SDimitry Andric   {{"HW_REG_IB_STS"},        ID_IB_STS},
10381ad6265SDimitry Andric   {{""}},
10481ad6265SDimitry Andric   {{""}},
105*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_DATA"},  ID_PERF_SNAPSHOT_DATA_gfx12,  isGFX12Plus},
106*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_PC_LO"}, ID_PERF_SNAPSHOT_PC_LO_gfx12, isGFX12Plus},
107*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_PC_HI"}, ID_PERF_SNAPSHOT_PC_HI_gfx12, isGFX12Plus},
10881ad6265SDimitry Andric   {{""}},
10981ad6265SDimitry Andric   {{""}},
110*c9157d92SDimitry Andric   {{"HW_REG_SH_MEM_BASES"},  ID_MEM_BASES,   isGFX9_GFX10_GFX11},
11181ad6265SDimitry Andric   {{"HW_REG_TBA_LO"},        ID_TBA_LO,      isGFX9_GFX10},
11281ad6265SDimitry Andric   {{"HW_REG_TBA_HI"},        ID_TBA_HI,      isGFX9_GFX10},
11381ad6265SDimitry Andric   {{"HW_REG_TMA_LO"},        ID_TMA_LO,      isGFX9_GFX10},
11481ad6265SDimitry Andric   {{"HW_REG_TMA_HI"},        ID_TMA_HI,      isGFX9_GFX10},
115*c9157d92SDimitry Andric   {{"HW_REG_FLAT_SCR_LO"},   ID_FLAT_SCR_LO, isGFX10_GFX11},
116*c9157d92SDimitry Andric   {{"HW_REG_FLAT_SCR_HI"},   ID_FLAT_SCR_HI, isGFX10_GFX11},
11781ad6265SDimitry Andric   {{"HW_REG_XNACK_MASK"},    ID_XNACK_MASK,  isGFX10Before1030},
11881ad6265SDimitry Andric   {{"HW_REG_HW_ID1"},        ID_HW_ID1,      isGFX10Plus},
11981ad6265SDimitry Andric   {{"HW_REG_HW_ID2"},        ID_HW_ID2,      isGFX10Plus},
12081ad6265SDimitry Andric   {{"HW_REG_POPS_PACKER"},   ID_POPS_PACKER, isGFX10},
12181ad6265SDimitry Andric   {{""}},
122*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_DATA"}, ID_PERF_SNAPSHOT_DATA_gfx11, isGFX11},
12381ad6265SDimitry Andric   {{""}},
124*c9157d92SDimitry Andric   {{"HW_REG_SHADER_CYCLES"},    ID_SHADER_CYCLES,    isGFX10_3_GFX11},
125*c9157d92SDimitry Andric   {{"HW_REG_SHADER_CYCLES_HI"}, ID_SHADER_CYCLES_HI, isGFX12Plus},
126*c9157d92SDimitry Andric   {{"HW_REG_DVGPR_ALLOC_LO"},   ID_DVGPR_ALLOC_LO,   isGFX12Plus},
127*c9157d92SDimitry Andric   {{"HW_REG_DVGPR_ALLOC_HI"},   ID_DVGPR_ALLOC_HI,   isGFX12Plus},
12881ad6265SDimitry Andric 
129*c9157d92SDimitry Andric   // Register numbers reused in GFX11
130*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_PC_LO"}, ID_PERF_SNAPSHOT_PC_LO_gfx11, isGFX11},
131*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_PC_HI"}, ID_PERF_SNAPSHOT_PC_HI_gfx11, isGFX11},
132*c9157d92SDimitry Andric 
133*c9157d92SDimitry Andric   // Register numbers reused in GFX12+
134*c9157d92SDimitry Andric   {{"HW_REG_STATE_PRIV"},          ID_STATE_PRIV,          isGFX12Plus},
135*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_DATA1"}, ID_PERF_SNAPSHOT_DATA1, isGFX12Plus},
136*c9157d92SDimitry Andric   {{"HW_REG_PERF_SNAPSHOT_DATA2"}, ID_PERF_SNAPSHOT_DATA2, isGFX12Plus},
137*c9157d92SDimitry Andric   {{"HW_REG_EXCP_FLAG_PRIV"},      ID_EXCP_FLAG_PRIV,      isGFX12Plus},
138*c9157d92SDimitry Andric   {{"HW_REG_EXCP_FLAG_USER"},      ID_EXCP_FLAG_USER,      isGFX12Plus},
139*c9157d92SDimitry Andric   {{"HW_REG_TRAP_CTRL"},           ID_TRAP_CTRL,           isGFX12Plus},
140*c9157d92SDimitry Andric   {{"HW_REG_SCRATCH_BASE_LO"},     ID_FLAT_SCR_LO,         isGFX12Plus},
141*c9157d92SDimitry Andric   {{"HW_REG_SCRATCH_BASE_HI"},     ID_FLAT_SCR_HI,         isGFX12Plus},
142*c9157d92SDimitry Andric   {{"HW_REG_SHADER_CYCLES_LO"},    ID_SHADER_CYCLES,       isGFX12Plus},
143fe013be4SDimitry Andric 
14481ad6265SDimitry Andric   // GFX940 specific registers
14581ad6265SDimitry Andric   {{"HW_REG_XCC_ID"},                 ID_XCC_ID,                 isGFX940},
14681ad6265SDimitry Andric   {{"HW_REG_SQ_PERF_SNAPSHOT_DATA"},  ID_SQ_PERF_SNAPSHOT_DATA,  isGFX940},
14781ad6265SDimitry Andric   {{"HW_REG_SQ_PERF_SNAPSHOT_DATA1"}, ID_SQ_PERF_SNAPSHOT_DATA1, isGFX940},
14881ad6265SDimitry Andric   {{"HW_REG_SQ_PERF_SNAPSHOT_PC_LO"}, ID_SQ_PERF_SNAPSHOT_PC_LO, isGFX940},
14981ad6265SDimitry Andric   {{"HW_REG_SQ_PERF_SNAPSHOT_PC_HI"}, ID_SQ_PERF_SNAPSHOT_PC_HI, isGFX940},
15081ad6265SDimitry Andric 
15181ad6265SDimitry Andric   // Aliases
15281ad6265SDimitry Andric   {{"HW_REG_HW_ID"},                  ID_HW_ID1,                 isGFX10},
1530b57cec5SDimitry Andric };
154*c9157d92SDimitry Andric // clang-format on
15581ad6265SDimitry Andric // NOLINTEND
15681ad6265SDimitry Andric 
15781ad6265SDimitry Andric const int OPR_SIZE = static_cast<int>(
15881ad6265SDimitry Andric     sizeof(Opr) / sizeof(CustomOperand<const MCSubtargetInfo &>));
1590b57cec5SDimitry Andric 
1600b57cec5SDimitry Andric } // namespace Hwreg
1610b57cec5SDimitry Andric 
162e8d8bef9SDimitry Andric namespace MTBUFFormat {
163e8d8bef9SDimitry Andric 
164e8d8bef9SDimitry Andric StringLiteral const DfmtSymbolic[] = {
165e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_INVALID",
166e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_8",
167e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_16",
168e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_8_8",
169e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_32",
170e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_16_16",
171e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_10_11_11",
172e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_11_11_10",
173e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_10_10_10_2",
174e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_2_10_10_10",
175e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_8_8_8_8",
176e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_32_32",
177e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_16_16_16_16",
178e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_32_32_32",
179e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_32_32_32_32",
180e8d8bef9SDimitry Andric   "BUF_DATA_FORMAT_RESERVED_15"
181e8d8bef9SDimitry Andric };
182e8d8bef9SDimitry Andric 
183e8d8bef9SDimitry Andric StringLiteral const NfmtSymbolicGFX10[] = {
184e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
185e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
186e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
187e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
188e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UINT",
189e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SINT",
190e8d8bef9SDimitry Andric   "",
191e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
192e8d8bef9SDimitry Andric };
193e8d8bef9SDimitry Andric 
194e8d8bef9SDimitry Andric StringLiteral const NfmtSymbolicSICI[] = {
195e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
196e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
197e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
198e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
199e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UINT",
200e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SINT",
201e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SNORM_OGL",
202e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
203e8d8bef9SDimitry Andric };
204e8d8bef9SDimitry Andric 
205e8d8bef9SDimitry Andric StringLiteral const NfmtSymbolicVI[] = {    // VI and GFX9
206e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UNORM",
207e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SNORM",
208e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_USCALED",
209e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SSCALED",
210e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_UINT",
211e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_SINT",
212e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_RESERVED_6",
213e8d8bef9SDimitry Andric   "BUF_NUM_FORMAT_FLOAT"
214e8d8bef9SDimitry Andric };
215e8d8bef9SDimitry Andric 
21681ad6265SDimitry Andric StringLiteral const UfmtSymbolicGFX10[] = {
217e8d8bef9SDimitry Andric   "BUF_FMT_INVALID",
218e8d8bef9SDimitry Andric 
219e8d8bef9SDimitry Andric   "BUF_FMT_8_UNORM",
220e8d8bef9SDimitry Andric   "BUF_FMT_8_SNORM",
221e8d8bef9SDimitry Andric   "BUF_FMT_8_USCALED",
222e8d8bef9SDimitry Andric   "BUF_FMT_8_SSCALED",
223e8d8bef9SDimitry Andric   "BUF_FMT_8_UINT",
224e8d8bef9SDimitry Andric   "BUF_FMT_8_SINT",
225e8d8bef9SDimitry Andric 
226e8d8bef9SDimitry Andric   "BUF_FMT_16_UNORM",
227e8d8bef9SDimitry Andric   "BUF_FMT_16_SNORM",
228e8d8bef9SDimitry Andric   "BUF_FMT_16_USCALED",
229e8d8bef9SDimitry Andric   "BUF_FMT_16_SSCALED",
230e8d8bef9SDimitry Andric   "BUF_FMT_16_UINT",
231e8d8bef9SDimitry Andric   "BUF_FMT_16_SINT",
232e8d8bef9SDimitry Andric   "BUF_FMT_16_FLOAT",
233e8d8bef9SDimitry Andric 
234e8d8bef9SDimitry Andric   "BUF_FMT_8_8_UNORM",
235e8d8bef9SDimitry Andric   "BUF_FMT_8_8_SNORM",
236e8d8bef9SDimitry Andric   "BUF_FMT_8_8_USCALED",
237e8d8bef9SDimitry Andric   "BUF_FMT_8_8_SSCALED",
238e8d8bef9SDimitry Andric   "BUF_FMT_8_8_UINT",
239e8d8bef9SDimitry Andric   "BUF_FMT_8_8_SINT",
240e8d8bef9SDimitry Andric 
241e8d8bef9SDimitry Andric   "BUF_FMT_32_UINT",
242e8d8bef9SDimitry Andric   "BUF_FMT_32_SINT",
243e8d8bef9SDimitry Andric   "BUF_FMT_32_FLOAT",
244e8d8bef9SDimitry Andric 
245e8d8bef9SDimitry Andric   "BUF_FMT_16_16_UNORM",
246e8d8bef9SDimitry Andric   "BUF_FMT_16_16_SNORM",
247e8d8bef9SDimitry Andric   "BUF_FMT_16_16_USCALED",
248e8d8bef9SDimitry Andric   "BUF_FMT_16_16_SSCALED",
249e8d8bef9SDimitry Andric   "BUF_FMT_16_16_UINT",
250e8d8bef9SDimitry Andric   "BUF_FMT_16_16_SINT",
251e8d8bef9SDimitry Andric   "BUF_FMT_16_16_FLOAT",
252e8d8bef9SDimitry Andric 
253e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_UNORM",
254e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_SNORM",
255e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_USCALED",
256e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_SSCALED",
257e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_UINT",
258e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_SINT",
259e8d8bef9SDimitry Andric   "BUF_FMT_10_11_11_FLOAT",
260e8d8bef9SDimitry Andric 
261e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_UNORM",
262e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_SNORM",
263e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_USCALED",
264e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_SSCALED",
265e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_UINT",
266e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_SINT",
267e8d8bef9SDimitry Andric   "BUF_FMT_11_11_10_FLOAT",
268e8d8bef9SDimitry Andric 
269e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_UNORM",
270e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_SNORM",
271e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_USCALED",
272e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_SSCALED",
273e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_UINT",
274e8d8bef9SDimitry Andric   "BUF_FMT_10_10_10_2_SINT",
275e8d8bef9SDimitry Andric 
276e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_UNORM",
277e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_SNORM",
278e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_USCALED",
279e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_SSCALED",
280e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_UINT",
281e8d8bef9SDimitry Andric   "BUF_FMT_2_10_10_10_SINT",
282e8d8bef9SDimitry Andric 
283e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_UNORM",
284e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_SNORM",
285e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_USCALED",
286e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_SSCALED",
287e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_UINT",
288e8d8bef9SDimitry Andric   "BUF_FMT_8_8_8_8_SINT",
289e8d8bef9SDimitry Andric 
290e8d8bef9SDimitry Andric   "BUF_FMT_32_32_UINT",
291e8d8bef9SDimitry Andric   "BUF_FMT_32_32_SINT",
292e8d8bef9SDimitry Andric   "BUF_FMT_32_32_FLOAT",
293e8d8bef9SDimitry Andric 
294e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_UNORM",
295e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_SNORM",
296e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_USCALED",
297e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_SSCALED",
298e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_UINT",
299e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_SINT",
300e8d8bef9SDimitry Andric   "BUF_FMT_16_16_16_16_FLOAT",
301e8d8bef9SDimitry Andric 
302e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_UINT",
303e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_SINT",
304e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_FLOAT",
305e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_32_UINT",
306e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_32_SINT",
307e8d8bef9SDimitry Andric   "BUF_FMT_32_32_32_32_FLOAT"
308e8d8bef9SDimitry Andric };
309e8d8bef9SDimitry Andric 
31081ad6265SDimitry Andric unsigned const DfmtNfmt2UFmtGFX10[] = {
311e8d8bef9SDimitry Andric   DFMT_INVALID     | (NFMT_UNORM   << NFMT_SHIFT),
312e8d8bef9SDimitry Andric 
313e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_UNORM   << NFMT_SHIFT),
314e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_SNORM   << NFMT_SHIFT),
315e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_USCALED << NFMT_SHIFT),
316e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_SSCALED << NFMT_SHIFT),
317e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_UINT    << NFMT_SHIFT),
318e8d8bef9SDimitry Andric   DFMT_8           | (NFMT_SINT    << NFMT_SHIFT),
319e8d8bef9SDimitry Andric 
320e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_UNORM   << NFMT_SHIFT),
321e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_SNORM   << NFMT_SHIFT),
322e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_USCALED << NFMT_SHIFT),
323e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_SSCALED << NFMT_SHIFT),
324e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_UINT    << NFMT_SHIFT),
325e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_SINT    << NFMT_SHIFT),
326e8d8bef9SDimitry Andric   DFMT_16          | (NFMT_FLOAT   << NFMT_SHIFT),
327e8d8bef9SDimitry Andric 
328e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_UNORM   << NFMT_SHIFT),
329e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_SNORM   << NFMT_SHIFT),
330e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_USCALED << NFMT_SHIFT),
331e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_SSCALED << NFMT_SHIFT),
332e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_UINT    << NFMT_SHIFT),
333e8d8bef9SDimitry Andric   DFMT_8_8         | (NFMT_SINT    << NFMT_SHIFT),
334e8d8bef9SDimitry Andric 
335e8d8bef9SDimitry Andric   DFMT_32          | (NFMT_UINT    << NFMT_SHIFT),
336e8d8bef9SDimitry Andric   DFMT_32          | (NFMT_SINT    << NFMT_SHIFT),
337e8d8bef9SDimitry Andric   DFMT_32          | (NFMT_FLOAT   << NFMT_SHIFT),
338e8d8bef9SDimitry Andric 
339e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_UNORM   << NFMT_SHIFT),
340e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_SNORM   << NFMT_SHIFT),
341e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_USCALED << NFMT_SHIFT),
342e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_SSCALED << NFMT_SHIFT),
343e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_UINT    << NFMT_SHIFT),
344e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_SINT    << NFMT_SHIFT),
345e8d8bef9SDimitry Andric   DFMT_16_16       | (NFMT_FLOAT   << NFMT_SHIFT),
346e8d8bef9SDimitry Andric 
347e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_UNORM   << NFMT_SHIFT),
348e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_SNORM   << NFMT_SHIFT),
349e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_USCALED << NFMT_SHIFT),
350e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_SSCALED << NFMT_SHIFT),
351e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_UINT    << NFMT_SHIFT),
352e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_SINT    << NFMT_SHIFT),
353e8d8bef9SDimitry Andric   DFMT_10_11_11    | (NFMT_FLOAT   << NFMT_SHIFT),
354e8d8bef9SDimitry Andric 
355e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_UNORM   << NFMT_SHIFT),
356e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_SNORM   << NFMT_SHIFT),
357e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_USCALED << NFMT_SHIFT),
358e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_SSCALED << NFMT_SHIFT),
359e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_UINT    << NFMT_SHIFT),
360e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_SINT    << NFMT_SHIFT),
361e8d8bef9SDimitry Andric   DFMT_11_11_10    | (NFMT_FLOAT   << NFMT_SHIFT),
362e8d8bef9SDimitry Andric 
363e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UNORM   << NFMT_SHIFT),
364e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SNORM   << NFMT_SHIFT),
365e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_USCALED << NFMT_SHIFT),
366e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SSCALED << NFMT_SHIFT),
367e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UINT    << NFMT_SHIFT),
368e8d8bef9SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SINT    << NFMT_SHIFT),
369e8d8bef9SDimitry Andric 
370e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UNORM   << NFMT_SHIFT),
371e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SNORM   << NFMT_SHIFT),
372e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_USCALED << NFMT_SHIFT),
373e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SSCALED << NFMT_SHIFT),
374e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UINT    << NFMT_SHIFT),
375e8d8bef9SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SINT    << NFMT_SHIFT),
376e8d8bef9SDimitry Andric 
377e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UNORM   << NFMT_SHIFT),
378e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SNORM   << NFMT_SHIFT),
379e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_USCALED << NFMT_SHIFT),
380e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SSCALED << NFMT_SHIFT),
381e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UINT    << NFMT_SHIFT),
382e8d8bef9SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SINT    << NFMT_SHIFT),
383e8d8bef9SDimitry Andric 
384e8d8bef9SDimitry Andric   DFMT_32_32       | (NFMT_UINT    << NFMT_SHIFT),
385e8d8bef9SDimitry Andric   DFMT_32_32       | (NFMT_SINT    << NFMT_SHIFT),
386e8d8bef9SDimitry Andric   DFMT_32_32       | (NFMT_FLOAT   << NFMT_SHIFT),
387e8d8bef9SDimitry Andric 
388e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UNORM   << NFMT_SHIFT),
389e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SNORM   << NFMT_SHIFT),
390e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_USCALED << NFMT_SHIFT),
391e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SSCALED << NFMT_SHIFT),
392e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UINT    << NFMT_SHIFT),
393e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SINT    << NFMT_SHIFT),
394e8d8bef9SDimitry Andric   DFMT_16_16_16_16 | (NFMT_FLOAT   << NFMT_SHIFT),
395e8d8bef9SDimitry Andric 
396e8d8bef9SDimitry Andric   DFMT_32_32_32    | (NFMT_UINT    << NFMT_SHIFT),
397e8d8bef9SDimitry Andric   DFMT_32_32_32    | (NFMT_SINT    << NFMT_SHIFT),
398e8d8bef9SDimitry Andric   DFMT_32_32_32    | (NFMT_FLOAT   << NFMT_SHIFT),
399e8d8bef9SDimitry Andric   DFMT_32_32_32_32 | (NFMT_UINT    << NFMT_SHIFT),
400e8d8bef9SDimitry Andric   DFMT_32_32_32_32 | (NFMT_SINT    << NFMT_SHIFT),
401e8d8bef9SDimitry Andric   DFMT_32_32_32_32 | (NFMT_FLOAT   << NFMT_SHIFT)
402e8d8bef9SDimitry Andric };
403e8d8bef9SDimitry Andric 
40481ad6265SDimitry Andric StringLiteral const UfmtSymbolicGFX11[] = {
40581ad6265SDimitry Andric   "BUF_FMT_INVALID",
40681ad6265SDimitry Andric 
40781ad6265SDimitry Andric   "BUF_FMT_8_UNORM",
40881ad6265SDimitry Andric   "BUF_FMT_8_SNORM",
40981ad6265SDimitry Andric   "BUF_FMT_8_USCALED",
41081ad6265SDimitry Andric   "BUF_FMT_8_SSCALED",
41181ad6265SDimitry Andric   "BUF_FMT_8_UINT",
41281ad6265SDimitry Andric   "BUF_FMT_8_SINT",
41381ad6265SDimitry Andric 
41481ad6265SDimitry Andric   "BUF_FMT_16_UNORM",
41581ad6265SDimitry Andric   "BUF_FMT_16_SNORM",
41681ad6265SDimitry Andric   "BUF_FMT_16_USCALED",
41781ad6265SDimitry Andric   "BUF_FMT_16_SSCALED",
41881ad6265SDimitry Andric   "BUF_FMT_16_UINT",
41981ad6265SDimitry Andric   "BUF_FMT_16_SINT",
42081ad6265SDimitry Andric   "BUF_FMT_16_FLOAT",
42181ad6265SDimitry Andric 
42281ad6265SDimitry Andric   "BUF_FMT_8_8_UNORM",
42381ad6265SDimitry Andric   "BUF_FMT_8_8_SNORM",
42481ad6265SDimitry Andric   "BUF_FMT_8_8_USCALED",
42581ad6265SDimitry Andric   "BUF_FMT_8_8_SSCALED",
42681ad6265SDimitry Andric   "BUF_FMT_8_8_UINT",
42781ad6265SDimitry Andric   "BUF_FMT_8_8_SINT",
42881ad6265SDimitry Andric 
42981ad6265SDimitry Andric   "BUF_FMT_32_UINT",
43081ad6265SDimitry Andric   "BUF_FMT_32_SINT",
43181ad6265SDimitry Andric   "BUF_FMT_32_FLOAT",
43281ad6265SDimitry Andric 
43381ad6265SDimitry Andric   "BUF_FMT_16_16_UNORM",
43481ad6265SDimitry Andric   "BUF_FMT_16_16_SNORM",
43581ad6265SDimitry Andric   "BUF_FMT_16_16_USCALED",
43681ad6265SDimitry Andric   "BUF_FMT_16_16_SSCALED",
43781ad6265SDimitry Andric   "BUF_FMT_16_16_UINT",
43881ad6265SDimitry Andric   "BUF_FMT_16_16_SINT",
43981ad6265SDimitry Andric   "BUF_FMT_16_16_FLOAT",
44081ad6265SDimitry Andric 
44181ad6265SDimitry Andric   "BUF_FMT_10_11_11_FLOAT",
44281ad6265SDimitry Andric 
44381ad6265SDimitry Andric   "BUF_FMT_11_11_10_FLOAT",
44481ad6265SDimitry Andric 
44581ad6265SDimitry Andric   "BUF_FMT_10_10_10_2_UNORM",
44681ad6265SDimitry Andric   "BUF_FMT_10_10_10_2_SNORM",
44781ad6265SDimitry Andric   "BUF_FMT_10_10_10_2_UINT",
44881ad6265SDimitry Andric   "BUF_FMT_10_10_10_2_SINT",
44981ad6265SDimitry Andric 
45081ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_UNORM",
45181ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_SNORM",
45281ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_USCALED",
45381ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_SSCALED",
45481ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_UINT",
45581ad6265SDimitry Andric   "BUF_FMT_2_10_10_10_SINT",
45681ad6265SDimitry Andric 
45781ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_UNORM",
45881ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_SNORM",
45981ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_USCALED",
46081ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_SSCALED",
46181ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_UINT",
46281ad6265SDimitry Andric   "BUF_FMT_8_8_8_8_SINT",
46381ad6265SDimitry Andric 
46481ad6265SDimitry Andric   "BUF_FMT_32_32_UINT",
46581ad6265SDimitry Andric   "BUF_FMT_32_32_SINT",
46681ad6265SDimitry Andric   "BUF_FMT_32_32_FLOAT",
46781ad6265SDimitry Andric 
46881ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_UNORM",
46981ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_SNORM",
47081ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_USCALED",
47181ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_SSCALED",
47281ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_UINT",
47381ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_SINT",
47481ad6265SDimitry Andric   "BUF_FMT_16_16_16_16_FLOAT",
47581ad6265SDimitry Andric 
47681ad6265SDimitry Andric   "BUF_FMT_32_32_32_UINT",
47781ad6265SDimitry Andric   "BUF_FMT_32_32_32_SINT",
47881ad6265SDimitry Andric   "BUF_FMT_32_32_32_FLOAT",
47981ad6265SDimitry Andric   "BUF_FMT_32_32_32_32_UINT",
48081ad6265SDimitry Andric   "BUF_FMT_32_32_32_32_SINT",
48181ad6265SDimitry Andric   "BUF_FMT_32_32_32_32_FLOAT"
48281ad6265SDimitry Andric };
48381ad6265SDimitry Andric 
48481ad6265SDimitry Andric unsigned const DfmtNfmt2UFmtGFX11[] = {
48581ad6265SDimitry Andric   DFMT_INVALID     | (NFMT_UNORM   << NFMT_SHIFT),
48681ad6265SDimitry Andric 
48781ad6265SDimitry Andric   DFMT_8           | (NFMT_UNORM   << NFMT_SHIFT),
48881ad6265SDimitry Andric   DFMT_8           | (NFMT_SNORM   << NFMT_SHIFT),
48981ad6265SDimitry Andric   DFMT_8           | (NFMT_USCALED << NFMT_SHIFT),
49081ad6265SDimitry Andric   DFMT_8           | (NFMT_SSCALED << NFMT_SHIFT),
49181ad6265SDimitry Andric   DFMT_8           | (NFMT_UINT    << NFMT_SHIFT),
49281ad6265SDimitry Andric   DFMT_8           | (NFMT_SINT    << NFMT_SHIFT),
49381ad6265SDimitry Andric 
49481ad6265SDimitry Andric   DFMT_16          | (NFMT_UNORM   << NFMT_SHIFT),
49581ad6265SDimitry Andric   DFMT_16          | (NFMT_SNORM   << NFMT_SHIFT),
49681ad6265SDimitry Andric   DFMT_16          | (NFMT_USCALED << NFMT_SHIFT),
49781ad6265SDimitry Andric   DFMT_16          | (NFMT_SSCALED << NFMT_SHIFT),
49881ad6265SDimitry Andric   DFMT_16          | (NFMT_UINT    << NFMT_SHIFT),
49981ad6265SDimitry Andric   DFMT_16          | (NFMT_SINT    << NFMT_SHIFT),
50081ad6265SDimitry Andric   DFMT_16          | (NFMT_FLOAT   << NFMT_SHIFT),
50181ad6265SDimitry Andric 
50281ad6265SDimitry Andric   DFMT_8_8         | (NFMT_UNORM   << NFMT_SHIFT),
50381ad6265SDimitry Andric   DFMT_8_8         | (NFMT_SNORM   << NFMT_SHIFT),
50481ad6265SDimitry Andric   DFMT_8_8         | (NFMT_USCALED << NFMT_SHIFT),
50581ad6265SDimitry Andric   DFMT_8_8         | (NFMT_SSCALED << NFMT_SHIFT),
50681ad6265SDimitry Andric   DFMT_8_8         | (NFMT_UINT    << NFMT_SHIFT),
50781ad6265SDimitry Andric   DFMT_8_8         | (NFMT_SINT    << NFMT_SHIFT),
50881ad6265SDimitry Andric 
50981ad6265SDimitry Andric   DFMT_32          | (NFMT_UINT    << NFMT_SHIFT),
51081ad6265SDimitry Andric   DFMT_32          | (NFMT_SINT    << NFMT_SHIFT),
51181ad6265SDimitry Andric   DFMT_32          | (NFMT_FLOAT   << NFMT_SHIFT),
51281ad6265SDimitry Andric 
51381ad6265SDimitry Andric   DFMT_16_16       | (NFMT_UNORM   << NFMT_SHIFT),
51481ad6265SDimitry Andric   DFMT_16_16       | (NFMT_SNORM   << NFMT_SHIFT),
51581ad6265SDimitry Andric   DFMT_16_16       | (NFMT_USCALED << NFMT_SHIFT),
51681ad6265SDimitry Andric   DFMT_16_16       | (NFMT_SSCALED << NFMT_SHIFT),
51781ad6265SDimitry Andric   DFMT_16_16       | (NFMT_UINT    << NFMT_SHIFT),
51881ad6265SDimitry Andric   DFMT_16_16       | (NFMT_SINT    << NFMT_SHIFT),
51981ad6265SDimitry Andric   DFMT_16_16       | (NFMT_FLOAT   << NFMT_SHIFT),
52081ad6265SDimitry Andric 
52181ad6265SDimitry Andric   DFMT_10_11_11    | (NFMT_FLOAT   << NFMT_SHIFT),
52281ad6265SDimitry Andric 
52381ad6265SDimitry Andric   DFMT_11_11_10    | (NFMT_FLOAT   << NFMT_SHIFT),
52481ad6265SDimitry Andric 
52581ad6265SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UNORM   << NFMT_SHIFT),
52681ad6265SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SNORM   << NFMT_SHIFT),
52781ad6265SDimitry Andric   DFMT_10_10_10_2  | (NFMT_UINT    << NFMT_SHIFT),
52881ad6265SDimitry Andric   DFMT_10_10_10_2  | (NFMT_SINT    << NFMT_SHIFT),
52981ad6265SDimitry Andric 
53081ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UNORM   << NFMT_SHIFT),
53181ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SNORM   << NFMT_SHIFT),
53281ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_USCALED << NFMT_SHIFT),
53381ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SSCALED << NFMT_SHIFT),
53481ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_UINT    << NFMT_SHIFT),
53581ad6265SDimitry Andric   DFMT_2_10_10_10  | (NFMT_SINT    << NFMT_SHIFT),
53681ad6265SDimitry Andric 
53781ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UNORM   << NFMT_SHIFT),
53881ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SNORM   << NFMT_SHIFT),
53981ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_USCALED << NFMT_SHIFT),
54081ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SSCALED << NFMT_SHIFT),
54181ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_UINT    << NFMT_SHIFT),
54281ad6265SDimitry Andric   DFMT_8_8_8_8     | (NFMT_SINT    << NFMT_SHIFT),
54381ad6265SDimitry Andric 
54481ad6265SDimitry Andric   DFMT_32_32       | (NFMT_UINT    << NFMT_SHIFT),
54581ad6265SDimitry Andric   DFMT_32_32       | (NFMT_SINT    << NFMT_SHIFT),
54681ad6265SDimitry Andric   DFMT_32_32       | (NFMT_FLOAT   << NFMT_SHIFT),
54781ad6265SDimitry Andric 
54881ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UNORM   << NFMT_SHIFT),
54981ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SNORM   << NFMT_SHIFT),
55081ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_USCALED << NFMT_SHIFT),
55181ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SSCALED << NFMT_SHIFT),
55281ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_UINT    << NFMT_SHIFT),
55381ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_SINT    << NFMT_SHIFT),
55481ad6265SDimitry Andric   DFMT_16_16_16_16 | (NFMT_FLOAT   << NFMT_SHIFT),
55581ad6265SDimitry Andric 
55681ad6265SDimitry Andric   DFMT_32_32_32    | (NFMT_UINT    << NFMT_SHIFT),
55781ad6265SDimitry Andric   DFMT_32_32_32    | (NFMT_SINT    << NFMT_SHIFT),
55881ad6265SDimitry Andric   DFMT_32_32_32    | (NFMT_FLOAT   << NFMT_SHIFT),
55981ad6265SDimitry Andric   DFMT_32_32_32_32 | (NFMT_UINT    << NFMT_SHIFT),
56081ad6265SDimitry Andric   DFMT_32_32_32_32 | (NFMT_SINT    << NFMT_SHIFT),
56181ad6265SDimitry Andric   DFMT_32_32_32_32 | (NFMT_FLOAT   << NFMT_SHIFT)
56281ad6265SDimitry Andric };
56381ad6265SDimitry Andric 
564e8d8bef9SDimitry Andric } // namespace MTBUFFormat
565e8d8bef9SDimitry Andric 
5660b57cec5SDimitry Andric namespace Swizzle {
5670b57cec5SDimitry Andric 
5680b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::Swizzle::Id enum members, see SIDefines.h.
5690b57cec5SDimitry Andric const char* const IdSymbolic[] = {
5700b57cec5SDimitry Andric   "QUAD_PERM",
5710b57cec5SDimitry Andric   "BITMASK_PERM",
5720b57cec5SDimitry Andric   "SWAP",
5730b57cec5SDimitry Andric   "REVERSE",
5740b57cec5SDimitry Andric   "BROADCAST",
5750b57cec5SDimitry Andric };
5760b57cec5SDimitry Andric 
5770b57cec5SDimitry Andric } // namespace Swizzle
5780b57cec5SDimitry Andric 
5790b57cec5SDimitry Andric namespace VGPRIndexMode {
5800b57cec5SDimitry Andric 
5810b57cec5SDimitry Andric // This must be in sync with llvm::AMDGPU::VGPRIndexMode::Id enum members, see SIDefines.h.
5820b57cec5SDimitry Andric const char* const IdSymbolic[] = {
5830b57cec5SDimitry Andric   "SRC0",
5840b57cec5SDimitry Andric   "SRC1",
5850b57cec5SDimitry Andric   "SRC2",
5860b57cec5SDimitry Andric   "DST",
5870b57cec5SDimitry Andric };
5880b57cec5SDimitry Andric 
5890b57cec5SDimitry Andric } // namespace VGPRIndexMode
5900b57cec5SDimitry Andric 
5910b57cec5SDimitry Andric } // namespace AMDGPU
5920b57cec5SDimitry Andric } // namespace llvm
593