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