2495 lines
84 KiB
C
2495 lines
84 KiB
C
|
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "common/enum.h"
|
||
|
#include "common/types.h"
|
||
|
|
||
|
namespace Shader::Gcn {
|
||
|
|
||
|
enum class OpcodeSOP2 : u32 {
|
||
|
S_ADD_U32 = 0,
|
||
|
S_SUB_U32 = 1,
|
||
|
S_ADD_I32 = 2,
|
||
|
S_SUB_I32 = 3,
|
||
|
S_ADDC_U32 = 4,
|
||
|
S_SUBB_U32 = 5,
|
||
|
S_MIN_I32 = 6,
|
||
|
S_MIN_U32 = 7,
|
||
|
S_MAX_I32 = 8,
|
||
|
S_MAX_U32 = 9,
|
||
|
S_CSELECT_B32 = 10,
|
||
|
S_CSELECT_B64 = 11,
|
||
|
S_AND_B32 = 14,
|
||
|
S_AND_B64 = 15,
|
||
|
S_OR_B32 = 16,
|
||
|
S_OR_B64 = 17,
|
||
|
S_XOR_B32 = 18,
|
||
|
S_XOR_B64 = 19,
|
||
|
S_ANDN2_B32 = 20,
|
||
|
S_ANDN2_B64 = 21,
|
||
|
S_ORN2_B32 = 22,
|
||
|
S_ORN2_B64 = 23,
|
||
|
S_NAND_B32 = 24,
|
||
|
S_NAND_B64 = 25,
|
||
|
S_NOR_B32 = 26,
|
||
|
S_NOR_B64 = 27,
|
||
|
S_XNOR_B32 = 28,
|
||
|
S_XNOR_B64 = 29,
|
||
|
S_LSHL_B32 = 30,
|
||
|
S_LSHL_B64 = 31,
|
||
|
S_LSHR_B32 = 32,
|
||
|
S_LSHR_B64 = 33,
|
||
|
S_ASHR_I32 = 34,
|
||
|
S_ASHR_I64 = 35,
|
||
|
S_BFM_B32 = 36,
|
||
|
S_BFM_B64 = 37,
|
||
|
S_MUL_I32 = 38,
|
||
|
S_BFE_U32 = 39,
|
||
|
S_BFE_I32 = 40,
|
||
|
S_BFE_U64 = 41,
|
||
|
S_BFE_I64 = 42,
|
||
|
S_CBRANCH_G_FORK = 43,
|
||
|
S_ABSDIFF_I32 = 44,
|
||
|
|
||
|
OP_RANGE_SOP2 = S_ABSDIFF_I32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeSOPK : u32 {
|
||
|
S_MOVK_I32 = 0,
|
||
|
S_CMOVK_I32 = 2,
|
||
|
S_CMPK_EQ_I32 = 3,
|
||
|
S_CMPK_LG_I32 = 4,
|
||
|
S_CMPK_GT_I32 = 5,
|
||
|
S_CMPK_GE_I32 = 6,
|
||
|
S_CMPK_LT_I32 = 7,
|
||
|
S_CMPK_LE_I32 = 8,
|
||
|
S_CMPK_EQ_U32 = 9,
|
||
|
S_CMPK_LG_U32 = 10,
|
||
|
S_CMPK_GT_U32 = 11,
|
||
|
S_CMPK_GE_U32 = 12,
|
||
|
S_CMPK_LT_U32 = 13,
|
||
|
S_CMPK_LE_U32 = 14,
|
||
|
S_ADDK_I32 = 15,
|
||
|
S_MULK_I32 = 16,
|
||
|
S_CBRANCH_I_FORK = 17,
|
||
|
S_GETREG_B32 = 18,
|
||
|
S_SETREG_B32 = 19,
|
||
|
S_GETREG_REGRD_B32 = 20,
|
||
|
S_SETREG_IMM32_B32 = 21,
|
||
|
|
||
|
OP_RANGE_SOPK = S_SETREG_IMM32_B32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeSOP1 : u32 {
|
||
|
S_MOV_B32 = 3,
|
||
|
S_MOV_B64 = 4,
|
||
|
S_CMOV_B32 = 5,
|
||
|
S_CMOV_B64 = 6,
|
||
|
S_NOT_B32 = 7,
|
||
|
S_NOT_B64 = 8,
|
||
|
S_WQM_B32 = 9,
|
||
|
S_WQM_B64 = 10,
|
||
|
S_BREV_B32 = 11,
|
||
|
S_BREV_B64 = 12,
|
||
|
S_BCNT0_I32_B32 = 13,
|
||
|
S_BCNT0_I32_B64 = 14,
|
||
|
S_BCNT1_I32_B32 = 15,
|
||
|
S_BCNT1_I32_B64 = 16,
|
||
|
S_FF0_I32_B32 = 17,
|
||
|
S_FF0_I32_B64 = 18,
|
||
|
S_FF1_I32_B32 = 19,
|
||
|
S_FF1_I32_B64 = 20,
|
||
|
S_FLBIT_I32_B32 = 21,
|
||
|
S_FLBIT_I32_B64 = 22,
|
||
|
S_FLBIT_I32 = 23,
|
||
|
S_FLBIT_I32_I64 = 24,
|
||
|
S_SEXT_I32_I8 = 25,
|
||
|
S_SEXT_I32_I16 = 26,
|
||
|
S_BITSET0_B32 = 27,
|
||
|
S_BITSET0_B64 = 28,
|
||
|
S_BITSET1_B32 = 29,
|
||
|
S_BITSET1_B64 = 30,
|
||
|
S_GETPC_B64 = 31,
|
||
|
S_SETPC_B64 = 32,
|
||
|
S_SWAPPC_B64 = 33,
|
||
|
S_RFE_B64 = 34,
|
||
|
S_AND_SAVEEXEC_B64 = 36,
|
||
|
S_OR_SAVEEXEC_B64 = 37,
|
||
|
S_XOR_SAVEEXEC_B64 = 38,
|
||
|
S_ANDN2_SAVEEXEC_B64 = 39,
|
||
|
S_ORN2_SAVEEXEC_B64 = 40,
|
||
|
S_NAND_SAVEEXEC_B64 = 41,
|
||
|
S_NOR_SAVEEXEC_B64 = 42,
|
||
|
S_XNOR_SAVEEXEC_B64 = 43,
|
||
|
S_QUADMASK_B32 = 44,
|
||
|
S_QUADMASK_B64 = 45,
|
||
|
S_MOVRELS_B32 = 46,
|
||
|
S_MOVRELS_B64 = 47,
|
||
|
S_MOVRELD_B32 = 48,
|
||
|
S_MOVRELD_B64 = 49,
|
||
|
S_CBRANCH_JOIN = 50,
|
||
|
S_MOV_REGRD_B32 = 51,
|
||
|
S_ABS_I32 = 52,
|
||
|
S_MOV_FED_B32 = 53,
|
||
|
|
||
|
OP_RANGE_SOP1 = S_MOV_FED_B32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeSOPC : u32 {
|
||
|
S_CMP_EQ_I32 = 0,
|
||
|
S_CMP_LG_I32 = 1,
|
||
|
S_CMP_GT_I32 = 2,
|
||
|
S_CMP_GE_I32 = 3,
|
||
|
S_CMP_LT_I32 = 4,
|
||
|
S_CMP_LE_I32 = 5,
|
||
|
S_CMP_EQ_U32 = 6,
|
||
|
S_CMP_LG_U32 = 7,
|
||
|
S_CMP_GT_U32 = 8,
|
||
|
S_CMP_GE_U32 = 9,
|
||
|
S_CMP_LT_U32 = 10,
|
||
|
S_CMP_LE_U32 = 11,
|
||
|
S_BITCMP0_B32 = 12,
|
||
|
S_BITCMP1_B32 = 13,
|
||
|
S_BITCMP0_B64 = 14,
|
||
|
S_BITCMP1_B64 = 15,
|
||
|
S_SETVSKIP = 16,
|
||
|
|
||
|
OP_RANGE_SOPC = S_SETVSKIP + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeSOPP : u32 {
|
||
|
S_NOP = 0,
|
||
|
S_ENDPGM = 1,
|
||
|
S_BRANCH = 2,
|
||
|
S_CBRANCH_SCC0 = 4,
|
||
|
S_CBRANCH_SCC1 = 5,
|
||
|
S_CBRANCH_VCCZ = 6,
|
||
|
S_CBRANCH_VCCNZ = 7,
|
||
|
S_CBRANCH_EXECZ = 8,
|
||
|
S_CBRANCH_EXECNZ = 9,
|
||
|
S_BARRIER = 10,
|
||
|
S_SETKILL = 11,
|
||
|
S_WAITCNT = 12,
|
||
|
S_SETHALT = 13,
|
||
|
S_SLEEP = 14,
|
||
|
S_SETPRIO = 15,
|
||
|
S_SENDMSG = 16,
|
||
|
S_SENDMSGHALT = 17,
|
||
|
S_TRAP = 18,
|
||
|
S_ICACHE_INV = 19,
|
||
|
S_INCPERFLEVEL = 20,
|
||
|
S_DECPERFLEVEL = 21,
|
||
|
S_TTRACEDATA = 22,
|
||
|
S_CBRANCH_CDBGSYS = 23,
|
||
|
S_CBRANCH_CDBGUSER = 24,
|
||
|
S_CBRANCH_CDBGSYS_OR_USER = 25,
|
||
|
S_CBRANCH_CDBGSYS_AND_USER = 26,
|
||
|
|
||
|
OP_RANGE_SOPP = S_CBRANCH_CDBGSYS_AND_USER + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeSMRD : u32 {
|
||
|
S_LOAD_DWORD = 0,
|
||
|
S_LOAD_DWORDX2 = 1,
|
||
|
S_LOAD_DWORDX4 = 2,
|
||
|
S_LOAD_DWORDX8 = 3,
|
||
|
S_LOAD_DWORDX16 = 4,
|
||
|
S_BUFFER_LOAD_DWORD = 8,
|
||
|
S_BUFFER_LOAD_DWORDX2 = 9,
|
||
|
S_BUFFER_LOAD_DWORDX4 = 10,
|
||
|
S_BUFFER_LOAD_DWORDX8 = 11,
|
||
|
S_BUFFER_LOAD_DWORDX16 = 12,
|
||
|
S_DCACHE_INV_VOL = 29,
|
||
|
S_MEMTIME = 30,
|
||
|
S_DCACHE_INV = 31,
|
||
|
|
||
|
OP_RANGE_SMRD = S_DCACHE_INV + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeVOP2 : u32 {
|
||
|
V_CNDMASK_B32 = 0,
|
||
|
V_READLANE_B32 = 1,
|
||
|
V_WRITELANE_B32 = 2,
|
||
|
V_ADD_F32 = 3,
|
||
|
V_SUB_F32 = 4,
|
||
|
V_SUBREV_F32 = 5,
|
||
|
V_MAC_LEGACY_F32 = 6,
|
||
|
V_MUL_LEGACY_F32 = 7,
|
||
|
V_MUL_F32 = 8,
|
||
|
V_MUL_I32_I24 = 9,
|
||
|
V_MUL_HI_I32_I24 = 10,
|
||
|
V_MUL_U32_U24 = 11,
|
||
|
V_MUL_HI_U32_U24 = 12,
|
||
|
V_MIN_LEGACY_F32 = 13,
|
||
|
V_MAX_LEGACY_F32 = 14,
|
||
|
V_MIN_F32 = 15,
|
||
|
V_MAX_F32 = 16,
|
||
|
V_MIN_I32 = 17,
|
||
|
V_MAX_I32 = 18,
|
||
|
V_MIN_U32 = 19,
|
||
|
V_MAX_U32 = 20,
|
||
|
V_LSHR_B32 = 21,
|
||
|
V_LSHRREV_B32 = 22,
|
||
|
V_ASHR_I32 = 23,
|
||
|
V_ASHRREV_I32 = 24,
|
||
|
V_LSHL_B32 = 25,
|
||
|
V_LSHLREV_B32 = 26,
|
||
|
V_AND_B32 = 27,
|
||
|
V_OR_B32 = 28,
|
||
|
V_XOR_B32 = 29,
|
||
|
V_BFM_B32 = 30,
|
||
|
V_MAC_F32 = 31,
|
||
|
V_MADMK_F32 = 32,
|
||
|
V_MADAK_F32 = 33,
|
||
|
V_BCNT_U32_B32 = 34,
|
||
|
V_MBCNT_LO_U32_B32 = 35,
|
||
|
V_MBCNT_HI_U32_B32 = 36,
|
||
|
V_ADD_I32 = 37,
|
||
|
V_SUB_I32 = 38,
|
||
|
V_SUBREV_I32 = 39,
|
||
|
V_ADDC_U32 = 40,
|
||
|
V_SUBB_U32 = 41,
|
||
|
V_SUBBREV_U32 = 42,
|
||
|
V_LDEXP_F32 = 43,
|
||
|
V_CVT_PKACCUM_U8_F32 = 44,
|
||
|
V_CVT_PKNORM_I16_F32 = 45,
|
||
|
V_CVT_PKNORM_U16_F32 = 46,
|
||
|
V_CVT_PKRTZ_F16_F32 = 47,
|
||
|
V_CVT_PK_U16_U32 = 48,
|
||
|
V_CVT_PK_I16_I32 = 49,
|
||
|
|
||
|
OP_RANGE_VOP2 = V_CVT_PK_I16_I32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeVOP3 : u32 {
|
||
|
V_CMP_F_F32 = 0,
|
||
|
V_CMP_LT_F32 = 1,
|
||
|
V_CMP_EQ_F32 = 2,
|
||
|
V_CMP_LE_F32 = 3,
|
||
|
V_CMP_GT_F32 = 4,
|
||
|
V_CMP_LG_F32 = 5,
|
||
|
V_CMP_GE_F32 = 6,
|
||
|
V_CMP_O_F32 = 7,
|
||
|
V_CMP_U_F32 = 8,
|
||
|
V_CMP_NGE_F32 = 9,
|
||
|
V_CMP_NLG_F32 = 10,
|
||
|
V_CMP_NGT_F32 = 11,
|
||
|
V_CMP_NLE_F32 = 12,
|
||
|
V_CMP_NEQ_F32 = 13,
|
||
|
V_CMP_NLT_F32 = 14,
|
||
|
V_CMP_TRU_F32 = 15,
|
||
|
V_CMP_T_F32 = 15,
|
||
|
V_CMPX_F_F32 = 16,
|
||
|
V_CMPX_LT_F32 = 17,
|
||
|
V_CMPX_EQ_F32 = 18,
|
||
|
V_CMPX_LE_F32 = 19,
|
||
|
V_CMPX_GT_F32 = 20,
|
||
|
V_CMPX_LG_F32 = 21,
|
||
|
V_CMPX_GE_F32 = 22,
|
||
|
V_CMPX_O_F32 = 23,
|
||
|
V_CMPX_U_F32 = 24,
|
||
|
V_CMPX_NGE_F32 = 25,
|
||
|
V_CMPX_NLG_F32 = 26,
|
||
|
V_CMPX_NGT_F32 = 27,
|
||
|
V_CMPX_NLE_F32 = 28,
|
||
|
V_CMPX_NEQ_F32 = 29,
|
||
|
V_CMPX_NLT_F32 = 30,
|
||
|
V_CMPX_TRU_F32 = 31,
|
||
|
V_CMPX_T_F32 = 31,
|
||
|
V_CMP_F_F64 = 32,
|
||
|
V_CMP_LT_F64 = 33,
|
||
|
V_CMP_EQ_F64 = 34,
|
||
|
V_CMP_LE_F64 = 35,
|
||
|
V_CMP_GT_F64 = 36,
|
||
|
V_CMP_LG_F64 = 37,
|
||
|
V_CMP_GE_F64 = 38,
|
||
|
V_CMP_O_F64 = 39,
|
||
|
V_CMP_U_F64 = 40,
|
||
|
V_CMP_NGE_F64 = 41,
|
||
|
V_CMP_NLG_F64 = 42,
|
||
|
V_CMP_NGT_F64 = 43,
|
||
|
V_CMP_NLE_F64 = 44,
|
||
|
V_CMP_NEQ_F64 = 45,
|
||
|
V_CMP_NLT_F64 = 46,
|
||
|
V_CMP_TRU_F64 = 47,
|
||
|
V_CMP_T_F64 = 47,
|
||
|
V_CMPX_F_F64 = 48,
|
||
|
V_CMPX_LT_F64 = 49,
|
||
|
V_CMPX_EQ_F64 = 50,
|
||
|
V_CMPX_LE_F64 = 51,
|
||
|
V_CMPX_GT_F64 = 52,
|
||
|
V_CMPX_LG_F64 = 53,
|
||
|
V_CMPX_GE_F64 = 54,
|
||
|
V_CMPX_O_F64 = 55,
|
||
|
V_CMPX_U_F64 = 56,
|
||
|
V_CMPX_NGE_F64 = 57,
|
||
|
V_CMPX_NLG_F64 = 58,
|
||
|
V_CMPX_NGT_F64 = 59,
|
||
|
V_CMPX_NLE_F64 = 60,
|
||
|
V_CMPX_NEQ_F64 = 61,
|
||
|
V_CMPX_NLT_F64 = 62,
|
||
|
V_CMPX_TRU_F64 = 63,
|
||
|
V_CMPX_T_F64 = 63,
|
||
|
V_CMPS_F_F32 = 64,
|
||
|
V_CMPS_LT_F32 = 65,
|
||
|
V_CMPS_EQ_F32 = 66,
|
||
|
V_CMPS_LE_F32 = 67,
|
||
|
V_CMPS_GT_F32 = 68,
|
||
|
V_CMPS_LG_F32 = 69,
|
||
|
V_CMPS_GE_F32 = 70,
|
||
|
V_CMPS_O_F32 = 71,
|
||
|
V_CMPS_U_F32 = 72,
|
||
|
V_CMPS_NGE_F32 = 73,
|
||
|
V_CMPS_NLG_F32 = 74,
|
||
|
V_CMPS_NGT_F32 = 75,
|
||
|
V_CMPS_NLE_F32 = 76,
|
||
|
V_CMPS_NEQ_F32 = 77,
|
||
|
V_CMPS_NLT_F32 = 78,
|
||
|
V_CMPS_TRU_F32 = 79,
|
||
|
V_CMPS_T_F32 = 79,
|
||
|
V_CMPSX_F_F32 = 80,
|
||
|
V_CMPSX_LT_F32 = 81,
|
||
|
V_CMPSX_EQ_F32 = 82,
|
||
|
V_CMPSX_LE_F32 = 83,
|
||
|
V_CMPSX_GT_F32 = 84,
|
||
|
V_CMPSX_LG_F32 = 85,
|
||
|
V_CMPSX_GE_F32 = 86,
|
||
|
V_CMPSX_O_F32 = 87,
|
||
|
V_CMPSX_U_F32 = 88,
|
||
|
V_CMPSX_NGE_F32 = 89,
|
||
|
V_CMPSX_NLG_F32 = 90,
|
||
|
V_CMPSX_NGT_F32 = 91,
|
||
|
V_CMPSX_NLE_F32 = 92,
|
||
|
V_CMPSX_NEQ_F32 = 93,
|
||
|
V_CMPSX_NLT_F32 = 94,
|
||
|
V_CMPSX_TRU_F32 = 95,
|
||
|
V_CMPSX_T_F32 = 95,
|
||
|
V_CMPS_F_F64 = 96,
|
||
|
V_CMPS_LT_F64 = 97,
|
||
|
V_CMPS_EQ_F64 = 98,
|
||
|
V_CMPS_LE_F64 = 99,
|
||
|
V_CMPS_GT_F64 = 100,
|
||
|
V_CMPS_LG_F64 = 101,
|
||
|
V_CMPS_GE_F64 = 102,
|
||
|
V_CMPS_O_F64 = 103,
|
||
|
V_CMPS_U_F64 = 104,
|
||
|
V_CMPS_NGE_F64 = 105,
|
||
|
V_CMPS_NLG_F64 = 106,
|
||
|
V_CMPS_NGT_F64 = 107,
|
||
|
V_CMPS_NLE_F64 = 108,
|
||
|
V_CMPS_NEQ_F64 = 109,
|
||
|
V_CMPS_NLT_F64 = 110,
|
||
|
V_CMPS_TRU_F64 = 111,
|
||
|
V_CMPS_T_F64 = 111,
|
||
|
V_CMPSX_F_F64 = 112,
|
||
|
V_CMPSX_LT_F64 = 113,
|
||
|
V_CMPSX_EQ_F64 = 114,
|
||
|
V_CMPSX_LE_F64 = 115,
|
||
|
V_CMPSX_GT_F64 = 116,
|
||
|
V_CMPSX_LG_F64 = 117,
|
||
|
V_CMPSX_GE_F64 = 118,
|
||
|
V_CMPSX_O_F64 = 119,
|
||
|
V_CMPSX_U_F64 = 120,
|
||
|
V_CMPSX_NGE_F64 = 121,
|
||
|
V_CMPSX_NLG_F64 = 122,
|
||
|
V_CMPSX_NGT_F64 = 123,
|
||
|
V_CMPSX_NLE_F64 = 124,
|
||
|
V_CMPSX_NEQ_F64 = 125,
|
||
|
V_CMPSX_NLT_F64 = 126,
|
||
|
V_CMPSX_TRU_F64 = 127,
|
||
|
V_CMPSX_T_F64 = 127,
|
||
|
V_CMP_F_I32 = 128,
|
||
|
V_CMP_LT_I32 = 129,
|
||
|
V_CMP_EQ_I32 = 130,
|
||
|
V_CMP_LE_I32 = 131,
|
||
|
V_CMP_GT_I32 = 132,
|
||
|
V_CMP_LG_I32 = 133,
|
||
|
V_CMP_NE_I32 = 133,
|
||
|
V_CMP_GE_I32 = 134,
|
||
|
V_CMP_TRU_I32 = 135,
|
||
|
V_CMP_T_I32 = 135,
|
||
|
V_CMP_CLASS_F32 = 136,
|
||
|
V_CMPX_F_I32 = 144,
|
||
|
V_CMPX_LT_I32 = 145,
|
||
|
V_CMPX_EQ_I32 = 146,
|
||
|
V_CMPX_LE_I32 = 147,
|
||
|
V_CMPX_GT_I32 = 148,
|
||
|
V_CMPX_LG_I32 = 149,
|
||
|
V_CMPX_NE_I32 = 149,
|
||
|
V_CMPX_GE_I32 = 150,
|
||
|
V_CMPX_TRU_I32 = 151,
|
||
|
V_CMPX_T_I32 = 151,
|
||
|
V_CMPX_CLASS_F32 = 152,
|
||
|
V_CMP_F_I64 = 160,
|
||
|
V_CMP_LT_I64 = 161,
|
||
|
V_CMP_EQ_I64 = 162,
|
||
|
V_CMP_LE_I64 = 163,
|
||
|
V_CMP_GT_I64 = 164,
|
||
|
V_CMP_LG_I64 = 165,
|
||
|
V_CMP_NE_I64 = 165,
|
||
|
V_CMP_GE_I64 = 166,
|
||
|
V_CMP_TRU_I64 = 167,
|
||
|
V_CMP_T_I64 = 167,
|
||
|
V_CMP_CLASS_F64 = 168,
|
||
|
V_CMPX_F_I64 = 176,
|
||
|
V_CMPX_LT_I64 = 177,
|
||
|
V_CMPX_EQ_I64 = 178,
|
||
|
V_CMPX_LE_I64 = 179,
|
||
|
V_CMPX_GT_I64 = 180,
|
||
|
V_CMPX_LG_I64 = 181,
|
||
|
V_CMPX_NE_I64 = 181,
|
||
|
V_CMPX_GE_I64 = 182,
|
||
|
V_CMPX_TRU_I64 = 183,
|
||
|
V_CMPX_T_I64 = 183,
|
||
|
V_CMPX_CLASS_F64 = 184,
|
||
|
V_CMP_F_U32 = 192,
|
||
|
V_CMP_LT_U32 = 193,
|
||
|
V_CMP_EQ_U32 = 194,
|
||
|
V_CMP_LE_U32 = 195,
|
||
|
V_CMP_GT_U32 = 196,
|
||
|
V_CMP_LG_U32 = 197,
|
||
|
V_CMP_NE_U32 = 197,
|
||
|
V_CMP_GE_U32 = 198,
|
||
|
V_CMP_TRU_U32 = 199,
|
||
|
V_CMP_T_U32 = 199,
|
||
|
V_CMPX_F_U32 = 208,
|
||
|
V_CMPX_LT_U32 = 209,
|
||
|
V_CMPX_EQ_U32 = 210,
|
||
|
V_CMPX_LE_U32 = 211,
|
||
|
V_CMPX_GT_U32 = 212,
|
||
|
V_CMPX_LG_U32 = 213,
|
||
|
V_CMPX_NE_U32 = 213,
|
||
|
V_CMPX_GE_U32 = 214,
|
||
|
V_CMPX_TRU_U32 = 215,
|
||
|
V_CMPX_T_U32 = 215,
|
||
|
V_CMP_F_U64 = 224,
|
||
|
V_CMP_LT_U64 = 225,
|
||
|
V_CMP_EQ_U64 = 226,
|
||
|
V_CMP_LE_U64 = 227,
|
||
|
V_CMP_GT_U64 = 228,
|
||
|
V_CMP_LG_U64 = 229,
|
||
|
V_CMP_NE_U64 = 229,
|
||
|
V_CMP_GE_U64 = 230,
|
||
|
V_CMP_TRU_U64 = 231,
|
||
|
V_CMP_T_U64 = 231,
|
||
|
V_CMPX_F_U64 = 240,
|
||
|
V_CMPX_LT_U64 = 241,
|
||
|
V_CMPX_EQ_U64 = 242,
|
||
|
V_CMPX_LE_U64 = 243,
|
||
|
V_CMPX_GT_U64 = 244,
|
||
|
V_CMPX_LG_U64 = 245,
|
||
|
V_CMPX_NE_U64 = 245,
|
||
|
V_CMPX_GE_U64 = 246,
|
||
|
V_CMPX_TRU_U64 = 247,
|
||
|
V_CMPX_T_U64 = 247,
|
||
|
V_CNDMASK_B32 = 256,
|
||
|
V_READLANE_B32 = 257,
|
||
|
V_WRITELANE_B32 = 258,
|
||
|
V_ADD_F32 = 259,
|
||
|
V_SUB_F32 = 260,
|
||
|
V_SUBREV_F32 = 261,
|
||
|
V_MAC_LEGACY_F32 = 262,
|
||
|
V_MUL_LEGACY_F32 = 263,
|
||
|
V_MUL_F32 = 264,
|
||
|
V_MUL_I32_I24 = 265,
|
||
|
V_MUL_HI_I32_I24 = 266,
|
||
|
V_MUL_U32_U24 = 267,
|
||
|
V_MUL_HI_U32_U24 = 268,
|
||
|
V_MIN_LEGACY_F32 = 269,
|
||
|
V_MAX_LEGACY_F32 = 270,
|
||
|
V_MIN_F32 = 271,
|
||
|
V_MAX_F32 = 272,
|
||
|
V_MIN_I32 = 273,
|
||
|
V_MAX_I32 = 274,
|
||
|
V_MIN_U32 = 275,
|
||
|
V_MAX_U32 = 276,
|
||
|
V_LSHR_B32 = 277,
|
||
|
V_LSHRREV_B32 = 278,
|
||
|
V_ASHR_I32 = 279,
|
||
|
V_ASHRREV_I32 = 280,
|
||
|
V_LSHL_B32 = 281,
|
||
|
V_LSHLREV_B32 = 282,
|
||
|
V_AND_B32 = 283,
|
||
|
V_OR_B32 = 284,
|
||
|
V_XOR_B32 = 285,
|
||
|
V_BFM_B32 = 286,
|
||
|
V_MAC_F32 = 287,
|
||
|
V_MADMK_F32 = 288,
|
||
|
V_MADAK_F32 = 289,
|
||
|
V_BCNT_U32_B32 = 290,
|
||
|
V_MBCNT_LO_U32_B32 = 291,
|
||
|
V_MBCNT_HI_U32_B32 = 292,
|
||
|
V_ADD_I32 = 293,
|
||
|
V_SUB_I32 = 294,
|
||
|
V_SUBREV_I32 = 295,
|
||
|
V_ADDC_U32 = 296,
|
||
|
V_SUBB_U32 = 297,
|
||
|
V_SUBBREV_U32 = 298,
|
||
|
V_LDEXP_F32 = 299,
|
||
|
V_CVT_PKACCUM_U8_F32 = 300,
|
||
|
V_CVT_PKNORM_I16_F32 = 301,
|
||
|
V_CVT_PKNORM_U16_F32 = 302,
|
||
|
V_CVT_PKRTZ_F16_F32 = 303,
|
||
|
V_CVT_PK_U16_U32 = 304,
|
||
|
V_CVT_PK_I16_I32 = 305,
|
||
|
V_MAD_LEGACY_F32 = 320,
|
||
|
V_MAD_F32 = 321,
|
||
|
V_MAD_I32_I24 = 322,
|
||
|
V_MAD_U32_U24 = 323,
|
||
|
V_CUBEID_F32 = 324,
|
||
|
V_CUBESC_F32 = 325,
|
||
|
V_CUBETC_F32 = 326,
|
||
|
V_CUBEMA_F32 = 327,
|
||
|
V_BFE_U32 = 328,
|
||
|
V_BFE_I32 = 329,
|
||
|
V_BFI_B32 = 330,
|
||
|
V_FMA_F32 = 331,
|
||
|
V_FMA_F64 = 332,
|
||
|
V_LERP_U8 = 333,
|
||
|
V_ALIGNBIT_B32 = 334,
|
||
|
V_ALIGNBYTE_B32 = 335,
|
||
|
V_MULLIT_F32 = 336,
|
||
|
V_MIN3_F32 = 337,
|
||
|
V_MIN3_I32 = 338,
|
||
|
V_MIN3_U32 = 339,
|
||
|
V_MAX3_F32 = 340,
|
||
|
V_MAX3_I32 = 341,
|
||
|
V_MAX3_U32 = 342,
|
||
|
V_MED3_F32 = 343,
|
||
|
V_MED3_I32 = 344,
|
||
|
V_MED3_U32 = 345,
|
||
|
V_SAD_U8 = 346,
|
||
|
V_SAD_HI_U8 = 347,
|
||
|
V_SAD_U16 = 348,
|
||
|
V_SAD_U32 = 349,
|
||
|
V_CVT_PK_U8_F32 = 350,
|
||
|
V_DIV_FIXUP_F32 = 351,
|
||
|
V_DIV_FIXUP_F64 = 352,
|
||
|
V_LSHL_B64 = 353,
|
||
|
V_LSHR_B64 = 354,
|
||
|
V_ASHR_I64 = 355,
|
||
|
V_ADD_F64 = 356,
|
||
|
V_MUL_F64 = 357,
|
||
|
V_MIN_F64 = 358,
|
||
|
V_MAX_F64 = 359,
|
||
|
V_LDEXP_F64 = 360,
|
||
|
V_MUL_LO_U32 = 361,
|
||
|
V_MUL_HI_U32 = 362,
|
||
|
V_MUL_LO_I32 = 363,
|
||
|
V_MUL_HI_I32 = 364,
|
||
|
V_DIV_SCALE_F32 = 365,
|
||
|
V_DIV_SCALE_F64 = 366,
|
||
|
V_DIV_FMAS_F32 = 367,
|
||
|
V_DIV_FMAS_F64 = 368,
|
||
|
V_MSAD_U8 = 369,
|
||
|
V_QSAD_U8 = 370,
|
||
|
V_QSAD_PK_U16_U8 = 370,
|
||
|
V_MQSAD_U8 = 371,
|
||
|
V_MQSAD_PK_U16_U8 = 371,
|
||
|
V_TRIG_PREOP_F64 = 372,
|
||
|
V_MQSAD_U32_U8 = 373,
|
||
|
V_MAD_U64_U32 = 374,
|
||
|
V_MAD_I64_I32 = 375,
|
||
|
V_NOP = 384,
|
||
|
V_MOV_B32 = 385,
|
||
|
V_READFIRSTLANE_B32 = 386,
|
||
|
V_CVT_I32_F64 = 387,
|
||
|
V_CVT_F64_I32 = 388,
|
||
|
V_CVT_F32_I32 = 389,
|
||
|
V_CVT_F32_U32 = 390,
|
||
|
V_CVT_U32_F32 = 391,
|
||
|
V_CVT_I32_F32 = 392,
|
||
|
V_MOV_FED_B32 = 393,
|
||
|
V_CVT_F16_F32 = 394,
|
||
|
V_CVT_F32_F16 = 395,
|
||
|
V_CVT_RPI_I32_F32 = 396,
|
||
|
V_CVT_FLR_I32_F32 = 397,
|
||
|
V_CVT_OFF_F32_I4 = 398,
|
||
|
V_CVT_F32_F64 = 399,
|
||
|
V_CVT_F64_F32 = 400,
|
||
|
V_CVT_F32_UBYTE0 = 401,
|
||
|
V_CVT_F32_UBYTE1 = 402,
|
||
|
V_CVT_F32_UBYTE2 = 403,
|
||
|
V_CVT_F32_UBYTE3 = 404,
|
||
|
V_CVT_U32_F64 = 405,
|
||
|
V_CVT_F64_U32 = 406,
|
||
|
V_TRUNC_F64 = 407,
|
||
|
V_CEIL_F64 = 408,
|
||
|
V_RNDNE_F64 = 409,
|
||
|
V_FLOOR_F64 = 410,
|
||
|
V_FRACT_F32 = 416,
|
||
|
V_TRUNC_F32 = 417,
|
||
|
V_CEIL_F32 = 418,
|
||
|
V_RNDNE_F32 = 419,
|
||
|
V_FLOOR_F32 = 420,
|
||
|
V_EXP_F32 = 421,
|
||
|
V_LOG_CLAMP_F32 = 422,
|
||
|
V_LOG_F32 = 423,
|
||
|
V_RCP_CLAMP_F32 = 424,
|
||
|
V_RCP_LEGACY_F32 = 425,
|
||
|
V_RCP_F32 = 426,
|
||
|
V_RCP_IFLAG_F32 = 427,
|
||
|
V_RSQ_CLAMP_F32 = 428,
|
||
|
V_RSQ_LEGACY_F32 = 429,
|
||
|
V_RSQ_F32 = 430,
|
||
|
V_RCP_F64 = 431,
|
||
|
V_RCP_CLAMP_F64 = 432,
|
||
|
V_RSQ_F64 = 433,
|
||
|
V_RSQ_CLAMP_F64 = 434,
|
||
|
V_SQRT_F32 = 435,
|
||
|
V_SQRT_F64 = 436,
|
||
|
V_SIN_F32 = 437,
|
||
|
V_COS_F32 = 438,
|
||
|
V_NOT_B32 = 439,
|
||
|
V_BFREV_B32 = 440,
|
||
|
V_FFBH_U32 = 441,
|
||
|
V_FFBL_B32 = 442,
|
||
|
V_FFBH_I32 = 443,
|
||
|
V_FREXP_EXP_I32_F64 = 444,
|
||
|
V_FREXP_MANT_F64 = 445,
|
||
|
V_FRACT_F64 = 446,
|
||
|
V_FREXP_EXP_I32_F32 = 447,
|
||
|
V_FREXP_MANT_F32 = 448,
|
||
|
V_CLREXCP = 449,
|
||
|
V_MOVRELD_B32 = 450,
|
||
|
V_MOVRELS_B32 = 451,
|
||
|
V_MOVRELSD_B32 = 452,
|
||
|
V_LOG_LEGACY_F32 = 453,
|
||
|
V_EXP_LEGACY_F32 = 454,
|
||
|
|
||
|
OP_RANGE_VOP3 = V_EXP_LEGACY_F32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeVOP1 : u32 {
|
||
|
V_NOP = 0,
|
||
|
V_MOV_B32 = 1,
|
||
|
V_READFIRSTLANE_B32 = 2,
|
||
|
V_CVT_I32_F64 = 3,
|
||
|
V_CVT_F64_I32 = 4,
|
||
|
V_CVT_F32_I32 = 5,
|
||
|
V_CVT_F32_U32 = 6,
|
||
|
V_CVT_U32_F32 = 7,
|
||
|
V_CVT_I32_F32 = 8,
|
||
|
V_MOV_FED_B32 = 9,
|
||
|
V_CVT_F16_F32 = 10,
|
||
|
V_CVT_F32_F16 = 11,
|
||
|
V_CVT_RPI_I32_F32 = 12,
|
||
|
V_CVT_FLR_I32_F32 = 13,
|
||
|
V_CVT_OFF_F32_I4 = 14,
|
||
|
V_CVT_F32_F64 = 15,
|
||
|
V_CVT_F64_F32 = 16,
|
||
|
V_CVT_F32_UBYTE0 = 17,
|
||
|
V_CVT_F32_UBYTE1 = 18,
|
||
|
V_CVT_F32_UBYTE2 = 19,
|
||
|
V_CVT_F32_UBYTE3 = 20,
|
||
|
V_CVT_U32_F64 = 21,
|
||
|
V_CVT_F64_U32 = 22,
|
||
|
V_TRUNC_F64 = 23,
|
||
|
V_CEIL_F64 = 24,
|
||
|
V_RNDNE_F64 = 25,
|
||
|
V_FLOOR_F64 = 26,
|
||
|
V_FRACT_F32 = 32,
|
||
|
V_TRUNC_F32 = 33,
|
||
|
V_CEIL_F32 = 34,
|
||
|
V_RNDNE_F32 = 35,
|
||
|
V_FLOOR_F32 = 36,
|
||
|
V_EXP_F32 = 37,
|
||
|
V_LOG_CLAMP_F32 = 38,
|
||
|
V_LOG_F32 = 39,
|
||
|
V_RCP_CLAMP_F32 = 40,
|
||
|
V_RCP_LEGACY_F32 = 41,
|
||
|
V_RCP_F32 = 42,
|
||
|
V_RCP_IFLAG_F32 = 43,
|
||
|
V_RSQ_CLAMP_F32 = 44,
|
||
|
V_RSQ_LEGACY_F32 = 45,
|
||
|
V_RSQ_F32 = 46,
|
||
|
V_RCP_F64 = 47,
|
||
|
V_RCP_CLAMP_F64 = 48,
|
||
|
V_RSQ_F64 = 49,
|
||
|
V_RSQ_CLAMP_F64 = 50,
|
||
|
V_SQRT_F32 = 51,
|
||
|
V_SQRT_F64 = 52,
|
||
|
V_SIN_F32 = 53,
|
||
|
V_COS_F32 = 54,
|
||
|
V_NOT_B32 = 55,
|
||
|
V_BFREV_B32 = 56,
|
||
|
V_FFBH_U32 = 57,
|
||
|
V_FFBL_B32 = 58,
|
||
|
V_FFBH_I32 = 59,
|
||
|
V_FREXP_EXP_I32_F64 = 60,
|
||
|
V_FREXP_MANT_F64 = 61,
|
||
|
V_FRACT_F64 = 62,
|
||
|
V_FREXP_EXP_I32_F32 = 63,
|
||
|
V_FREXP_MANT_F32 = 64,
|
||
|
V_CLREXCP = 65,
|
||
|
V_MOVRELD_B32 = 66,
|
||
|
V_MOVRELS_B32 = 67,
|
||
|
V_MOVRELSD_B32 = 68,
|
||
|
V_LOG_LEGACY_F32 = 69,
|
||
|
V_EXP_LEGACY_F32 = 70,
|
||
|
|
||
|
OP_RANGE_VOP1 = V_EXP_LEGACY_F32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeVOPC : u32 {
|
||
|
V_CMP_F_F32 = 0,
|
||
|
V_CMP_LT_F32 = 1,
|
||
|
V_CMP_EQ_F32 = 2,
|
||
|
V_CMP_LE_F32 = 3,
|
||
|
V_CMP_GT_F32 = 4,
|
||
|
V_CMP_LG_F32 = 5,
|
||
|
V_CMP_GE_F32 = 6,
|
||
|
V_CMP_O_F32 = 7,
|
||
|
V_CMP_U_F32 = 8,
|
||
|
V_CMP_NGE_F32 = 9,
|
||
|
V_CMP_NLG_F32 = 10,
|
||
|
V_CMP_NGT_F32 = 11,
|
||
|
V_CMP_NLE_F32 = 12,
|
||
|
V_CMP_NEQ_F32 = 13,
|
||
|
V_CMP_NLT_F32 = 14,
|
||
|
V_CMP_TRU_F32 = 15,
|
||
|
V_CMP_T_F32 = 15,
|
||
|
V_CMPX_F_F32 = 16,
|
||
|
V_CMPX_LT_F32 = 17,
|
||
|
V_CMPX_EQ_F32 = 18,
|
||
|
V_CMPX_LE_F32 = 19,
|
||
|
V_CMPX_GT_F32 = 20,
|
||
|
V_CMPX_LG_F32 = 21,
|
||
|
V_CMPX_GE_F32 = 22,
|
||
|
V_CMPX_O_F32 = 23,
|
||
|
V_CMPX_U_F32 = 24,
|
||
|
V_CMPX_NGE_F32 = 25,
|
||
|
V_CMPX_NLG_F32 = 26,
|
||
|
V_CMPX_NGT_F32 = 27,
|
||
|
V_CMPX_NLE_F32 = 28,
|
||
|
V_CMPX_NEQ_F32 = 29,
|
||
|
V_CMPX_NLT_F32 = 30,
|
||
|
V_CMPX_TRU_F32 = 31,
|
||
|
V_CMPX_T_F32 = 31,
|
||
|
V_CMP_F_F64 = 32,
|
||
|
V_CMP_LT_F64 = 33,
|
||
|
V_CMP_EQ_F64 = 34,
|
||
|
V_CMP_LE_F64 = 35,
|
||
|
V_CMP_GT_F64 = 36,
|
||
|
V_CMP_LG_F64 = 37,
|
||
|
V_CMP_GE_F64 = 38,
|
||
|
V_CMP_O_F64 = 39,
|
||
|
V_CMP_U_F64 = 40,
|
||
|
V_CMP_NGE_F64 = 41,
|
||
|
V_CMP_NLG_F64 = 42,
|
||
|
V_CMP_NGT_F64 = 43,
|
||
|
V_CMP_NLE_F64 = 44,
|
||
|
V_CMP_NEQ_F64 = 45,
|
||
|
V_CMP_NLT_F64 = 46,
|
||
|
V_CMP_TRU_F64 = 47,
|
||
|
V_CMP_T_F64 = 47,
|
||
|
V_CMPX_F_F64 = 48,
|
||
|
V_CMPX_LT_F64 = 49,
|
||
|
V_CMPX_EQ_F64 = 50,
|
||
|
V_CMPX_LE_F64 = 51,
|
||
|
V_CMPX_GT_F64 = 52,
|
||
|
V_CMPX_LG_F64 = 53,
|
||
|
V_CMPX_GE_F64 = 54,
|
||
|
V_CMPX_O_F64 = 55,
|
||
|
V_CMPX_U_F64 = 56,
|
||
|
V_CMPX_NGE_F64 = 57,
|
||
|
V_CMPX_NLG_F64 = 58,
|
||
|
V_CMPX_NGT_F64 = 59,
|
||
|
V_CMPX_NLE_F64 = 60,
|
||
|
V_CMPX_NEQ_F64 = 61,
|
||
|
V_CMPX_NLT_F64 = 62,
|
||
|
V_CMPX_TRU_F64 = 63,
|
||
|
V_CMPX_T_F64 = 63,
|
||
|
V_CMPS_F_F32 = 64,
|
||
|
V_CMPS_LT_F32 = 65,
|
||
|
V_CMPS_EQ_F32 = 66,
|
||
|
V_CMPS_LE_F32 = 67,
|
||
|
V_CMPS_GT_F32 = 68,
|
||
|
V_CMPS_LG_F32 = 69,
|
||
|
V_CMPS_GE_F32 = 70,
|
||
|
V_CMPS_O_F32 = 71,
|
||
|
V_CMPS_U_F32 = 72,
|
||
|
V_CMPS_NGE_F32 = 73,
|
||
|
V_CMPS_NLG_F32 = 74,
|
||
|
V_CMPS_NGT_F32 = 75,
|
||
|
V_CMPS_NLE_F32 = 76,
|
||
|
V_CMPS_NEQ_F32 = 77,
|
||
|
V_CMPS_NLT_F32 = 78,
|
||
|
V_CMPS_TRU_F32 = 79,
|
||
|
V_CMPS_T_F32 = 79,
|
||
|
V_CMPSX_F_F32 = 80,
|
||
|
V_CMPSX_LT_F32 = 81,
|
||
|
V_CMPSX_EQ_F32 = 82,
|
||
|
V_CMPSX_LE_F32 = 83,
|
||
|
V_CMPSX_GT_F32 = 84,
|
||
|
V_CMPSX_LG_F32 = 85,
|
||
|
V_CMPSX_GE_F32 = 86,
|
||
|
V_CMPSX_O_F32 = 87,
|
||
|
V_CMPSX_U_F32 = 88,
|
||
|
V_CMPSX_NGE_F32 = 89,
|
||
|
V_CMPSX_NLG_F32 = 90,
|
||
|
V_CMPSX_NGT_F32 = 91,
|
||
|
V_CMPSX_NLE_F32 = 92,
|
||
|
V_CMPSX_NEQ_F32 = 93,
|
||
|
V_CMPSX_NLT_F32 = 94,
|
||
|
V_CMPSX_TRU_F32 = 95,
|
||
|
V_CMPSX_T_F32 = 95,
|
||
|
V_CMPS_F_F64 = 96,
|
||
|
V_CMPS_LT_F64 = 97,
|
||
|
V_CMPS_EQ_F64 = 98,
|
||
|
V_CMPS_LE_F64 = 99,
|
||
|
V_CMPS_GT_F64 = 100,
|
||
|
V_CMPS_LG_F64 = 101,
|
||
|
V_CMPS_GE_F64 = 102,
|
||
|
V_CMPS_O_F64 = 103,
|
||
|
V_CMPS_U_F64 = 104,
|
||
|
V_CMPS_NGE_F64 = 105,
|
||
|
V_CMPS_NLG_F64 = 106,
|
||
|
V_CMPS_NGT_F64 = 107,
|
||
|
V_CMPS_NLE_F64 = 108,
|
||
|
V_CMPS_NEQ_F64 = 109,
|
||
|
V_CMPS_NLT_F64 = 110,
|
||
|
V_CMPS_TRU_F64 = 111,
|
||
|
V_CMPS_T_F64 = 111,
|
||
|
V_CMPSX_F_F64 = 112,
|
||
|
V_CMPSX_LT_F64 = 113,
|
||
|
V_CMPSX_EQ_F64 = 114,
|
||
|
V_CMPSX_LE_F64 = 115,
|
||
|
V_CMPSX_GT_F64 = 116,
|
||
|
V_CMPSX_LG_F64 = 117,
|
||
|
V_CMPSX_GE_F64 = 118,
|
||
|
V_CMPSX_O_F64 = 119,
|
||
|
V_CMPSX_U_F64 = 120,
|
||
|
V_CMPSX_NGE_F64 = 121,
|
||
|
V_CMPSX_NLG_F64 = 122,
|
||
|
V_CMPSX_NGT_F64 = 123,
|
||
|
V_CMPSX_NLE_F64 = 124,
|
||
|
V_CMPSX_NEQ_F64 = 125,
|
||
|
V_CMPSX_NLT_F64 = 126,
|
||
|
V_CMPSX_TRU_F64 = 127,
|
||
|
V_CMPSX_T_F64 = 127,
|
||
|
V_CMP_F_I32 = 128,
|
||
|
V_CMP_LT_I32 = 129,
|
||
|
V_CMP_EQ_I32 = 130,
|
||
|
V_CMP_LE_I32 = 131,
|
||
|
V_CMP_GT_I32 = 132,
|
||
|
V_CMP_LG_I32 = 133,
|
||
|
V_CMP_NE_I32 = 133,
|
||
|
V_CMP_GE_I32 = 134,
|
||
|
V_CMP_TRU_I32 = 135,
|
||
|
V_CMP_T_I32 = 135,
|
||
|
V_CMP_CLASS_F32 = 136,
|
||
|
V_CMPX_F_I32 = 144,
|
||
|
V_CMPX_LT_I32 = 145,
|
||
|
V_CMPX_EQ_I32 = 146,
|
||
|
V_CMPX_LE_I32 = 147,
|
||
|
V_CMPX_GT_I32 = 148,
|
||
|
V_CMPX_LG_I32 = 149,
|
||
|
V_CMPX_NE_I32 = 149,
|
||
|
V_CMPX_GE_I32 = 150,
|
||
|
V_CMPX_TRU_I32 = 151,
|
||
|
V_CMPX_T_I32 = 151,
|
||
|
V_CMPX_CLASS_F32 = 152,
|
||
|
V_CMP_F_I64 = 160,
|
||
|
V_CMP_LT_I64 = 161,
|
||
|
V_CMP_EQ_I64 = 162,
|
||
|
V_CMP_LE_I64 = 163,
|
||
|
V_CMP_GT_I64 = 164,
|
||
|
V_CMP_LG_I64 = 165,
|
||
|
V_CMP_NE_I64 = 165,
|
||
|
V_CMP_GE_I64 = 166,
|
||
|
V_CMP_TRU_I64 = 167,
|
||
|
V_CMP_T_I64 = 167,
|
||
|
V_CMP_CLASS_F64 = 168,
|
||
|
V_CMPX_F_I64 = 176,
|
||
|
V_CMPX_LT_I64 = 177,
|
||
|
V_CMPX_EQ_I64 = 178,
|
||
|
V_CMPX_LE_I64 = 179,
|
||
|
V_CMPX_GT_I64 = 180,
|
||
|
V_CMPX_LG_I64 = 181,
|
||
|
V_CMPX_NE_I64 = 181,
|
||
|
V_CMPX_GE_I64 = 182,
|
||
|
V_CMPX_TRU_I64 = 183,
|
||
|
V_CMPX_T_I64 = 183,
|
||
|
V_CMPX_CLASS_F64 = 184,
|
||
|
V_CMP_F_U32 = 192,
|
||
|
V_CMP_LT_U32 = 193,
|
||
|
V_CMP_EQ_U32 = 194,
|
||
|
V_CMP_LE_U32 = 195,
|
||
|
V_CMP_GT_U32 = 196,
|
||
|
V_CMP_LG_U32 = 197,
|
||
|
V_CMP_NE_U32 = 197,
|
||
|
V_CMP_GE_U32 = 198,
|
||
|
V_CMP_TRU_U32 = 199,
|
||
|
V_CMP_T_U32 = 199,
|
||
|
V_CMPX_F_U32 = 208,
|
||
|
V_CMPX_LT_U32 = 209,
|
||
|
V_CMPX_EQ_U32 = 210,
|
||
|
V_CMPX_LE_U32 = 211,
|
||
|
V_CMPX_GT_U32 = 212,
|
||
|
V_CMPX_LG_U32 = 213,
|
||
|
V_CMPX_NE_U32 = 213,
|
||
|
V_CMPX_GE_U32 = 214,
|
||
|
V_CMPX_TRU_U32 = 215,
|
||
|
V_CMPX_T_U32 = 215,
|
||
|
V_CMP_F_U64 = 224,
|
||
|
V_CMP_LT_U64 = 225,
|
||
|
V_CMP_EQ_U64 = 226,
|
||
|
V_CMP_LE_U64 = 227,
|
||
|
V_CMP_GT_U64 = 228,
|
||
|
V_CMP_LG_U64 = 229,
|
||
|
V_CMP_NE_U64 = 229,
|
||
|
V_CMP_GE_U64 = 230,
|
||
|
V_CMP_TRU_U64 = 231,
|
||
|
V_CMP_T_U64 = 231,
|
||
|
V_CMPX_F_U64 = 240,
|
||
|
V_CMPX_LT_U64 = 241,
|
||
|
V_CMPX_EQ_U64 = 242,
|
||
|
V_CMPX_LE_U64 = 243,
|
||
|
V_CMPX_GT_U64 = 244,
|
||
|
V_CMPX_LG_U64 = 245,
|
||
|
V_CMPX_NE_U64 = 245,
|
||
|
V_CMPX_GE_U64 = 246,
|
||
|
V_CMPX_TRU_U64 = 247,
|
||
|
V_CMPX_T_U64 = 247,
|
||
|
|
||
|
OP_RANGE_VOPC = V_CMPX_T_U64 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeVINTRP : u32 {
|
||
|
V_INTERP_P1_F32 = 0,
|
||
|
V_INTERP_P2_F32 = 1,
|
||
|
V_INTERP_MOV_F32 = 2,
|
||
|
|
||
|
OP_RANGE_VINTRP = V_INTERP_MOV_F32 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeDS : u32 {
|
||
|
DS_ADD_U32 = 0,
|
||
|
DS_SUB_U32 = 1,
|
||
|
DS_RSUB_U32 = 2,
|
||
|
DS_INC_U32 = 3,
|
||
|
DS_DEC_U32 = 4,
|
||
|
DS_MIN_I32 = 5,
|
||
|
DS_MAX_I32 = 6,
|
||
|
DS_MIN_U32 = 7,
|
||
|
DS_MAX_U32 = 8,
|
||
|
DS_AND_B32 = 9,
|
||
|
DS_OR_B32 = 10,
|
||
|
DS_XOR_B32 = 11,
|
||
|
DS_MSKOR_B32 = 12,
|
||
|
DS_WRITE_B32 = 13,
|
||
|
DS_WRITE2_B32 = 14,
|
||
|
DS_WRITE2ST64_B32 = 15,
|
||
|
DS_CMPST_B32 = 16,
|
||
|
DS_CMPST_F32 = 17,
|
||
|
DS_MIN_F32 = 18,
|
||
|
DS_MAX_F32 = 19,
|
||
|
DS_NOP = 20,
|
||
|
DS_GWS_SEMA_RELEASE_ALL = 24,
|
||
|
DS_GWS_INIT = 25,
|
||
|
DS_GWS_SEMA_V = 26,
|
||
|
DS_GWS_SEMA_BR = 27,
|
||
|
DS_GWS_SEMA_P = 28,
|
||
|
DS_GWS_BARRIER = 29,
|
||
|
DS_WRITE_B8 = 30,
|
||
|
DS_WRITE_B16 = 31,
|
||
|
DS_ADD_RTN_U32 = 32,
|
||
|
DS_SUB_RTN_U32 = 33,
|
||
|
DS_RSUB_RTN_U32 = 34,
|
||
|
DS_INC_RTN_U32 = 35,
|
||
|
DS_DEC_RTN_U32 = 36,
|
||
|
DS_MIN_RTN_I32 = 37,
|
||
|
DS_MAX_RTN_I32 = 38,
|
||
|
DS_MIN_RTN_U32 = 39,
|
||
|
DS_MAX_RTN_U32 = 40,
|
||
|
DS_AND_RTN_B32 = 41,
|
||
|
DS_OR_RTN_B32 = 42,
|
||
|
DS_XOR_RTN_B32 = 43,
|
||
|
DS_MSKOR_RTN_B32 = 44,
|
||
|
DS_WRXCHG_RTN_B32 = 45,
|
||
|
DS_WRXCHG2_RTN_B32 = 46,
|
||
|
DS_WRXCHG2ST64_RTN_B32 = 47,
|
||
|
DS_CMPST_RTN_B32 = 48,
|
||
|
DS_CMPST_RTN_F32 = 49,
|
||
|
DS_MIN_RTN_F32 = 50,
|
||
|
DS_MAX_RTN_F32 = 51,
|
||
|
DS_WRAP_RTN_B32 = 52,
|
||
|
DS_SWIZZLE_B32 = 53,
|
||
|
DS_READ_B32 = 54,
|
||
|
DS_READ2_B32 = 55,
|
||
|
DS_READ2ST64_B32 = 56,
|
||
|
DS_READ_I8 = 57,
|
||
|
DS_READ_U8 = 58,
|
||
|
DS_READ_I16 = 59,
|
||
|
DS_READ_U16 = 60,
|
||
|
DS_CONSUME = 61,
|
||
|
DS_APPEND = 62,
|
||
|
DS_ORDERED_COUNT = 63,
|
||
|
DS_ADD_U64 = 64,
|
||
|
DS_SUB_U64 = 65,
|
||
|
DS_RSUB_U64 = 66,
|
||
|
DS_INC_U64 = 67,
|
||
|
DS_DEC_U64 = 68,
|
||
|
DS_MIN_I64 = 69,
|
||
|
DS_MAX_I64 = 70,
|
||
|
DS_MIN_U64 = 71,
|
||
|
DS_MAX_U64 = 72,
|
||
|
DS_AND_B64 = 73,
|
||
|
DS_OR_B64 = 74,
|
||
|
DS_XOR_B64 = 75,
|
||
|
DS_MSKOR_B64 = 76,
|
||
|
DS_WRITE_B64 = 77,
|
||
|
DS_WRITE2_B64 = 78,
|
||
|
DS_WRITE2ST64_B64 = 79,
|
||
|
DS_CMPST_B64 = 80,
|
||
|
DS_CMPST_F64 = 81,
|
||
|
DS_MIN_F64 = 82,
|
||
|
DS_MAX_F64 = 83,
|
||
|
DS_ADD_RTN_U64 = 96,
|
||
|
DS_SUB_RTN_U64 = 97,
|
||
|
DS_RSUB_RTN_U64 = 98,
|
||
|
DS_INC_RTN_U64 = 99,
|
||
|
DS_DEC_RTN_U64 = 100,
|
||
|
DS_MIN_RTN_I64 = 101,
|
||
|
DS_MAX_RTN_I64 = 102,
|
||
|
DS_MIN_RTN_U64 = 103,
|
||
|
DS_MAX_RTN_U64 = 104,
|
||
|
DS_AND_RTN_B64 = 105,
|
||
|
DS_OR_RTN_B64 = 106,
|
||
|
DS_XOR_RTN_B64 = 107,
|
||
|
DS_MSKOR_RTN_B64 = 108,
|
||
|
DS_WRXCHG_RTN_B64 = 109,
|
||
|
DS_WRXCHG2_RTN_B64 = 110,
|
||
|
DS_WRXCHG2ST64_RTN_B64 = 111,
|
||
|
DS_CMPST_RTN_B64 = 112,
|
||
|
DS_CMPST_RTN_F64 = 113,
|
||
|
DS_MIN_RTN_F64 = 114,
|
||
|
DS_MAX_RTN_F64 = 115,
|
||
|
DS_READ_B64 = 118,
|
||
|
DS_READ2_B64 = 119,
|
||
|
DS_READ2ST64_B64 = 120,
|
||
|
DS_CONDXCHG32_RTN_B64 = 126,
|
||
|
DS_ADD_SRC2_U32 = 128,
|
||
|
DS_SUB_SRC2_U32 = 129,
|
||
|
DS_RSUB_SRC2_U32 = 130,
|
||
|
DS_INC_SRC2_U32 = 131,
|
||
|
DS_DEC_SRC2_U32 = 132,
|
||
|
DS_MIN_SRC2_I32 = 133,
|
||
|
DS_MAX_SRC2_I32 = 134,
|
||
|
DS_MIN_SRC2_U32 = 135,
|
||
|
DS_MAX_SRC2_U32 = 136,
|
||
|
DS_AND_SRC2_B32 = 137,
|
||
|
DS_OR_SRC2_B32 = 138,
|
||
|
DS_XOR_SRC2_B32 = 139,
|
||
|
DS_WRITE_SRC2_B32 = 141,
|
||
|
DS_MIN_SRC2_F32 = 146,
|
||
|
DS_MAX_SRC2_F32 = 147,
|
||
|
DS_ADD_SRC2_U64 = 192,
|
||
|
DS_SUB_SRC2_U64 = 193,
|
||
|
DS_RSUB_SRC2_U64 = 194,
|
||
|
DS_INC_SRC2_U64 = 195,
|
||
|
DS_DEC_SRC2_U64 = 196,
|
||
|
DS_MIN_SRC2_I64 = 197,
|
||
|
DS_MAX_SRC2_I64 = 198,
|
||
|
DS_MIN_SRC2_U64 = 199,
|
||
|
DS_MAX_SRC2_U64 = 200,
|
||
|
DS_AND_SRC2_B64 = 201,
|
||
|
DS_OR_SRC2_B64 = 202,
|
||
|
DS_XOR_SRC2_B64 = 203,
|
||
|
DS_WRITE_SRC2_B64 = 205,
|
||
|
DS_MIN_SRC2_F64 = 210,
|
||
|
DS_MAX_SRC2_F64 = 211,
|
||
|
DS_WRITE_B96 = 222,
|
||
|
DS_WRITE_B128 = 223,
|
||
|
DS_CONDXCHG32_RTN_B128 = 253,
|
||
|
DS_READ_B96 = 254,
|
||
|
DS_READ_B128 = 255,
|
||
|
|
||
|
OP_RANGE_DS = DS_READ_B128 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeMUBUF : u32 {
|
||
|
BUFFER_LOAD_FORMAT_X = 0,
|
||
|
BUFFER_LOAD_FORMAT_XY = 1,
|
||
|
BUFFER_LOAD_FORMAT_XYZ = 2,
|
||
|
BUFFER_LOAD_FORMAT_XYZW = 3,
|
||
|
BUFFER_STORE_FORMAT_X = 4,
|
||
|
BUFFER_STORE_FORMAT_XY = 5,
|
||
|
BUFFER_STORE_FORMAT_XYZ = 6,
|
||
|
BUFFER_STORE_FORMAT_XYZW = 7,
|
||
|
BUFFER_LOAD_UBYTE = 8,
|
||
|
BUFFER_LOAD_SBYTE = 9,
|
||
|
BUFFER_LOAD_USHORT = 10,
|
||
|
BUFFER_LOAD_SSHORT = 11,
|
||
|
BUFFER_LOAD_DWORD = 12,
|
||
|
BUFFER_LOAD_DWORDX2 = 13,
|
||
|
BUFFER_LOAD_DWORDX4 = 14,
|
||
|
BUFFER_LOAD_DWORDX3 = 15,
|
||
|
BUFFER_STORE_BYTE = 24,
|
||
|
BUFFER_STORE_SHORT = 26,
|
||
|
BUFFER_STORE_DWORD = 28,
|
||
|
BUFFER_STORE_DWORDX2 = 29,
|
||
|
BUFFER_STORE_DWORDX4 = 30,
|
||
|
BUFFER_STORE_DWORDX3 = 31,
|
||
|
BUFFER_ATOMIC_SWAP = 48,
|
||
|
BUFFER_ATOMIC_CMPSWAP = 49,
|
||
|
BUFFER_ATOMIC_ADD = 50,
|
||
|
BUFFER_ATOMIC_SUB = 51,
|
||
|
BUFFER_ATOMIC_SMIN = 53,
|
||
|
BUFFER_ATOMIC_UMIN = 54,
|
||
|
BUFFER_ATOMIC_SMAX = 55,
|
||
|
BUFFER_ATOMIC_UMAX = 56,
|
||
|
BUFFER_ATOMIC_AND = 57,
|
||
|
BUFFER_ATOMIC_OR = 58,
|
||
|
BUFFER_ATOMIC_XOR = 59,
|
||
|
BUFFER_ATOMIC_INC = 60,
|
||
|
BUFFER_ATOMIC_DEC = 61,
|
||
|
BUFFER_ATOMIC_FCMPSWAP = 62,
|
||
|
BUFFER_ATOMIC_FMIN = 63,
|
||
|
BUFFER_ATOMIC_FMAX = 64,
|
||
|
BUFFER_ATOMIC_SWAP_X2 = 80,
|
||
|
BUFFER_ATOMIC_CMPSWAP_X2 = 81,
|
||
|
BUFFER_ATOMIC_ADD_X2 = 82,
|
||
|
BUFFER_ATOMIC_SUB_X2 = 83,
|
||
|
BUFFER_ATOMIC_SMIN_X2 = 85,
|
||
|
BUFFER_ATOMIC_UMIN_X2 = 86,
|
||
|
BUFFER_ATOMIC_SMAX_X2 = 87,
|
||
|
BUFFER_ATOMIC_UMAX_X2 = 88,
|
||
|
BUFFER_ATOMIC_AND_X2 = 89,
|
||
|
BUFFER_ATOMIC_OR_X2 = 90,
|
||
|
BUFFER_ATOMIC_XOR_X2 = 91,
|
||
|
BUFFER_ATOMIC_INC_X2 = 92,
|
||
|
BUFFER_ATOMIC_DEC_X2 = 93,
|
||
|
BUFFER_ATOMIC_FCMPSWAP_X2 = 94,
|
||
|
BUFFER_ATOMIC_FMIN_X2 = 95,
|
||
|
BUFFER_ATOMIC_FMAX_X2 = 96,
|
||
|
BUFFER_WBINVL1_SC = 112,
|
||
|
BUFFER_WBINVL1 = 113,
|
||
|
|
||
|
OP_RANGE_MUBUF = BUFFER_WBINVL1 + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeMTBUF : u32 {
|
||
|
TBUFFER_LOAD_FORMAT_X = 0,
|
||
|
TBUFFER_LOAD_FORMAT_XY = 1,
|
||
|
TBUFFER_LOAD_FORMAT_XYZ = 2,
|
||
|
TBUFFER_LOAD_FORMAT_XYZW = 3,
|
||
|
TBUFFER_STORE_FORMAT_X = 4,
|
||
|
TBUFFER_STORE_FORMAT_XY = 5,
|
||
|
TBUFFER_STORE_FORMAT_XYZ = 6,
|
||
|
TBUFFER_STORE_FORMAT_XYZW = 7,
|
||
|
|
||
|
OP_RANGE_MTBUF = TBUFFER_STORE_FORMAT_XYZW + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeMIMG : u32 {
|
||
|
IMAGE_LOAD = 0,
|
||
|
IMAGE_LOAD_MIP = 1,
|
||
|
IMAGE_LOAD_PCK = 2,
|
||
|
IMAGE_LOAD_PCK_SGN = 3,
|
||
|
IMAGE_LOAD_MIP_PCK = 4,
|
||
|
IMAGE_LOAD_MIP_PCK_SGN = 5,
|
||
|
IMAGE_STORE = 8,
|
||
|
IMAGE_STORE_MIP = 9,
|
||
|
IMAGE_STORE_PCK = 10,
|
||
|
IMAGE_STORE_MIP_PCK = 11,
|
||
|
IMAGE_GET_RESINFO = 14,
|
||
|
IMAGE_ATOMIC_SWAP = 15,
|
||
|
IMAGE_ATOMIC_CMPSWAP = 16,
|
||
|
IMAGE_ATOMIC_ADD = 17,
|
||
|
IMAGE_ATOMIC_SUB = 18,
|
||
|
IMAGE_ATOMIC_SMIN = 20,
|
||
|
IMAGE_ATOMIC_UMIN = 21,
|
||
|
IMAGE_ATOMIC_SMAX = 22,
|
||
|
IMAGE_ATOMIC_UMAX = 23,
|
||
|
IMAGE_ATOMIC_AND = 24,
|
||
|
IMAGE_ATOMIC_OR = 25,
|
||
|
IMAGE_ATOMIC_XOR = 26,
|
||
|
IMAGE_ATOMIC_INC = 27,
|
||
|
IMAGE_ATOMIC_DEC = 28,
|
||
|
IMAGE_ATOMIC_FCMPSWAP = 29,
|
||
|
IMAGE_ATOMIC_FMIN = 30,
|
||
|
IMAGE_ATOMIC_FMAX = 31,
|
||
|
IMAGE_SAMPLE = 32,
|
||
|
IMAGE_SAMPLE_CL = 33,
|
||
|
IMAGE_SAMPLE_D = 34,
|
||
|
IMAGE_SAMPLE_D_CL = 35,
|
||
|
IMAGE_SAMPLE_L = 36,
|
||
|
IMAGE_SAMPLE_B = 37,
|
||
|
IMAGE_SAMPLE_B_CL = 38,
|
||
|
IMAGE_SAMPLE_LZ = 39,
|
||
|
IMAGE_SAMPLE_C = 40,
|
||
|
IMAGE_SAMPLE_C_CL = 41,
|
||
|
IMAGE_SAMPLE_C_D = 42,
|
||
|
IMAGE_SAMPLE_C_D_CL = 43,
|
||
|
IMAGE_SAMPLE_C_L = 44,
|
||
|
IMAGE_SAMPLE_C_B = 45,
|
||
|
IMAGE_SAMPLE_C_B_CL = 46,
|
||
|
IMAGE_SAMPLE_C_LZ = 47,
|
||
|
IMAGE_SAMPLE_O = 48,
|
||
|
IMAGE_SAMPLE_CL_O = 49,
|
||
|
IMAGE_SAMPLE_D_O = 50,
|
||
|
IMAGE_SAMPLE_D_CL_O = 51,
|
||
|
IMAGE_SAMPLE_L_O = 52,
|
||
|
IMAGE_SAMPLE_B_O = 53,
|
||
|
IMAGE_SAMPLE_B_CL_O = 54,
|
||
|
IMAGE_SAMPLE_LZ_O = 55,
|
||
|
IMAGE_SAMPLE_C_O = 56,
|
||
|
IMAGE_SAMPLE_C_CL_O = 57,
|
||
|
IMAGE_SAMPLE_C_D_O = 58,
|
||
|
IMAGE_SAMPLE_C_D_CL_O = 59,
|
||
|
IMAGE_SAMPLE_C_L_O = 60,
|
||
|
IMAGE_SAMPLE_C_B_O = 61,
|
||
|
IMAGE_SAMPLE_C_B_CL_O = 62,
|
||
|
IMAGE_SAMPLE_C_LZ_O = 63,
|
||
|
IMAGE_GATHER4 = 64,
|
||
|
IMAGE_GATHER4_CL = 65,
|
||
|
IMAGE_GATHER4_L = 68,
|
||
|
IMAGE_GATHER4_B = 69,
|
||
|
IMAGE_GATHER4_B_CL = 70,
|
||
|
IMAGE_GATHER4_LZ = 71,
|
||
|
IMAGE_GATHER4_C = 72,
|
||
|
IMAGE_GATHER4_C_CL = 73,
|
||
|
IMAGE_GATHER4_C_L = 76,
|
||
|
IMAGE_GATHER4_C_B = 77,
|
||
|
IMAGE_GATHER4_C_B_CL = 78,
|
||
|
IMAGE_GATHER4_C_LZ = 79,
|
||
|
IMAGE_GATHER4_O = 80,
|
||
|
IMAGE_GATHER4_CL_O = 81,
|
||
|
IMAGE_GATHER4_L_O = 84,
|
||
|
IMAGE_GATHER4_B_O = 85,
|
||
|
IMAGE_GATHER4_B_CL_O = 86,
|
||
|
IMAGE_GATHER4_LZ_O = 87,
|
||
|
IMAGE_GATHER4_C_O = 88,
|
||
|
IMAGE_GATHER4_C_CL_O = 89,
|
||
|
IMAGE_GATHER4_C_L_O = 92,
|
||
|
IMAGE_GATHER4_C_B_O = 93,
|
||
|
IMAGE_GATHER4_C_B_CL_O = 94,
|
||
|
IMAGE_GATHER4_C_LZ_O = 95,
|
||
|
IMAGE_GET_LOD = 96,
|
||
|
IMAGE_SAMPLE_CD = 104,
|
||
|
IMAGE_SAMPLE_CD_CL = 105,
|
||
|
IMAGE_SAMPLE_C_CD = 106,
|
||
|
IMAGE_SAMPLE_C_CD_CL = 107,
|
||
|
IMAGE_SAMPLE_CD_O = 108,
|
||
|
IMAGE_SAMPLE_CD_CL_O = 109,
|
||
|
IMAGE_SAMPLE_C_CD_O = 110,
|
||
|
IMAGE_SAMPLE_C_CD_CL_O = 111,
|
||
|
|
||
|
OP_RANGE_MIMG = IMAGE_SAMPLE_C_CD_CL_O + 1,
|
||
|
};
|
||
|
|
||
|
enum class OpcodeEXP : u32 {
|
||
|
EXP = 0,
|
||
|
|
||
|
OP_RANGE_EXP = EXP + 1,
|
||
|
};
|
||
|
|
||
|
// Use to map VOP3 opcodes into VOP1, VOP2, VOPC
|
||
|
enum class OpMapVOP3VOPX : u32 {
|
||
|
VOP3_TO_VOPC = 0,
|
||
|
VOP3_TO_VOP2 = 256,
|
||
|
VOP3_TO_VOP1 = 384,
|
||
|
};
|
||
|
|
||
|
// Use to map all opcodes into a single enum
|
||
|
enum class OpcodeMap : u32 {
|
||
|
OP_MAP_SOP2 = 0,
|
||
|
OP_MAP_SOPK = OP_MAP_SOP2 + (u32)OpcodeSOP2::OP_RANGE_SOP2,
|
||
|
OP_MAP_SOP1 = OP_MAP_SOPK + (u32)OpcodeSOPK::OP_RANGE_SOPK,
|
||
|
OP_MAP_SOPC = OP_MAP_SOP1 + (u32)OpcodeSOP1::OP_RANGE_SOP1,
|
||
|
OP_MAP_SOPP = OP_MAP_SOPC + (u32)OpcodeSOPC::OP_RANGE_SOPC,
|
||
|
OP_MAP_VOPC = OP_MAP_SOPP + (u32)OpcodeSOPP::OP_RANGE_SOPP,
|
||
|
OP_MAP_VOP2 = OP_MAP_VOPC + (u32)OpcodeVOPC::OP_RANGE_VOPC,
|
||
|
OP_MAP_VOP1 = OP_MAP_VOP2 + (u32)OpcodeVOP2::OP_RANGE_VOP2,
|
||
|
OP_MAP_VOP3 = OP_MAP_VOP1 + (u32)OpcodeVOP1::OP_RANGE_VOP1,
|
||
|
OP_MAP_VINTRP = OP_MAP_VOP3 + (u32)OpcodeVOP3::OP_RANGE_VOP3,
|
||
|
OP_MAP_SMRD = OP_MAP_VINTRP + (u32)OpcodeVINTRP::OP_RANGE_VINTRP,
|
||
|
OP_MAP_DS = OP_MAP_SMRD + (u32)OpcodeSMRD::OP_RANGE_SMRD,
|
||
|
OP_MAP_MUBUF = OP_MAP_DS + (u32)OpcodeDS::OP_RANGE_DS,
|
||
|
OP_MAP_MTBUF = OP_MAP_MUBUF + (u32)OpcodeMUBUF::OP_RANGE_MUBUF,
|
||
|
OP_MAP_MIMG = OP_MAP_MTBUF + (u32)OpcodeMTBUF::OP_RANGE_MTBUF,
|
||
|
OP_MAP_EXP = OP_MAP_MIMG + (u32)OpcodeMIMG::OP_RANGE_MIMG,
|
||
|
};
|
||
|
|
||
|
enum class Opcode : u32 {
|
||
|
// SOP2
|
||
|
S_ADD_U32 = 0 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_SUB_U32 = 1 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ADD_I32 = 2 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_SUB_I32 = 3 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ADDC_U32 = 4 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_SUBB_U32 = 5 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_MIN_I32 = 6 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_MIN_U32 = 7 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_MAX_I32 = 8 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_MAX_U32 = 9 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_CSELECT_B32 = 10 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_CSELECT_B64 = 11 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_AND_B32 = 14 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_AND_B64 = 15 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_OR_B32 = 16 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_OR_B64 = 17 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_XOR_B32 = 18 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_XOR_B64 = 19 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ANDN2_B32 = 20 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ANDN2_B64 = 21 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ORN2_B32 = 22 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ORN2_B64 = 23 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_NAND_B32 = 24 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_NAND_B64 = 25 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_NOR_B32 = 26 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_NOR_B64 = 27 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_XNOR_B32 = 28 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_XNOR_B64 = 29 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_LSHL_B32 = 30 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_LSHL_B64 = 31 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_LSHR_B32 = 32 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_LSHR_B64 = 33 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ASHR_I32 = 34 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ASHR_I64 = 35 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFM_B32 = 36 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFM_B64 = 37 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_MUL_I32 = 38 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFE_U32 = 39 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFE_I32 = 40 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFE_U64 = 41 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_BFE_I64 = 42 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_CBRANCH_G_FORK = 43 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
S_ABSDIFF_I32 = 44 + (u32)OpcodeMap::OP_MAP_SOP2,
|
||
|
// SOPK
|
||
|
S_MOVK_I32 = 0 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMOVK_I32 = 2 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_EQ_I32 = 3 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LG_I32 = 4 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_GT_I32 = 5 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_GE_I32 = 6 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LT_I32 = 7 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LE_I32 = 8 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_EQ_U32 = 9 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LG_U32 = 10 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_GT_U32 = 11 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_GE_U32 = 12 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LT_U32 = 13 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CMPK_LE_U32 = 14 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_ADDK_I32 = 15 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_MULK_I32 = 16 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_CBRANCH_I_FORK = 17 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_GETREG_B32 = 18 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_SETREG_B32 = 19 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_GETREG_REGRD_B32 = 20 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
S_SETREG_IMM32_B32 = 21 + (u32)OpcodeMap::OP_MAP_SOPK,
|
||
|
// SOP1
|
||
|
S_MOV_B32 = 3 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOV_B64 = 4 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_CMOV_B32 = 5 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_CMOV_B64 = 6 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_NOT_B32 = 7 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_NOT_B64 = 8 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_WQM_B32 = 9 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_WQM_B64 = 10 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BREV_B32 = 11 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BREV_B64 = 12 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BCNT0_I32_B32 = 13 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BCNT0_I32_B64 = 14 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BCNT1_I32_B32 = 15 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BCNT1_I32_B64 = 16 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FF0_I32_B32 = 17 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FF0_I32_B64 = 18 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FF1_I32_B32 = 19 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FF1_I32_B64 = 20 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FLBIT_I32_B32 = 21 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FLBIT_I32_B64 = 22 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FLBIT_I32 = 23 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_FLBIT_I32_I64 = 24 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_SEXT_I32_I8 = 25 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_SEXT_I32_I16 = 26 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BITSET0_B32 = 27 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BITSET0_B64 = 28 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BITSET1_B32 = 29 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_BITSET1_B64 = 30 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_GETPC_B64 = 31 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_SETPC_B64 = 32 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_SWAPPC_B64 = 33 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_RFE_B64 = 34 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_AND_SAVEEXEC_B64 = 36 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_OR_SAVEEXEC_B64 = 37 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_XOR_SAVEEXEC_B64 = 38 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_ANDN2_SAVEEXEC_B64 = 39 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_ORN2_SAVEEXEC_B64 = 40 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_NAND_SAVEEXEC_B64 = 41 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_NOR_SAVEEXEC_B64 = 42 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_XNOR_SAVEEXEC_B64 = 43 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_QUADMASK_B32 = 44 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_QUADMASK_B64 = 45 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOVRELS_B32 = 46 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOVRELS_B64 = 47 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOVRELD_B32 = 48 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOVRELD_B64 = 49 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_CBRANCH_JOIN = 50 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOV_REGRD_B32 = 51 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_ABS_I32 = 52 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
S_MOV_FED_B32 = 53 + (u32)OpcodeMap::OP_MAP_SOP1,
|
||
|
// SOPC
|
||
|
S_CMP_EQ_I32 = 0 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LG_I32 = 1 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_GT_I32 = 2 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_GE_I32 = 3 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LT_I32 = 4 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LE_I32 = 5 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_EQ_U32 = 6 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LG_U32 = 7 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_GT_U32 = 8 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_GE_U32 = 9 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LT_U32 = 10 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_CMP_LE_U32 = 11 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_BITCMP0_B32 = 12 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_BITCMP1_B32 = 13 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_BITCMP0_B64 = 14 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_BITCMP1_B64 = 15 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
S_SETVSKIP = 16 + (u32)OpcodeMap::OP_MAP_SOPC,
|
||
|
// SOPP
|
||
|
S_NOP = 0 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_ENDPGM = 1 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_BRANCH = 2 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_SCC0 = 4 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_SCC1 = 5 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_VCCZ = 6 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_VCCNZ = 7 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_EXECZ = 8 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_EXECNZ = 9 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_BARRIER = 10 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SETKILL = 11 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_WAITCNT = 12 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SETHALT = 13 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SLEEP = 14 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SETPRIO = 15 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SENDMSG = 16 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_SENDMSGHALT = 17 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_TRAP = 18 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_ICACHE_INV = 19 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_INCPERFLEVEL = 20 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_DECPERFLEVEL = 21 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_TTRACEDATA = 22 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_CDBGSYS = 23 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_CDBGUSER = 24 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_CDBGSYS_OR_USER = 25 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
S_CBRANCH_CDBGSYS_AND_USER = 26 + (u32)OpcodeMap::OP_MAP_SOPP,
|
||
|
// VOPC
|
||
|
V_CMP_F_F32 = 0 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_F32 = 1 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_F32 = 2 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_F32 = 3 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_F32 = 4 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LG_F32 = 5 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_F32 = 6 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_O_F32 = 7 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_U_F32 = 8 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NGE_F32 = 9 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLG_F32 = 10 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NGT_F32 = 11 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLE_F32 = 12 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NEQ_F32 = 13 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLT_F32 = 14 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_F32 = 15 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_F32 = 15 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_F32 = 16 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_F32 = 17 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_F32 = 18 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_F32 = 19 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_F32 = 20 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LG_F32 = 21 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_F32 = 22 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_O_F32 = 23 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_U_F32 = 24 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NGE_F32 = 25 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLG_F32 = 26 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NGT_F32 = 27 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLE_F32 = 28 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NEQ_F32 = 29 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLT_F32 = 30 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_F32 = 31 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_F32 = 31 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_F_F64 = 32 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_F64 = 33 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_F64 = 34 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_F64 = 35 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_F64 = 36 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LG_F64 = 37 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_F64 = 38 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_O_F64 = 39 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_U_F64 = 40 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NGE_F64 = 41 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLG_F64 = 42 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NGT_F64 = 43 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLE_F64 = 44 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NEQ_F64 = 45 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NLT_F64 = 46 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_F64 = 47 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_F64 = 47 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_F64 = 48 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_F64 = 49 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_F64 = 50 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_F64 = 51 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_F64 = 52 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LG_F64 = 53 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_F64 = 54 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_O_F64 = 55 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_U_F64 = 56 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NGE_F64 = 57 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLG_F64 = 58 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NGT_F64 = 59 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLE_F64 = 60 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NEQ_F64 = 61 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NLT_F64 = 62 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_F64 = 63 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_F64 = 63 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_F_F32 = 64 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LT_F32 = 65 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_EQ_F32 = 66 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LE_F32 = 67 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_GT_F32 = 68 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LG_F32 = 69 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_GE_F32 = 70 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_O_F32 = 71 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_U_F32 = 72 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NGE_F32 = 73 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLG_F32 = 74 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NGT_F32 = 75 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLE_F32 = 76 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NEQ_F32 = 77 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLT_F32 = 78 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_TRU_F32 = 79 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_T_F32 = 79 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_F_F32 = 80 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LT_F32 = 81 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_EQ_F32 = 82 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LE_F32 = 83 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_GT_F32 = 84 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LG_F32 = 85 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_GE_F32 = 86 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_O_F32 = 87 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_U_F32 = 88 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NGE_F32 = 89 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLG_F32 = 90 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NGT_F32 = 91 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLE_F32 = 92 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NEQ_F32 = 93 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLT_F32 = 94 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_TRU_F32 = 95 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_T_F32 = 95 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_F_F64 = 96 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LT_F64 = 97 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_EQ_F64 = 98 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LE_F64 = 99 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_GT_F64 = 100 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_LG_F64 = 101 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_GE_F64 = 102 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_O_F64 = 103 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_U_F64 = 104 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NGE_F64 = 105 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLG_F64 = 106 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NGT_F64 = 107 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLE_F64 = 108 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NEQ_F64 = 109 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_NLT_F64 = 110 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_TRU_F64 = 111 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPS_T_F64 = 111 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_F_F64 = 112 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LT_F64 = 113 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_EQ_F64 = 114 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LE_F64 = 115 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_GT_F64 = 116 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_LG_F64 = 117 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_GE_F64 = 118 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_O_F64 = 119 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_U_F64 = 120 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NGE_F64 = 121 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLG_F64 = 122 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NGT_F64 = 123 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLE_F64 = 124 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NEQ_F64 = 125 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_NLT_F64 = 126 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_TRU_F64 = 127 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPSX_T_F64 = 127 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_F_I32 = 128 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_I32 = 129 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_I32 = 130 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_I32 = 131 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_I32 = 132 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NE_I32 = 133 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_I32 = 134 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_I32 = 135 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_I32 = 135 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_CLASS_F32 = 136 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_I32 = 144 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_I32 = 145 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_I32 = 146 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_I32 = 147 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_I32 = 148 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LG_I32 = 149 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NE_I32 = 149 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_I32 = 150 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_I32 = 151 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_I32 = 151 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_CLASS_F32 = 152 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_F_I64 = 160 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_I64 = 161 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_I64 = 162 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_I64 = 163 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_I64 = 164 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LG_I64 = 165 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NE_I64 = 165 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_I64 = 166 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_I64 = 167 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_I64 = 167 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_CLASS_F64 = 168 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_I64 = 176 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_I64 = 177 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_I64 = 178 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_I64 = 179 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_I64 = 180 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LG_I64 = 181 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NE_I64 = 181 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_I64 = 182 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_I64 = 183 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_I64 = 183 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_CLASS_F64 = 184 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_F_U32 = 192 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_U32 = 193 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_U32 = 194 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_U32 = 195 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_U32 = 196 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NE_U32 = 197 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_U32 = 198 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_U32 = 199 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_U32 = 199 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_U32 = 208 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_U32 = 209 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_U32 = 210 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_U32 = 211 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_U32 = 212 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NE_U32 = 213 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_U32 = 214 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_U32 = 215 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_U32 = 215 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_F_U64 = 224 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LT_U64 = 225 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_EQ_U64 = 226 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LE_U64 = 227 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GT_U64 = 228 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_LG_U64 = 229 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_NE_U64 = 229 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_GE_U64 = 230 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_TRU_U64 = 231 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMP_T_U64 = 231 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_F_U64 = 240 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LT_U64 = 241 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_EQ_U64 = 242 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LE_U64 = 243 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GT_U64 = 244 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_LG_U64 = 245 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_NE_U64 = 245 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_GE_U64 = 246 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_TRU_U64 = 247 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
V_CMPX_T_U64 = 247 + (u32)OpcodeMap::OP_MAP_VOPC,
|
||
|
// VOP2
|
||
|
V_CNDMASK_B32 = 0 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_READLANE_B32 = 1 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_WRITELANE_B32 = 2 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_ADD_F32 = 3 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUB_F32 = 4 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUBREV_F32 = 5 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAC_LEGACY_F32 = 6 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_LEGACY_F32 = 7 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_F32 = 8 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_I32_I24 = 9 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_HI_I32_I24 = 10 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_U32_U24 = 11 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MUL_HI_U32_U24 = 12 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MIN_LEGACY_F32 = 13 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAX_LEGACY_F32 = 14 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MIN_F32 = 15 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAX_F32 = 16 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MIN_I32 = 17 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAX_I32 = 18 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MIN_U32 = 19 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAX_U32 = 20 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_LSHR_B32 = 21 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_LSHRREV_B32 = 22 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_ASHR_I32 = 23 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_ASHRREV_I32 = 24 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_LSHL_B32 = 25 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_LSHLREV_B32 = 26 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_AND_B32 = 27 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_OR_B32 = 28 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_XOR_B32 = 29 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_BFM_B32 = 30 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MAC_F32 = 31 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MADMK_F32 = 32 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MADAK_F32 = 33 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_BCNT_U32_B32 = 34 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MBCNT_LO_U32_B32 = 35 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_MBCNT_HI_U32_B32 = 36 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_ADD_I32 = 37 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUB_I32 = 38 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUBREV_I32 = 39 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_ADDC_U32 = 40 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUBB_U32 = 41 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_SUBBREV_U32 = 42 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_LDEXP_F32 = 43 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PKACCUM_U8_F32 = 44 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PKNORM_I16_F32 = 45 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PKNORM_U16_F32 = 46 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PKRTZ_F16_F32 = 47 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PK_U16_U32 = 48 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
V_CVT_PK_I16_I32 = 49 + (u32)OpcodeMap::OP_MAP_VOP2,
|
||
|
// VOP1
|
||
|
V_NOP = 0 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_MOV_B32 = 1 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_READFIRSTLANE_B32 = 2 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_I32_F64 = 3 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F64_I32 = 4 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_I32 = 5 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_U32 = 6 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_U32_F32 = 7 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_I32_F32 = 8 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_MOV_FED_B32 = 9 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F16_F32 = 10 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_F16 = 11 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_RPI_I32_F32 = 12 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_FLR_I32_F32 = 13 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_OFF_F32_I4 = 14 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_F64 = 15 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F64_F32 = 16 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_UBYTE0 = 17 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_UBYTE1 = 18 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_UBYTE2 = 19 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F32_UBYTE3 = 20 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_U32_F64 = 21 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CVT_F64_U32 = 22 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_TRUNC_F64 = 23 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CEIL_F64 = 24 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RNDNE_F64 = 25 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FLOOR_F64 = 26 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FRACT_F32 = 32 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_TRUNC_F32 = 33 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CEIL_F32 = 34 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RNDNE_F32 = 35 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FLOOR_F32 = 36 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_EXP_F32 = 37 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_LOG_CLAMP_F32 = 38 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_LOG_F32 = 39 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_CLAMP_F32 = 40 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_LEGACY_F32 = 41 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_F32 = 42 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_IFLAG_F32 = 43 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RSQ_CLAMP_F32 = 44 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RSQ_LEGACY_F32 = 45 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RSQ_F32 = 46 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_F64 = 47 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RCP_CLAMP_F64 = 48 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RSQ_F64 = 49 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_RSQ_CLAMP_F64 = 50 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_SQRT_F32 = 51 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_SQRT_F64 = 52 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_SIN_F32 = 53 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_COS_F32 = 54 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_NOT_B32 = 55 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_BFREV_B32 = 56 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FFBH_U32 = 57 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FFBL_B32 = 58 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FFBH_I32 = 59 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FREXP_EXP_I32_F64 = 60 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FREXP_MANT_F64 = 61 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FRACT_F64 = 62 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FREXP_EXP_I32_F32 = 63 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_FREXP_MANT_F32 = 64 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_CLREXCP = 65 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_MOVRELD_B32 = 66 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_MOVRELS_B32 = 67 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_MOVRELSD_B32 = 68 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_LOG_LEGACY_F32 = 69 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
V_EXP_LEGACY_F32 = 70 + (u32)OpcodeMap::OP_MAP_VOP1,
|
||
|
// VOP3
|
||
|
V_MAD_LEGACY_F32 = 320 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAD_F32 = 321 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAD_I32_I24 = 322 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAD_U32_U24 = 323 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_CUBEID_F32 = 324 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_CUBESC_F32 = 325 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_CUBETC_F32 = 326 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_CUBEMA_F32 = 327 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_BFE_U32 = 328 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_BFE_I32 = 329 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_BFI_B32 = 330 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_FMA_F32 = 331 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_FMA_F64 = 332 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_LERP_U8 = 333 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_ALIGNBIT_B32 = 334 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_ALIGNBYTE_B32 = 335 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MULLIT_F32 = 336 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MIN3_F32 = 337 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MIN3_I32 = 338 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MIN3_U32 = 339 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAX3_F32 = 340 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAX3_I32 = 341 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAX3_U32 = 342 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MED3_F32 = 343 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MED3_I32 = 344 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MED3_U32 = 345 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_SAD_U8 = 346 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_SAD_HI_U8 = 347 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_SAD_U16 = 348 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_SAD_U32 = 349 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_CVT_PK_U8_F32 = 350 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_FIXUP_F32 = 351 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_FIXUP_F64 = 352 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_LSHL_B64 = 353 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_LSHR_B64 = 354 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_ASHR_I64 = 355 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_ADD_F64 = 356 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MUL_F64 = 357 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MIN_F64 = 358 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAX_F64 = 359 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_LDEXP_F64 = 360 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MUL_LO_U32 = 361 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MUL_HI_U32 = 362 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MUL_LO_I32 = 363 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MUL_HI_I32 = 364 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_SCALE_F32 = 365 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_SCALE_F64 = 366 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_FMAS_F32 = 367 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_DIV_FMAS_F64 = 368 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MSAD_U8 = 369 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_QSAD_U8 = 370 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_QSAD_PK_U16_U8 = 370 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MQSAD_U8 = 371 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MQSAD_PK_U16_U8 = 371 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_TRIG_PREOP_F64 = 372 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MQSAD_U32_U8 = 373 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAD_U64_U32 = 374 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
V_MAD_I64_I32 = 375 + (u32)OpcodeMap::OP_MAP_VOP3,
|
||
|
// VINTRP
|
||
|
V_INTERP_P1_F32 = 0 + (u32)OpcodeMap::OP_MAP_VINTRP,
|
||
|
V_INTERP_P2_F32 = 1 + (u32)OpcodeMap::OP_MAP_VINTRP,
|
||
|
V_INTERP_MOV_F32 = 2 + (u32)OpcodeMap::OP_MAP_VINTRP,
|
||
|
// SMRD
|
||
|
S_LOAD_DWORD = 0 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_LOAD_DWORDX2 = 1 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_LOAD_DWORDX4 = 2 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_LOAD_DWORDX8 = 3 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_LOAD_DWORDX16 = 4 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_BUFFER_LOAD_DWORD = 8 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_BUFFER_LOAD_DWORDX2 = 9 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_BUFFER_LOAD_DWORDX4 = 10 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_BUFFER_LOAD_DWORDX8 = 11 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_BUFFER_LOAD_DWORDX16 = 12 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_MEMTIME = 30 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
S_DCACHE_INV = 31 + (u32)OpcodeMap::OP_MAP_SMRD,
|
||
|
// DS
|
||
|
DS_ADD_U32 = 0 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_U32 = 1 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_U32 = 2 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_U32 = 3 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_U32 = 4 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_I32 = 5 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_I32 = 6 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_U32 = 7 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_U32 = 8 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_B32 = 9 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_B32 = 10 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_B32 = 11 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MSKOR_B32 = 12 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B32 = 13 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE2_B32 = 14 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE2ST64_B32 = 15 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_B32 = 16 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_F32 = 17 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_F32 = 18 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_F32 = 19 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_NOP = 20 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_SEMA_RELEASE_ALL = 24 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_INIT = 25 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_SEMA_V = 26 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_SEMA_BR = 27 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_SEMA_P = 28 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_GWS_BARRIER = 29 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B8 = 30 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B16 = 31 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ADD_RTN_U32 = 32 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_RTN_U32 = 33 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_RTN_U32 = 34 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_RTN_U32 = 35 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_RTN_U32 = 36 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_I32 = 37 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_I32 = 38 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_U32 = 39 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_U32 = 40 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_RTN_B32 = 41 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_RTN_B32 = 42 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_RTN_B32 = 43 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MSKOR_RTN_B32 = 44 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG_RTN_B32 = 45 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG2_RTN_B32 = 46 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG2ST64_RTN_B32 = 47 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_RTN_B32 = 48 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_RTN_F32 = 49 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_F32 = 50 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_F32 = 51 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRAP_RTN_B32 = 52 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SWIZZLE_B32 = 53 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_B32 = 54 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ2_B32 = 55 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ2ST64_B32 = 56 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_I8 = 57 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_U8 = 58 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_I16 = 59 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_U16 = 60 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CONSUME = 61 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_APPEND = 62 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ORDERED_COUNT = 63 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ADD_U64 = 64 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_U64 = 65 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_U64 = 66 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_U64 = 67 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_U64 = 68 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_I64 = 69 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_I64 = 70 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_U64 = 71 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_U64 = 72 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_B64 = 73 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_B64 = 74 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_B64 = 75 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MSKOR_B64 = 76 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B64 = 77 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE2_B64 = 78 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE2ST64_B64 = 79 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_B64 = 80 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_F64 = 81 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_F64 = 82 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_F64 = 83 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ADD_RTN_U64 = 96 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_RTN_U64 = 97 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_RTN_U64 = 98 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_RTN_U64 = 99 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_RTN_U64 = 100 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_I64 = 101 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_I64 = 102 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_U64 = 103 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_U64 = 104 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_RTN_B64 = 105 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_RTN_B64 = 106 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_RTN_B64 = 107 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MSKOR_RTN_B64 = 108 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG_RTN_B64 = 109 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG2_RTN_B64 = 110 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRXCHG2ST64_RTN_B64 = 111 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_RTN_B64 = 112 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CMPST_RTN_F64 = 113 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_RTN_F64 = 114 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_RTN_F64 = 115 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_B64 = 118 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ2_B64 = 119 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ2ST64_B64 = 120 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CONDXCHG32_RTN_B64 = 126 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ADD_SRC2_U32 = 128 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_SRC2_U32 = 129 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_SRC2_U32 = 130 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_SRC2_U32 = 131 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_SRC2_U32 = 132 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_I32 = 133 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_I32 = 134 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_U32 = 135 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_U32 = 136 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_SRC2_B32 = 137 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_SRC2_B32 = 138 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_SRC2_B32 = 139 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_SRC2_B32 = 141 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_F32 = 146 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_F32 = 147 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_ADD_SRC2_U64 = 192 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_SUB_SRC2_U64 = 193 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_RSUB_SRC2_U64 = 194 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_INC_SRC2_U64 = 195 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_DEC_SRC2_U64 = 196 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_I64 = 197 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_I64 = 198 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_U64 = 199 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_U64 = 200 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_AND_SRC2_B64 = 201 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_OR_SRC2_B64 = 202 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_XOR_SRC2_B64 = 203 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_SRC2_B64 = 205 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MIN_SRC2_F64 = 210 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_MAX_SRC2_F64 = 211 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B96 = 222 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_WRITE_B128 = 223 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_CONDXCHG32_RTN_B128 = 253 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_B96 = 254 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
DS_READ_B128 = 255 + (u32)OpcodeMap::OP_MAP_DS,
|
||
|
// MUBUF
|
||
|
BUFFER_LOAD_FORMAT_X = 0 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_FORMAT_XY = 1 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_FORMAT_XYZ = 2 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_FORMAT_XYZW = 3 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_FORMAT_X = 4 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_FORMAT_XY = 5 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_FORMAT_XYZ = 6 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_FORMAT_XYZW = 7 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_UBYTE = 8 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_SBYTE = 9 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_USHORT = 10 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_SSHORT = 11 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_DWORD = 12 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_DWORDX2 = 13 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_DWORDX4 = 14 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_LOAD_DWORDX3 = 15 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_BYTE = 24 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_SHORT = 26 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_DWORD = 28 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_DWORDX2 = 29 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_DWORDX4 = 30 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_STORE_DWORDX3 = 31 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SWAP = 48 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_CMPSWAP = 49 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_ADD = 50 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SUB = 51 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SMIN = 53 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_UMIN = 54 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SMAX = 55 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_UMAX = 56 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_AND = 57 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_OR = 58 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_XOR = 59 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_INC = 60 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_DEC = 61 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FCMPSWAP = 62 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FMIN = 63 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FMAX = 64 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SWAP_X2 = 80 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_CMPSWAP_X2 = 81 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_ADD_X2 = 82 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SUB_X2 = 83 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SMIN_X2 = 85 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_UMIN_X2 = 86 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_SMAX_X2 = 87 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_UMAX_X2 = 88 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_AND_X2 = 89 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_OR_X2 = 90 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_XOR_X2 = 91 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_INC_X2 = 92 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_DEC_X2 = 93 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FCMPSWAP_X2 = 94 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FMIN_X2 = 95 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_ATOMIC_FMAX_X2 = 96 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_WBINVL1_SC = 112 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
BUFFER_WBINVL1 = 113 + (u32)OpcodeMap::OP_MAP_MUBUF,
|
||
|
// MTBUF
|
||
|
TBUFFER_LOAD_FORMAT_X = 0 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_LOAD_FORMAT_XY = 1 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_LOAD_FORMAT_XYZ = 2 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_LOAD_FORMAT_XYZW = 3 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_STORE_FORMAT_X = 4 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_STORE_FORMAT_XY = 5 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_STORE_FORMAT_XYZ = 6 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
TBUFFER_STORE_FORMAT_XYZW = 7 + (u32)OpcodeMap::OP_MAP_MTBUF,
|
||
|
// MIMG
|
||
|
IMAGE_LOAD = 0 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_LOAD_MIP = 1 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_LOAD_PCK = 2 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_LOAD_PCK_SGN = 3 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_LOAD_MIP_PCK = 4 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_LOAD_MIP_PCK_SGN = 5 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_STORE = 8 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_STORE_MIP = 9 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_STORE_PCK = 10 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_STORE_MIP_PCK = 11 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GET_RESINFO = 14 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_SWAP = 15 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_CMPSWAP = 16 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_ADD = 17 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_SUB = 18 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_SMIN = 20 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_UMIN = 21 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_SMAX = 22 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_UMAX = 23 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_AND = 24 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_OR = 25 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_XOR = 26 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_INC = 27 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_DEC = 28 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_FCMPSWAP = 29 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_FMIN = 30 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_ATOMIC_FMAX = 31 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE = 32 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CL = 33 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_D = 34 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_D_CL = 35 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_L = 36 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_B = 37 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_B_CL = 38 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_LZ = 39 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C = 40 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CL = 41 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_D = 42 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_D_CL = 43 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_L = 44 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_B = 45 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_B_CL = 46 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_LZ = 47 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_O = 48 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CL_O = 49 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_D_O = 50 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_D_CL_O = 51 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_L_O = 52 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_B_O = 53 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_B_CL_O = 54 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_LZ_O = 55 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_O = 56 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CL_O = 57 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_D_O = 58 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_D_CL_O = 59 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_L_O = 60 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_B_O = 61 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_B_CL_O = 62 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_LZ_O = 63 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4 = 64 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_CL = 65 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_L = 68 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_B = 69 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_B_CL = 70 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_LZ = 71 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C = 72 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_CL = 73 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_L = 76 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_B = 77 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_B_CL = 78 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_LZ = 79 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_O = 80 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_CL_O = 81 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_L_O = 84 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_B_O = 85 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_B_CL_O = 86 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_LZ_O = 87 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_O = 88 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_CL_O = 89 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_L_O = 92 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_B_O = 93 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_B_CL_O = 94 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GATHER4_C_LZ_O = 95 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_GET_LOD = 96 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CD = 104 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CD_CL = 105 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CD = 106 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CD_CL = 107 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CD_O = 108 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_CD_CL_O = 109 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CD_O = 110 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
IMAGE_SAMPLE_C_CD_CL_O = 111 + (u32)OpcodeMap::OP_MAP_MIMG,
|
||
|
// EXP
|
||
|
EXP = 0 + (u32)OpcodeMap::OP_MAP_EXP,
|
||
|
};
|
||
|
|
||
|
enum class EncodingMask : u32 {
|
||
|
MASK_9bit = 0x000001FFULL << 23,
|
||
|
MASK_7bit = 0x0000007FULL << 25,
|
||
|
MASK_6bit = 0x0000003FULL << 26,
|
||
|
MASK_5bit = 0x0000001FULL << 27,
|
||
|
MASK_4bit = 0x0000000FULL << 28,
|
||
|
MASK_2bit = 0x00000003ULL << 30,
|
||
|
MASK_1bit = 0x00000001ULL << 31
|
||
|
};
|
||
|
|
||
|
enum class InstEncoding : u32 {
|
||
|
/// InstructionEncodingMask_9bit
|
||
|
/// bits [31:23] - (1 0 1 1 1 1 1 0 1)
|
||
|
SOP1 = 0x0000017Du << 23,
|
||
|
/// bits [31:23] - (1 0 1 1 1 1 1 1 1)
|
||
|
SOPP = 0x0000017Fu << 23,
|
||
|
/// bits [31:23] - (1 0 1 1 1 1 1 1 0)
|
||
|
SOPC = 0x0000017Eu << 23,
|
||
|
/// InstructionEncodingMask_7bit
|
||
|
/// bits [31:25] - (0 1 1 1 1 1 1)
|
||
|
VOP1 = 0x0000003Fu << 25,
|
||
|
/// bits [31:25] - (0 1 1 1 1 1 0)
|
||
|
VOPC = 0x0000003Eu << 25,
|
||
|
/// InstructionEncodingMask_6bit
|
||
|
/// bits [31:26] - (1 1 0 1 0 0)
|
||
|
VOP3 = 0x00000034u << 26,
|
||
|
/// bits [31:26] - (1 1 1 1 1 0)
|
||
|
EXP = 0x0000003Eu << 26,
|
||
|
/// bits [31:26] - (1 1 0 0 1 0)
|
||
|
VINTRP = 0x00000032u << 26,
|
||
|
/// bits [31:26] - (1 1 0 1 1 0)
|
||
|
DS = 0x00000036u << 26,
|
||
|
/// bits [31:26] - (1 1 1 0 0 0)
|
||
|
MUBUF = 0x00000038u << 26,
|
||
|
/// bits [31:26] - (1 1 1 0 1 0)
|
||
|
MTBUF = 0x0000003Au << 26,
|
||
|
/// bits [31:26] - (1 1 1 1 0 0)
|
||
|
MIMG = 0x0000003Cu << 26,
|
||
|
/// InstructionEncodingMask_5bit
|
||
|
/// bits [31:27] - (1 1 0 0 0)
|
||
|
SMRD = 0x00000018u << 27,
|
||
|
/// InstructionEncodingMask_4bit
|
||
|
/// bits [31:28] - (1 0 1 1)
|
||
|
SOPK = 0x0000000Bu << 28,
|
||
|
/// InstructionEncodingMask_2bit
|
||
|
/// bits [31:30] - (1 0)
|
||
|
SOP2 = 0x00000002u << 30,
|
||
|
/// InstructionEncodingMask_1bit
|
||
|
/// bits [31:31] - (0)
|
||
|
VOP2 = 0x00000000u << 31,
|
||
|
|
||
|
ILLEGAL
|
||
|
};
|
||
|
|
||
|
enum class InstClass : u32 {
|
||
|
Undefined,
|
||
|
|
||
|
ScalarArith,
|
||
|
ScalarAbs,
|
||
|
ScalarMov,
|
||
|
ScalarMovRel,
|
||
|
ScalarCmp,
|
||
|
ScalarSelect,
|
||
|
ScalarBitLogic,
|
||
|
ScalarBitManip,
|
||
|
ScalarBitField,
|
||
|
ScalarConv,
|
||
|
ScalarExecMask,
|
||
|
ScalarQuadMask,
|
||
|
|
||
|
VectorRegMov,
|
||
|
VectorMovRel,
|
||
|
VectorLane,
|
||
|
VectorBitLogic,
|
||
|
VectorBitField32,
|
||
|
VectorThreadMask,
|
||
|
VectorBitField64,
|
||
|
VectorFpArith32,
|
||
|
VectorFpRound32,
|
||
|
VectorFpField32,
|
||
|
VectorFpTran32,
|
||
|
VectorFpCmp32,
|
||
|
VectorFpArith64,
|
||
|
VectorFpRound64,
|
||
|
VectorFpField64,
|
||
|
VectorFpTran64,
|
||
|
VectorFpCmp64,
|
||
|
VectorIntArith32,
|
||
|
VectorIntArith64,
|
||
|
VectorIntCmp32,
|
||
|
VectorIntCmp64,
|
||
|
VectorConv,
|
||
|
VectorFpGraph32,
|
||
|
VectorIntGraph,
|
||
|
VectorMisc,
|
||
|
|
||
|
ScalarProgFlow,
|
||
|
ScalarSync,
|
||
|
ScalarWait,
|
||
|
ScalarCache,
|
||
|
ScalarPrior,
|
||
|
ScalarRegAccess,
|
||
|
ScalarMsg,
|
||
|
|
||
|
ScalarMemRd,
|
||
|
ScalarMemUt,
|
||
|
|
||
|
VectorMemBufNoFmt,
|
||
|
VectorMemBufFmt,
|
||
|
VectorMemBufAtomic,
|
||
|
VectorMemImgNoSmp,
|
||
|
VectorMemImgSmp,
|
||
|
VectorMemImgUt,
|
||
|
VectorMemL1Cache,
|
||
|
|
||
|
DsIdxRd,
|
||
|
DsIdxWr,
|
||
|
DsIdxWrXchg,
|
||
|
DsIdxCondXchg,
|
||
|
DsIdxWrap,
|
||
|
DsAtomicArith32,
|
||
|
DsAtomicArith64,
|
||
|
DsAtomicMinMax32,
|
||
|
DsAtomicMinMax64,
|
||
|
DsAtomicCmpSt32,
|
||
|
DsAtomicCmpSt64,
|
||
|
DsAtomicLogic32,
|
||
|
DsAtomicLogic64,
|
||
|
DsAppendCon,
|
||
|
DsDataShareUt,
|
||
|
DsDataShareMisc,
|
||
|
GdsSync,
|
||
|
GdsOrdCnt,
|
||
|
|
||
|
VectorInterpFpCache,
|
||
|
|
||
|
Exp,
|
||
|
|
||
|
DbgProf
|
||
|
};
|
||
|
|
||
|
enum class InstCategory : u32 {
|
||
|
Undefined,
|
||
|
/// Scalar ALU Operation
|
||
|
ScalarALU,
|
||
|
/// Scalar Instruction Memory
|
||
|
ScalarMemory,
|
||
|
/// Vector ALU Operation
|
||
|
VectorALU,
|
||
|
/// Vector Instruction Memory Read
|
||
|
VectorMemory,
|
||
|
/// Scalar Program Flow Control and Special Operations
|
||
|
FlowControl,
|
||
|
/// LDS and GDS
|
||
|
DataShare,
|
||
|
/// Vector Interpolation Operations
|
||
|
VectorInterpolation,
|
||
|
/// Export
|
||
|
Export,
|
||
|
/// Debug and Profiling Operations
|
||
|
DebugProfile,
|
||
|
};
|
||
|
|
||
|
enum class ScalarType : u32 {
|
||
|
Undefined,
|
||
|
Any,
|
||
|
Uint32,
|
||
|
Uint64,
|
||
|
Sint32,
|
||
|
Sint64,
|
||
|
Float16,
|
||
|
Float32,
|
||
|
Float64,
|
||
|
Bool,
|
||
|
};
|
||
|
|
||
|
/// Instruction's action when GPU thread is not active.
|
||
|
enum class DivergentAction : u32 { Nop, ZeroScalar, Execute };
|
||
|
|
||
|
enum class OperandField : u32 {
|
||
|
ScalarGPR = 0,
|
||
|
VccLo = 106,
|
||
|
VccHi,
|
||
|
M0 = 124,
|
||
|
ExecLo = 126,
|
||
|
ExecHi,
|
||
|
ConstZero,
|
||
|
SignedConstIntPos = 129,
|
||
|
SignedConstIntNeg = 193,
|
||
|
ConstFloatPos_0_5 = 240,
|
||
|
ConstFloatNeg_0_5,
|
||
|
ConstFloatPos_1_0,
|
||
|
ConstFloatNeg_1_0,
|
||
|
ConstFloatPos_2_0,
|
||
|
ConstFloatNeg_2_0,
|
||
|
ConstFloatPos_4_0,
|
||
|
ConstFloatNeg_4_0,
|
||
|
VccZ = 251,
|
||
|
ExecZ,
|
||
|
Scc,
|
||
|
LdsDirect,
|
||
|
LiteralConst,
|
||
|
VectorGPR,
|
||
|
|
||
|
Undefined = 0xFFFFFFFF,
|
||
|
};
|
||
|
|
||
|
enum class SystemValue : u32 {
|
||
|
None = 0,
|
||
|
Position = 1,
|
||
|
ClipDistance = 2,
|
||
|
CullDistance = 3,
|
||
|
RenderTargetId = 4,
|
||
|
ViewportId = 5,
|
||
|
VertexId = 6,
|
||
|
PrimitiveId = 7,
|
||
|
InstanceId = 8,
|
||
|
IsFrontFace = 9,
|
||
|
SampleIndex = 10,
|
||
|
FinalQuadUeq0EdgeTessFactor = 11,
|
||
|
FinalQuadVeq0EdgeTessFactor = 12,
|
||
|
FinalQuadUeq1EdgeTessFactor = 13,
|
||
|
FinalQuadVeq1EdgeTessFactor = 14,
|
||
|
FinalQuadUInsideTessFactor = 15,
|
||
|
FinalQuadVInsideTessFactor = 16,
|
||
|
FinalTriUeq0EdgeTessFactor = 17,
|
||
|
FinalTriVeq0EdgeTessFactor = 18,
|
||
|
FinalTriWeq0EdgeTessFactor = 19,
|
||
|
FinalTriInsideTessFactor = 20,
|
||
|
FinalLineDetailTessFactor = 21,
|
||
|
FinalLineDensityTessFactor = 22,
|
||
|
GlobalInvocationId = 23,
|
||
|
WorkgroupId = 24,
|
||
|
LocalInvocationId = 25,
|
||
|
LocalInvocationIndex = 26,
|
||
|
Target = 64,
|
||
|
Depth = 65,
|
||
|
Coverage = 66,
|
||
|
DepthGe = 67,
|
||
|
DepthLe = 68,
|
||
|
NumSubgroups = 70,
|
||
|
SubgroupID = 71,
|
||
|
SubgroupSize = 72,
|
||
|
SubgroupInvocationID = 73,
|
||
|
SubgroupEqMask = 74,
|
||
|
SubgroupGeMask = 75,
|
||
|
SubgroupGtMask = 76,
|
||
|
SubgroupLeMask = 77,
|
||
|
SubgroupLtMask = 78,
|
||
|
};
|
||
|
|
||
|
enum class InterpolationMode : u32 {
|
||
|
Undefined = 0,
|
||
|
Constant = 1,
|
||
|
Linear = 2,
|
||
|
LinearCentroid = 3,
|
||
|
LinearNoPerspective = 4,
|
||
|
LinearNoPerspectiveCentroid = 5,
|
||
|
LinearSample = 6,
|
||
|
LinearNoPerspectiveSample = 7,
|
||
|
};
|
||
|
|
||
|
enum class MimgModifier : u32 {
|
||
|
Lod, /// LOD is used instead of TA computed LOD.
|
||
|
LodBias, /// Add this BIAS to the LOD TA computes.
|
||
|
LodClamp, /// Clamp the LOD to be no larger than this value.
|
||
|
Derivative, /// Send dx/dv, dx/dy, etc. slopes to TA for it to used in LOD computation.
|
||
|
CoarseDerivative, /// Send dx/dv, dx/dy, etc. slopes to TA for it to used in LOD computation.
|
||
|
Level0, /// Force use of MIP level 0.
|
||
|
Pcf, /// Percentage closer filtering.
|
||
|
Offset /// Send X, Y, Z integer offsets (packed into 1 Dword) to offset XYZ address.
|
||
|
};
|
||
|
using MimgModifierFlags = Common::Flags<MimgModifier>;
|
||
|
|
||
|
enum class ImageResComponent : u32 { Width, Height, Depth, MipCount };
|
||
|
using ImageResFlags = Common::Flags<ImageResComponent>;
|
||
|
|
||
|
enum class ImageAddrComponent : u32 {
|
||
|
Offsets,
|
||
|
Bias,
|
||
|
Zpcf,
|
||
|
DxDh,
|
||
|
DyDh,
|
||
|
DzDh,
|
||
|
DxDv,
|
||
|
DyDv,
|
||
|
DzDv,
|
||
|
X,
|
||
|
Y,
|
||
|
Z,
|
||
|
Slice,
|
||
|
FaceId,
|
||
|
FragId,
|
||
|
Lod,
|
||
|
Clamp,
|
||
|
};
|
||
|
|
||
|
} // namespace Shader::Gcn
|