# autogenerated from AMD ISA XML - do not edit
# ruff: noqa: E501,F401
from tinygrad.renderer.amd.dsl import BitField, DPP, DPP16, EXEC, EXECZ, EXEC_HI, EXEC_LO, EnumBitField, FixedBitField, INV_2PI, Inst, LIT, M0, NULL, OFF, SBaseField, SCC, SDWA, SGPRField, SRC_LDS_DIRECT, SSrcField, SrcField, VCC, VCCZ, VCC_HI, VCC_LO, VDSTYField, VGPRField, s, src, ttmp, v
from tinygrad.runtime.autogen.amd.rdna4.enum import DSOp, SMEMOp, SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VBUFFEROp, VDSDIROp, VEXPORTOp, VFLATOp, VGLOBALOp, VIMAGEOp, VINTERPOp, VOP1Op, VOP2Op, VOP3Op, VOP3POp, VOP3SDOp, VOPCOp, VOPDOp, VSAMPLEOp, VSCRATCHOp, HWREG, MSG
import functools

class DS(Inst):
  encoding = FixedBitField(31, 26, 0b110110)
  op = EnumBitField(25, 18, DSOp, {DSOp.DS_ADD_U32, DSOp.DS_SUB_U32, DSOp.DS_RSUB_U32, DSOp.DS_INC_U32, DSOp.DS_DEC_U32, DSOp.DS_MIN_I32, DSOp.DS_MAX_I32, DSOp.DS_MIN_U32, DSOp.DS_MAX_U32, DSOp.DS_AND_B32, DSOp.DS_OR_B32, DSOp.DS_XOR_B32, DSOp.DS_MSKOR_B32, DSOp.DS_STORE_B32, DSOp.DS_STORE_2ADDR_B32, DSOp.DS_STORE_2ADDR_STRIDE64_B32, DSOp.DS_CMPSTORE_B32, DSOp.DS_MIN_NUM_F32, DSOp.DS_MAX_NUM_F32, DSOp.DS_NOP, DSOp.DS_ADD_F32, DSOp.DS_STORE_B8, DSOp.DS_STORE_B16, DSOp.DS_ADD_RTN_U32, DSOp.DS_SUB_RTN_U32, DSOp.DS_RSUB_RTN_U32, DSOp.DS_INC_RTN_U32, DSOp.DS_DEC_RTN_U32, DSOp.DS_MIN_RTN_I32, DSOp.DS_MAX_RTN_I32, DSOp.DS_MIN_RTN_U32, DSOp.DS_MAX_RTN_U32, DSOp.DS_AND_RTN_B32, DSOp.DS_OR_RTN_B32, DSOp.DS_XOR_RTN_B32, DSOp.DS_MSKOR_RTN_B32, DSOp.DS_STOREXCHG_RTN_B32, DSOp.DS_STOREXCHG_2ADDR_RTN_B32, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32, DSOp.DS_CMPSTORE_RTN_B32, DSOp.DS_MIN_NUM_RTN_F32, DSOp.DS_MAX_NUM_RTN_F32, DSOp.DS_SWIZZLE_B32, DSOp.DS_LOAD_B32, DSOp.DS_LOAD_2ADDR_B32, DSOp.DS_LOAD_2ADDR_STRIDE64_B32, DSOp.DS_LOAD_I8, DSOp.DS_LOAD_U8, DSOp.DS_LOAD_I16, DSOp.DS_LOAD_U16, DSOp.DS_CONSUME, DSOp.DS_APPEND, DSOp.DS_ADD_U64, DSOp.DS_SUB_U64, DSOp.DS_RSUB_U64, DSOp.DS_INC_U64, DSOp.DS_DEC_U64, DSOp.DS_MIN_I64, DSOp.DS_MAX_I64, DSOp.DS_MIN_U64, DSOp.DS_MAX_U64, DSOp.DS_AND_B64, DSOp.DS_OR_B64, DSOp.DS_XOR_B64, DSOp.DS_MSKOR_B64, DSOp.DS_STORE_B64, DSOp.DS_STORE_2ADDR_B64, DSOp.DS_STORE_2ADDR_STRIDE64_B64, DSOp.DS_CMPSTORE_B64, DSOp.DS_MIN_NUM_F64, DSOp.DS_MAX_NUM_F64, DSOp.DS_ADD_RTN_U64, DSOp.DS_SUB_RTN_U64, DSOp.DS_RSUB_RTN_U64, DSOp.DS_INC_RTN_U64, DSOp.DS_DEC_RTN_U64, DSOp.DS_MIN_RTN_I64, DSOp.DS_MAX_RTN_I64, DSOp.DS_MIN_RTN_U64, DSOp.DS_MAX_RTN_U64, DSOp.DS_AND_RTN_B64, DSOp.DS_OR_RTN_B64, DSOp.DS_XOR_RTN_B64, DSOp.DS_MSKOR_RTN_B64, DSOp.DS_STOREXCHG_RTN_B64, DSOp.DS_STOREXCHG_2ADDR_RTN_B64, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64, DSOp.DS_CMPSTORE_RTN_B64, DSOp.DS_MIN_NUM_RTN_F64, DSOp.DS_MAX_NUM_RTN_F64, DSOp.DS_LOAD_B64, DSOp.DS_LOAD_2ADDR_B64, DSOp.DS_LOAD_2ADDR_STRIDE64_B64, DSOp.DS_ADD_RTN_F32, DSOp.DS_CONDXCHG32_RTN_B64, DSOp.DS_COND_SUB_U32, DSOp.DS_SUB_CLAMP_U32, DSOp.DS_PK_ADD_F16, DSOp.DS_PK_ADD_BF16, DSOp.DS_STORE_B8_D16_HI, DSOp.DS_STORE_B16_D16_HI, DSOp.DS_LOAD_U8_D16, DSOp.DS_LOAD_U8_D16_HI, DSOp.DS_LOAD_I8_D16, DSOp.DS_LOAD_I8_D16_HI, DSOp.DS_LOAD_U16_D16, DSOp.DS_LOAD_U16_D16_HI, DSOp.DS_COND_SUB_RTN_U32, DSOp.DS_SUB_CLAMP_RTN_U32, DSOp.DS_PK_ADD_RTN_F16, DSOp.DS_PK_ADD_RTN_BF16, DSOp.DS_STORE_ADDTID_B32, DSOp.DS_LOAD_ADDTID_B32, DSOp.DS_PERMUTE_B32, DSOp.DS_BPERMUTE_B32, DSOp.DS_BPERMUTE_FI_B32, DSOp.DS_STORE_B96, DSOp.DS_STORE_B128, DSOp.DS_BVH_STACK_PUSH4_POP1_RTN_B32, DSOp.DS_BVH_STACK_PUSH8_POP1_RTN_B32, DSOp.DS_BVH_STACK_PUSH8_POP2_RTN_B64, DSOp.DS_LOAD_B96, DSOp.DS_LOAD_B128})
  vdst = VGPRField(63, 56)
  addr = VGPRField(39, 32)
  data0 = VGPRField(47, 40)
  data1 = VGPRField(55, 48)
  offset0 = BitField(7, 0)
  offset1 = BitField(15, 8)

class SMEM(Inst):
  encoding = FixedBitField(31, 26, 0b111101)
  op = EnumBitField(18, 13, SMEMOp, {SMEMOp.S_LOAD_B32, SMEMOp.S_LOAD_B64, SMEMOp.S_LOAD_B128, SMEMOp.S_LOAD_B256, SMEMOp.S_LOAD_B512, SMEMOp.S_LOAD_B96, SMEMOp.S_LOAD_I8, SMEMOp.S_LOAD_U8, SMEMOp.S_LOAD_I16, SMEMOp.S_LOAD_U16, SMEMOp.S_BUFFER_LOAD_B32, SMEMOp.S_BUFFER_LOAD_B64, SMEMOp.S_BUFFER_LOAD_B128, SMEMOp.S_BUFFER_LOAD_B256, SMEMOp.S_BUFFER_LOAD_B512, SMEMOp.S_BUFFER_LOAD_B96, SMEMOp.S_BUFFER_LOAD_I8, SMEMOp.S_BUFFER_LOAD_U8, SMEMOp.S_BUFFER_LOAD_I16, SMEMOp.S_BUFFER_LOAD_U16, SMEMOp.S_DCACHE_INV, SMEMOp.S_ATC_PROBE, SMEMOp.S_ATC_PROBE_BUFFER, SMEMOp.S_PREFETCH_INST, SMEMOp.S_PREFETCH_INST_PC_REL, SMEMOp.S_PREFETCH_DATA, SMEMOp.S_BUFFER_PREFETCH_DATA, SMEMOp.S_PREFETCH_DATA_PC_REL})
  sdata = SGPRField(12, 6)
  sbase = SBaseField(5, 0)
  soffset = SGPRField(63, 57, default=NULL)
  nv = BitField(20, 20)
  scope = BitField(22, 21)
  th = BitField(24, 23)
  ioffset = BitField(55, 32)

class SOP1(Inst):
  encoding = FixedBitField(31, 23, 0b101111101)
  op = EnumBitField(15, 8, SOP1Op, {SOP1Op.S_MOV_B32, SOP1Op.S_MOV_B64, SOP1Op.S_CMOV_B32, SOP1Op.S_CMOV_B64, SOP1Op.S_BREV_B32, SOP1Op.S_BREV_B64, SOP1Op.S_CTZ_I32_B32, SOP1Op.S_CTZ_I32_B64, SOP1Op.S_CLZ_I32_U32, SOP1Op.S_CLZ_I32_U64, SOP1Op.S_CLS_I32, SOP1Op.S_CLS_I32_I64, SOP1Op.S_SEXT_I32_I8, SOP1Op.S_SEXT_I32_I16, SOP1Op.S_BITSET0_B32, SOP1Op.S_BITSET0_B64, SOP1Op.S_BITSET1_B32, SOP1Op.S_BITSET1_B64, SOP1Op.S_BITREPLICATE_B64_B32, SOP1Op.S_ABS_I32, SOP1Op.S_BCNT0_I32_B32, SOP1Op.S_BCNT0_I32_B64, SOP1Op.S_BCNT1_I32_B32, SOP1Op.S_BCNT1_I32_B64, SOP1Op.S_QUADMASK_B32, SOP1Op.S_QUADMASK_B64, SOP1Op.S_WQM_B32, SOP1Op.S_WQM_B64, SOP1Op.S_NOT_B32, SOP1Op.S_NOT_B64, SOP1Op.S_AND_SAVEEXEC_B32, SOP1Op.S_AND_SAVEEXEC_B64, SOP1Op.S_OR_SAVEEXEC_B32, SOP1Op.S_OR_SAVEEXEC_B64, SOP1Op.S_XOR_SAVEEXEC_B32, SOP1Op.S_XOR_SAVEEXEC_B64, SOP1Op.S_NAND_SAVEEXEC_B32, SOP1Op.S_NAND_SAVEEXEC_B64, SOP1Op.S_NOR_SAVEEXEC_B32, SOP1Op.S_NOR_SAVEEXEC_B64, SOP1Op.S_XNOR_SAVEEXEC_B32, SOP1Op.S_XNOR_SAVEEXEC_B64, SOP1Op.S_AND_NOT0_SAVEEXEC_B32, SOP1Op.S_AND_NOT0_SAVEEXEC_B64, SOP1Op.S_OR_NOT0_SAVEEXEC_B32, SOP1Op.S_OR_NOT0_SAVEEXEC_B64, SOP1Op.S_AND_NOT1_SAVEEXEC_B32, SOP1Op.S_AND_NOT1_SAVEEXEC_B64, SOP1Op.S_OR_NOT1_SAVEEXEC_B32, SOP1Op.S_OR_NOT1_SAVEEXEC_B64, SOP1Op.S_AND_NOT0_WREXEC_B32, SOP1Op.S_AND_NOT0_WREXEC_B64, SOP1Op.S_AND_NOT1_WREXEC_B32, SOP1Op.S_AND_NOT1_WREXEC_B64, SOP1Op.S_MOVRELS_B32, SOP1Op.S_MOVRELS_B64, SOP1Op.S_MOVRELD_B32, SOP1Op.S_MOVRELD_B64, SOP1Op.S_MOVRELSD_2_B32, SOP1Op.S_GETPC_B64, SOP1Op.S_SETPC_B64, SOP1Op.S_SWAPPC_B64, SOP1Op.S_RFE_B64, SOP1Op.S_SENDMSG_RTN_B32, SOP1Op.S_SENDMSG_RTN_B64, SOP1Op.S_BARRIER_SIGNAL, SOP1Op.S_BARRIER_SIGNAL_ISFIRST, SOP1Op.S_GET_BARRIER_STATE, SOP1Op.S_BARRIER_INIT, SOP1Op.S_BARRIER_JOIN, SOP1Op.S_ALLOC_VGPR, SOP1Op.S_SLEEP_VAR, SOP1Op.S_CEIL_F32, SOP1Op.S_FLOOR_F32, SOP1Op.S_TRUNC_F32, SOP1Op.S_RNDNE_F32, SOP1Op.S_CVT_F32_I32, SOP1Op.S_CVT_F32_U32, SOP1Op.S_CVT_I32_F32, SOP1Op.S_CVT_U32_F32, SOP1Op.S_CVT_F16_F32, SOP1Op.S_CVT_F32_F16, SOP1Op.S_CVT_HI_F32_F16, SOP1Op.S_CEIL_F16, SOP1Op.S_FLOOR_F16, SOP1Op.S_TRUNC_F16, SOP1Op.S_RNDNE_F16})
  sdst = SGPRField(22, 16)
  ssrc0 = SSrcField(7, 0)

class SOP2(Inst):
  encoding = FixedBitField(31, 30, 0b10)
  op = EnumBitField(29, 23, SOP2Op, {SOP2Op.S_ADD_CO_U32, SOP2Op.S_SUB_CO_U32, SOP2Op.S_ADD_CO_I32, SOP2Op.S_SUB_CO_I32, SOP2Op.S_ADD_CO_CI_U32, SOP2Op.S_SUB_CO_CI_U32, SOP2Op.S_ABSDIFF_I32, SOP2Op.S_LSHL_B32, SOP2Op.S_LSHL_B64, SOP2Op.S_LSHR_B32, SOP2Op.S_LSHR_B64, SOP2Op.S_ASHR_I32, SOP2Op.S_ASHR_I64, SOP2Op.S_LSHL1_ADD_U32, SOP2Op.S_LSHL2_ADD_U32, SOP2Op.S_LSHL3_ADD_U32, SOP2Op.S_LSHL4_ADD_U32, SOP2Op.S_MIN_I32, SOP2Op.S_MIN_U32, SOP2Op.S_MAX_I32, SOP2Op.S_MAX_U32, SOP2Op.S_AND_B32, SOP2Op.S_AND_B64, SOP2Op.S_OR_B32, SOP2Op.S_OR_B64, SOP2Op.S_XOR_B32, SOP2Op.S_XOR_B64, SOP2Op.S_NAND_B32, SOP2Op.S_NAND_B64, SOP2Op.S_NOR_B32, SOP2Op.S_NOR_B64, SOP2Op.S_XNOR_B32, SOP2Op.S_XNOR_B64, SOP2Op.S_AND_NOT1_B32, SOP2Op.S_AND_NOT1_B64, SOP2Op.S_OR_NOT1_B32, SOP2Op.S_OR_NOT1_B64, SOP2Op.S_BFE_U32, SOP2Op.S_BFE_I32, SOP2Op.S_BFE_U64, SOP2Op.S_BFE_I64, SOP2Op.S_BFM_B32, SOP2Op.S_BFM_B64, SOP2Op.S_MUL_I32, SOP2Op.S_MUL_HI_U32, SOP2Op.S_MUL_HI_I32, SOP2Op.S_CSELECT_B32, SOP2Op.S_CSELECT_B64, SOP2Op.S_PACK_LL_B32_B16, SOP2Op.S_PACK_LH_B32_B16, SOP2Op.S_PACK_HH_B32_B16, SOP2Op.S_PACK_HL_B32_B16, SOP2Op.S_ADD_F32, SOP2Op.S_SUB_F32, SOP2Op.S_MIN_NUM_F32, SOP2Op.S_MAX_NUM_F32, SOP2Op.S_MUL_F32, SOP2Op.S_FMAC_F32, SOP2Op.S_CVT_PK_RTZ_F16_F32, SOP2Op.S_ADD_F16, SOP2Op.S_SUB_F16, SOP2Op.S_MIN_NUM_F16, SOP2Op.S_MAX_NUM_F16, SOP2Op.S_MUL_F16, SOP2Op.S_FMAC_F16, SOP2Op.S_MINIMUM_F32, SOP2Op.S_MAXIMUM_F32, SOP2Op.S_MINIMUM_F16, SOP2Op.S_MAXIMUM_F16, SOP2Op.S_ADD_NC_U64, SOP2Op.S_SUB_NC_U64, SOP2Op.S_MUL_U64})
  sdst = SGPRField(22, 16)
  ssrc0 = SSrcField(7, 0)
  ssrc1 = SSrcField(15, 8)

class SOPC(Inst):
  encoding = FixedBitField(31, 23, 0b101111110)
  op = EnumBitField(22, 16, SOPCOp, {SOPCOp.S_CMP_EQ_I32, SOPCOp.S_CMP_LG_I32, SOPCOp.S_CMP_GT_I32, SOPCOp.S_CMP_GE_I32, SOPCOp.S_CMP_LT_I32, SOPCOp.S_CMP_LE_I32, SOPCOp.S_CMP_EQ_U32, SOPCOp.S_CMP_LG_U32, SOPCOp.S_CMP_GT_U32, SOPCOp.S_CMP_GE_U32, SOPCOp.S_CMP_LT_U32, SOPCOp.S_CMP_LE_U32, SOPCOp.S_BITCMP0_B32, SOPCOp.S_BITCMP1_B32, SOPCOp.S_BITCMP0_B64, SOPCOp.S_BITCMP1_B64, SOPCOp.S_CMP_EQ_U64, SOPCOp.S_CMP_LG_U64, SOPCOp.S_CMP_LT_F32, SOPCOp.S_CMP_EQ_F32, SOPCOp.S_CMP_LE_F32, SOPCOp.S_CMP_GT_F32, SOPCOp.S_CMP_LG_F32, SOPCOp.S_CMP_GE_F32, SOPCOp.S_CMP_O_F32, SOPCOp.S_CMP_U_F32, SOPCOp.S_CMP_NGE_F32, SOPCOp.S_CMP_NLG_F32, SOPCOp.S_CMP_NGT_F32, SOPCOp.S_CMP_NLE_F32, SOPCOp.S_CMP_NEQ_F32, SOPCOp.S_CMP_NLT_F32, SOPCOp.S_CMP_LT_F16, SOPCOp.S_CMP_EQ_F16, SOPCOp.S_CMP_LE_F16, SOPCOp.S_CMP_GT_F16, SOPCOp.S_CMP_LG_F16, SOPCOp.S_CMP_GE_F16, SOPCOp.S_CMP_O_F16, SOPCOp.S_CMP_U_F16, SOPCOp.S_CMP_NGE_F16, SOPCOp.S_CMP_NLG_F16, SOPCOp.S_CMP_NGT_F16, SOPCOp.S_CMP_NLE_F16, SOPCOp.S_CMP_NEQ_F16, SOPCOp.S_CMP_NLT_F16})
  ssrc0 = SSrcField(7, 0)
  ssrc1 = SSrcField(15, 8)

class SOPK(Inst):
  encoding = FixedBitField(31, 28, 0b1011)
  op = EnumBitField(27, 23, SOPKOp, {SOPKOp.S_MOVK_I32, SOPKOp.S_VERSION, SOPKOp.S_CMOVK_I32, SOPKOp.S_ADDK_CO_I32, SOPKOp.S_MULK_I32, SOPKOp.S_GETREG_B32, SOPKOp.S_SETREG_B32, SOPKOp.S_CALL_B64})
  sdst = SGPRField(22, 16)
  simm16 = BitField(15, 0)

class SOPP(Inst):
  encoding = FixedBitField(31, 23, 0b101111111)
  op = EnumBitField(22, 16, SOPPOp, {SOPPOp.S_NOP, SOPPOp.S_SETKILL, SOPPOp.S_SETHALT, SOPPOp.S_SLEEP, SOPPOp.S_CLAUSE, SOPPOp.S_DELAY_ALU, SOPPOp.S_WAIT_ALU, SOPPOp.S_WAITCNT, SOPPOp.S_WAIT_IDLE, SOPPOp.S_WAIT_EVENT, SOPPOp.S_TRAP, SOPPOp.S_ROUND_MODE, SOPPOp.S_DENORM_MODE, SOPPOp.S_BARRIER_WAIT, SOPPOp.S_BARRIER_LEAVE, SOPPOp.S_CODE_END, SOPPOp.S_BRANCH, SOPPOp.S_CBRANCH_SCC0, SOPPOp.S_CBRANCH_SCC1, SOPPOp.S_CBRANCH_VCCZ, SOPPOp.S_CBRANCH_VCCNZ, SOPPOp.S_CBRANCH_EXECZ, SOPPOp.S_CBRANCH_EXECNZ, SOPPOp.S_ENDPGM, SOPPOp.S_ENDPGM_SAVED, SOPPOp.S_WAKEUP, SOPPOp.S_SETPRIO, SOPPOp.S_SENDMSG, SOPPOp.S_SENDMSGHALT, SOPPOp.S_INCPERFLEVEL, SOPPOp.S_DECPERFLEVEL, SOPPOp.S_TTRACEDATA, SOPPOp.S_TTRACEDATA_IMM, SOPPOp.S_ICACHE_INV, SOPPOp.S_WAIT_LOADCNT, SOPPOp.S_WAIT_STORECNT, SOPPOp.S_WAIT_SAMPLECNT, SOPPOp.S_WAIT_BVHCNT, SOPPOp.S_WAIT_EXPCNT, SOPPOp.S_WAIT_DSCNT, SOPPOp.S_WAIT_KMCNT, SOPPOp.S_WAIT_LOADCNT_DSCNT, SOPPOp.S_WAIT_STORECNT_DSCNT})
  simm16 = BitField(15, 0)

class VBUFFER(Inst):
  encoding = FixedBitField(31, 26, 0b110001)
  op = EnumBitField(21, 14, VBUFFEROp, {VBUFFEROp.BUFFER_LOAD_FORMAT_X, VBUFFEROp.BUFFER_LOAD_FORMAT_XY, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZ, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZW, VBUFFEROp.BUFFER_STORE_FORMAT_X, VBUFFEROp.BUFFER_STORE_FORMAT_XY, VBUFFEROp.BUFFER_STORE_FORMAT_XYZ, VBUFFEROp.BUFFER_STORE_FORMAT_XYZW, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_X, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XY, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZ, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZW, VBUFFEROp.BUFFER_STORE_D16_FORMAT_X, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XY, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZ, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZW, VBUFFEROp.BUFFER_LOAD_U8, VBUFFEROp.BUFFER_LOAD_I8, VBUFFEROp.BUFFER_LOAD_U16, VBUFFEROp.BUFFER_LOAD_I16, VBUFFEROp.BUFFER_LOAD_B32, VBUFFEROp.BUFFER_LOAD_B64, VBUFFEROp.BUFFER_LOAD_B96, VBUFFEROp.BUFFER_LOAD_B128, VBUFFEROp.BUFFER_STORE_B8, VBUFFEROp.BUFFER_STORE_B16, VBUFFEROp.BUFFER_STORE_B32, VBUFFEROp.BUFFER_STORE_B64, VBUFFEROp.BUFFER_STORE_B96, VBUFFEROp.BUFFER_STORE_B128, VBUFFEROp.BUFFER_LOAD_D16_U8, VBUFFEROp.BUFFER_LOAD_D16_I8, VBUFFEROp.BUFFER_LOAD_D16_B16, VBUFFEROp.BUFFER_LOAD_D16_HI_U8, VBUFFEROp.BUFFER_LOAD_D16_HI_I8, VBUFFEROp.BUFFER_LOAD_D16_HI_B16, VBUFFEROp.BUFFER_STORE_D16_HI_B8, VBUFFEROp.BUFFER_STORE_D16_HI_B16, VBUFFEROp.BUFFER_LOAD_D16_HI_FORMAT_X, VBUFFEROp.BUFFER_STORE_D16_HI_FORMAT_X, VBUFFEROp.BUFFER_ATOMIC_SWAP_B32, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B32, VBUFFEROp.BUFFER_ATOMIC_ADD_U32, VBUFFEROp.BUFFER_ATOMIC_SUB_U32, VBUFFEROp.BUFFER_ATOMIC_SUB_CLAMP_U32, VBUFFEROp.BUFFER_ATOMIC_MIN_I32, VBUFFEROp.BUFFER_ATOMIC_MIN_U32, VBUFFEROp.BUFFER_ATOMIC_MAX_I32, VBUFFEROp.BUFFER_ATOMIC_MAX_U32, VBUFFEROp.BUFFER_ATOMIC_AND_B32, VBUFFEROp.BUFFER_ATOMIC_OR_B32, VBUFFEROp.BUFFER_ATOMIC_XOR_B32, VBUFFEROp.BUFFER_ATOMIC_INC_U32, VBUFFEROp.BUFFER_ATOMIC_DEC_U32, VBUFFEROp.BUFFER_ATOMIC_SWAP_B64, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B64, VBUFFEROp.BUFFER_ATOMIC_ADD_U64, VBUFFEROp.BUFFER_ATOMIC_SUB_U64, VBUFFEROp.BUFFER_ATOMIC_MIN_I64, VBUFFEROp.BUFFER_ATOMIC_MIN_U64, VBUFFEROp.BUFFER_ATOMIC_MAX_I64, VBUFFEROp.BUFFER_ATOMIC_MAX_U64, VBUFFEROp.BUFFER_ATOMIC_AND_B64, VBUFFEROp.BUFFER_ATOMIC_OR_B64, VBUFFEROp.BUFFER_ATOMIC_XOR_B64, VBUFFEROp.BUFFER_ATOMIC_INC_U64, VBUFFEROp.BUFFER_ATOMIC_DEC_U64, VBUFFEROp.BUFFER_ATOMIC_COND_SUB_U32, VBUFFEROp.BUFFER_ATOMIC_MIN_NUM_F32, VBUFFEROp.BUFFER_ATOMIC_MAX_NUM_F32, VBUFFEROp.BUFFER_ATOMIC_ADD_F32, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_F16, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_BF16, VBUFFEROp.TBUFFER_LOAD_FORMAT_X, VBUFFEROp.TBUFFER_LOAD_FORMAT_XY, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZ, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZW, VBUFFEROp.TBUFFER_STORE_FORMAT_X, VBUFFEROp.TBUFFER_STORE_FORMAT_XY, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZ, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZW, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_X, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XY, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZ, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZW, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_X, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XY, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZ, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZW})
  vdata = VGPRField(39, 32)
  vaddr = VGPRField(71, 64)
  soffset = SGPRField(6, 0, default=NULL)
  format = BitField(61, 55)
  offen = BitField(62, 62)
  idxen = BitField(63, 63)
  tfe = BitField(22, 22)
  nv = BitField(7, 7)
  rsrc = BitField(49, 41)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  ioffset = BitField(95, 72)

class VDSDIR(Inst):
  encoding = FixedBitField(31, 24, 0b11001110)
  op = EnumBitField(21, 20, VDSDIROp, {VDSDIROp.DS_PARAM_LOAD, VDSDIROp.DS_DIRECT_LOAD})
  vdst = VGPRField(7, 0)
  attr = BitField(15, 10)
  attr_chan = BitField(9, 8)
  wait_va_vdst = BitField(19, 16)
  wait_vm_vsrc = BitField(23, 23)

class VEXPORT(Inst):
  encoding = FixedBitField(31, 26, 0b111110)
  vsrc0 = VGPRField(39, 32)
  vsrc1 = VGPRField(47, 40)
  vsrc2 = VGPRField(55, 48)
  vsrc3 = VGPRField(63, 56)
  en = BitField(3, 0)
  target = BitField(9, 4)
  done = BitField(11, 11)
  row = BitField(13, 13)

class VFLAT(Inst):
  encoding = FixedBitField(31, 24, 0b11101100)
  op = EnumBitField(21, 14, VFLATOp, {VFLATOp.FLAT_LOAD_U8, VFLATOp.FLAT_LOAD_I8, VFLATOp.FLAT_LOAD_U16, VFLATOp.FLAT_LOAD_I16, VFLATOp.FLAT_LOAD_B32, VFLATOp.FLAT_LOAD_B64, VFLATOp.FLAT_LOAD_B96, VFLATOp.FLAT_LOAD_B128, VFLATOp.FLAT_STORE_B8, VFLATOp.FLAT_STORE_B16, VFLATOp.FLAT_STORE_B32, VFLATOp.FLAT_STORE_B64, VFLATOp.FLAT_STORE_B96, VFLATOp.FLAT_STORE_B128, VFLATOp.FLAT_LOAD_D16_U8, VFLATOp.FLAT_LOAD_D16_I8, VFLATOp.FLAT_LOAD_D16_B16, VFLATOp.FLAT_LOAD_D16_HI_U8, VFLATOp.FLAT_LOAD_D16_HI_I8, VFLATOp.FLAT_LOAD_D16_HI_B16, VFLATOp.FLAT_STORE_D16_HI_B8, VFLATOp.FLAT_STORE_D16_HI_B16, VFLATOp.GLOBAL_LOAD_ADDTID_B32, VFLATOp.GLOBAL_STORE_ADDTID_B32, VFLATOp.FLAT_ATOMIC_SWAP_B32, VFLATOp.FLAT_ATOMIC_CMPSWAP_B32, VFLATOp.FLAT_ATOMIC_ADD_U32, VFLATOp.FLAT_ATOMIC_SUB_U32, VFLATOp.FLAT_ATOMIC_SUB_CLAMP_U32, VFLATOp.FLAT_ATOMIC_MIN_I32, VFLATOp.FLAT_ATOMIC_MIN_U32, VFLATOp.FLAT_ATOMIC_MAX_I32, VFLATOp.FLAT_ATOMIC_MAX_U32, VFLATOp.FLAT_ATOMIC_AND_B32, VFLATOp.FLAT_ATOMIC_OR_B32, VFLATOp.FLAT_ATOMIC_XOR_B32, VFLATOp.FLAT_ATOMIC_INC_U32, VFLATOp.FLAT_ATOMIC_DEC_U32, VFLATOp.FLAT_ATOMIC_SWAP_B64, VFLATOp.FLAT_ATOMIC_CMPSWAP_B64, VFLATOp.FLAT_ATOMIC_ADD_U64, VFLATOp.FLAT_ATOMIC_SUB_U64, VFLATOp.FLAT_ATOMIC_MIN_I64, VFLATOp.FLAT_ATOMIC_MIN_U64, VFLATOp.FLAT_ATOMIC_MAX_I64, VFLATOp.FLAT_ATOMIC_MAX_U64, VFLATOp.FLAT_ATOMIC_AND_B64, VFLATOp.FLAT_ATOMIC_OR_B64, VFLATOp.FLAT_ATOMIC_XOR_B64, VFLATOp.FLAT_ATOMIC_INC_U64, VFLATOp.FLAT_ATOMIC_DEC_U64, VFLATOp.FLAT_ATOMIC_COND_SUB_U32, VFLATOp.FLAT_ATOMIC_MIN_NUM_F32, VFLATOp.FLAT_ATOMIC_MAX_NUM_F32, VFLATOp.FLAT_ATOMIC_ADD_F32, VFLATOp.FLAT_ATOMIC_PK_ADD_F16, VFLATOp.FLAT_ATOMIC_PK_ADD_BF16})
  vdst = VGPRField(39, 32)
  vaddr = VGPRField(71, 64)
  saddr = SGPRField(6, 0, default=NULL)
  nv = BitField(7, 7)
  sve = BitField(49, 49)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  vsrc = VGPRField(62, 55)
  ioffset = BitField(95, 72)

class VGLOBAL(Inst):
  encoding = FixedBitField(31, 24, 0b11101110)
  op = EnumBitField(21, 14, VGLOBALOp, {VGLOBALOp.GLOBAL_LOAD_U8, VGLOBALOp.GLOBAL_LOAD_I8, VGLOBALOp.GLOBAL_LOAD_U16, VGLOBALOp.GLOBAL_LOAD_I16, VGLOBALOp.GLOBAL_LOAD_B32, VGLOBALOp.GLOBAL_LOAD_B64, VGLOBALOp.GLOBAL_LOAD_B96, VGLOBALOp.GLOBAL_LOAD_B128, VGLOBALOp.GLOBAL_STORE_B8, VGLOBALOp.GLOBAL_STORE_B16, VGLOBALOp.GLOBAL_STORE_B32, VGLOBALOp.GLOBAL_STORE_B64, VGLOBALOp.GLOBAL_STORE_B96, VGLOBALOp.GLOBAL_STORE_B128, VGLOBALOp.GLOBAL_LOAD_D16_U8, VGLOBALOp.GLOBAL_LOAD_D16_I8, VGLOBALOp.GLOBAL_LOAD_D16_B16, VGLOBALOp.GLOBAL_LOAD_D16_HI_U8, VGLOBALOp.GLOBAL_LOAD_D16_HI_I8, VGLOBALOp.GLOBAL_LOAD_D16_HI_B16, VGLOBALOp.GLOBAL_STORE_D16_HI_B8, VGLOBALOp.GLOBAL_STORE_D16_HI_B16, VGLOBALOp.GLOBAL_LOAD_ADDTID_B32, VGLOBALOp.GLOBAL_STORE_ADDTID_B32, VGLOBALOp.GLOBAL_INV, VGLOBALOp.GLOBAL_WB, VGLOBALOp.GLOBAL_ATOMIC_SWAP_B32, VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32, VGLOBALOp.GLOBAL_ATOMIC_ADD_U32, VGLOBALOp.GLOBAL_ATOMIC_SUB_U32, VGLOBALOp.GLOBAL_ATOMIC_SUB_CLAMP_U32, VGLOBALOp.GLOBAL_ATOMIC_MIN_I32, VGLOBALOp.GLOBAL_ATOMIC_MIN_U32, VGLOBALOp.GLOBAL_ATOMIC_MAX_I32, VGLOBALOp.GLOBAL_ATOMIC_MAX_U32, VGLOBALOp.GLOBAL_ATOMIC_AND_B32, VGLOBALOp.GLOBAL_ATOMIC_OR_B32, VGLOBALOp.GLOBAL_ATOMIC_XOR_B32, VGLOBALOp.GLOBAL_ATOMIC_INC_U32, VGLOBALOp.GLOBAL_ATOMIC_DEC_U32, VGLOBALOp.GLOBAL_ATOMIC_SWAP_B64, VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64, VGLOBALOp.GLOBAL_ATOMIC_ADD_U64, VGLOBALOp.GLOBAL_ATOMIC_SUB_U64, VGLOBALOp.GLOBAL_ATOMIC_MIN_I64, VGLOBALOp.GLOBAL_ATOMIC_MIN_U64, VGLOBALOp.GLOBAL_ATOMIC_MAX_I64, VGLOBALOp.GLOBAL_ATOMIC_MAX_U64, VGLOBALOp.GLOBAL_ATOMIC_AND_B64, VGLOBALOp.GLOBAL_ATOMIC_OR_B64, VGLOBALOp.GLOBAL_ATOMIC_XOR_B64, VGLOBALOp.GLOBAL_ATOMIC_INC_U64, VGLOBALOp.GLOBAL_ATOMIC_DEC_U64, VGLOBALOp.GLOBAL_WBINV, VGLOBALOp.GLOBAL_ATOMIC_COND_SUB_U32, VGLOBALOp.GLOBAL_ATOMIC_MIN_NUM_F32, VGLOBALOp.GLOBAL_ATOMIC_MAX_NUM_F32, VGLOBALOp.GLOBAL_LOAD_BLOCK, VGLOBALOp.GLOBAL_STORE_BLOCK, VGLOBALOp.GLOBAL_ATOMIC_ADD_F32, VGLOBALOp.GLOBAL_LOAD_TR_B128, VGLOBALOp.GLOBAL_LOAD_TR_B64, VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_F16, VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_BF16, VGLOBALOp.GLOBAL_ATOMIC_ORDERED_ADD_B64})
  vdst = VGPRField(39, 32)
  vaddr = VGPRField(71, 64)
  saddr = SGPRField(6, 0, default=NULL)
  nv = BitField(7, 7)
  sve = BitField(49, 49)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  vsrc = VGPRField(62, 55)
  ioffset = BitField(95, 72)

class VIMAGE(Inst):
  encoding = FixedBitField(31, 26, 0b110100)
  op = EnumBitField(21, 14, VIMAGEOp, {VIMAGEOp.IMAGE_LOAD, VIMAGEOp.IMAGE_LOAD_MIP, VIMAGEOp.IMAGE_LOAD_PCK, VIMAGEOp.IMAGE_LOAD_PCK_SGN, VIMAGEOp.IMAGE_LOAD_MIP_PCK, VIMAGEOp.IMAGE_LOAD_MIP_PCK_SGN, VIMAGEOp.IMAGE_STORE, VIMAGEOp.IMAGE_STORE_MIP, VIMAGEOp.IMAGE_STORE_PCK, VIMAGEOp.IMAGE_STORE_MIP_PCK, VIMAGEOp.IMAGE_ATOMIC_SWAP, VIMAGEOp.IMAGE_ATOMIC_CMPSWAP, VIMAGEOp.IMAGE_ATOMIC_ADD_UINT, VIMAGEOp.IMAGE_ATOMIC_SUB_UINT, VIMAGEOp.IMAGE_ATOMIC_MIN_INT, VIMAGEOp.IMAGE_ATOMIC_MIN_UINT, VIMAGEOp.IMAGE_ATOMIC_MAX_INT, VIMAGEOp.IMAGE_ATOMIC_MAX_UINT, VIMAGEOp.IMAGE_ATOMIC_AND, VIMAGEOp.IMAGE_ATOMIC_OR, VIMAGEOp.IMAGE_ATOMIC_XOR, VIMAGEOp.IMAGE_ATOMIC_INC_UINT, VIMAGEOp.IMAGE_ATOMIC_DEC_UINT, VIMAGEOp.IMAGE_GET_RESINFO, VIMAGEOp.IMAGE_BVH_INTERSECT_RAY, VIMAGEOp.IMAGE_BVH64_INTERSECT_RAY, VIMAGEOp.IMAGE_BVH_DUAL_INTERSECT_RAY, VIMAGEOp.IMAGE_BVH8_INTERSECT_RAY, VIMAGEOp.IMAGE_ATOMIC_ADD_FLT, VIMAGEOp.IMAGE_ATOMIC_MIN_FLT, VIMAGEOp.IMAGE_ATOMIC_MAX_FLT, VIMAGEOp.IMAGE_ATOMIC_PK_ADD_F16, VIMAGEOp.IMAGE_ATOMIC_PK_ADD_BF16})
  vdata = VGPRField(39, 32)
  dmask = BitField(25, 22)
  dim = BitField(2, 0)
  tfe = BitField(55, 55)
  r128 = BitField(4, 4)
  d16 = BitField(5, 5)
  a16 = BitField(6, 6)
  nv = BitField(7, 7)
  rsrc = BitField(49, 41)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  vaddr4 = BitField(63, 56)
  vaddr0 = BitField(71, 64)
  vaddr1 = BitField(79, 72)
  vaddr2 = BitField(87, 80)
  vaddr3 = BitField(95, 88)

class VINTERP(Inst):
  encoding = FixedBitField(31, 24, 0b11001101)
  op = EnumBitField(20, 16, VINTERPOp, {VINTERPOp.V_INTERP_P10_F32, VINTERPOp.V_INTERP_P2_F32, VINTERPOp.V_INTERP_P10_F16_F32, VINTERPOp.V_INTERP_P2_F16_F32, VINTERPOp.V_INTERP_P10_RTZ_F16_F32, VINTERPOp.V_INTERP_P2_RTZ_F16_F32})
  vdst = VGPRField(7, 0)
  src0 = SrcField(40, 32)
  src1 = SrcField(49, 41)
  src2 = SrcField(58, 50)
  neg = BitField(63, 61)
  clmp = BitField(15, 15)
  opsel = BitField(14, 11)
  waitexp = BitField(10, 8)

class VOP1(Inst):
  encoding = FixedBitField(31, 25, 0b0111111)
  op = EnumBitField(15, 9, VOP1Op, {VOP1Op.V_NOP, VOP1Op.V_MOV_B32, VOP1Op.V_CVT_I32_F64, VOP1Op.V_CVT_F64_I32, VOP1Op.V_CVT_F32_I32, VOP1Op.V_CVT_F32_U32, VOP1Op.V_CVT_U32_F32, VOP1Op.V_CVT_I32_F32, VOP1Op.V_CVT_F16_F32, VOP1Op.V_CVT_F32_F16, VOP1Op.V_CVT_NEAREST_I32_F32, VOP1Op.V_CVT_FLOOR_I32_F32, VOP1Op.V_CVT_OFF_F32_I4, VOP1Op.V_CVT_F32_F64, VOP1Op.V_CVT_F64_F32, VOP1Op.V_CVT_F32_UBYTE0, VOP1Op.V_CVT_F32_UBYTE1, VOP1Op.V_CVT_F32_UBYTE2, VOP1Op.V_CVT_F32_UBYTE3, VOP1Op.V_CVT_U32_F64, VOP1Op.V_CVT_F64_U32, VOP1Op.V_TRUNC_F64, VOP1Op.V_CEIL_F64, VOP1Op.V_RNDNE_F64, VOP1Op.V_FLOOR_F64, VOP1Op.V_PIPEFLUSH, VOP1Op.V_MOV_B16, VOP1Op.V_FRACT_F32, VOP1Op.V_TRUNC_F32, VOP1Op.V_CEIL_F32, VOP1Op.V_RNDNE_F32, VOP1Op.V_FLOOR_F32, VOP1Op.V_EXP_F32, VOP1Op.V_LOG_F32, VOP1Op.V_RCP_F32, VOP1Op.V_RCP_IFLAG_F32, VOP1Op.V_RSQ_F32, VOP1Op.V_RCP_F64, VOP1Op.V_RSQ_F64, VOP1Op.V_SQRT_F32, VOP1Op.V_SQRT_F64, VOP1Op.V_SIN_F32, VOP1Op.V_COS_F32, VOP1Op.V_NOT_B32, VOP1Op.V_BFREV_B32, VOP1Op.V_CLZ_I32_U32, VOP1Op.V_CTZ_I32_B32, VOP1Op.V_CLS_I32, VOP1Op.V_FREXP_EXP_I32_F64, VOP1Op.V_FREXP_MANT_F64, VOP1Op.V_FRACT_F64, VOP1Op.V_FREXP_EXP_I32_F32, VOP1Op.V_FREXP_MANT_F32, VOP1Op.V_MOVRELD_B32, VOP1Op.V_MOVRELS_B32, VOP1Op.V_MOVRELSD_B32, VOP1Op.V_MOVRELSD_2_B32, VOP1Op.V_CVT_F16_U16, VOP1Op.V_CVT_F16_I16, VOP1Op.V_CVT_U16_F16, VOP1Op.V_CVT_I16_F16, VOP1Op.V_RCP_F16, VOP1Op.V_SQRT_F16, VOP1Op.V_RSQ_F16, VOP1Op.V_LOG_F16, VOP1Op.V_EXP_F16, VOP1Op.V_FREXP_MANT_F16, VOP1Op.V_FREXP_EXP_I16_F16, VOP1Op.V_FLOOR_F16, VOP1Op.V_CEIL_F16, VOP1Op.V_TRUNC_F16, VOP1Op.V_RNDNE_F16, VOP1Op.V_FRACT_F16, VOP1Op.V_SIN_F16, VOP1Op.V_COS_F16, VOP1Op.V_SAT_PK_U8_I16, VOP1Op.V_CVT_NORM_I16_F16, VOP1Op.V_CVT_NORM_U16_F16, VOP1Op.V_SWAP_B32, VOP1Op.V_SWAP_B16, VOP1Op.V_PERMLANE64_B32, VOP1Op.V_SWAPREL_B32, VOP1Op.V_NOT_B16, VOP1Op.V_CVT_I32_I16, VOP1Op.V_CVT_U32_U16, VOP1Op.V_CVT_F32_FP8, VOP1Op.V_CVT_F32_BF8, VOP1Op.V_CVT_PK_F32_FP8, VOP1Op.V_CVT_PK_F32_BF8})
  vdst = VGPRField(24, 17)
  src0 = SrcField(8, 0)

class VOP2(Inst):
  encoding = FixedBitField(31, 31, 0b0)
  op = EnumBitField(30, 25, VOP2Op, {VOP2Op.V_CNDMASK_B32, VOP2Op.V_ADD_F64, VOP2Op.V_ADD_F32, VOP2Op.V_SUB_F32, VOP2Op.V_SUBREV_F32, VOP2Op.V_MUL_F64, VOP2Op.V_MUL_DX9_ZERO_F32, VOP2Op.V_MUL_F32, VOP2Op.V_MUL_I32_I24, VOP2Op.V_MUL_HI_I32_I24, VOP2Op.V_MUL_U32_U24, VOP2Op.V_MUL_HI_U32_U24, VOP2Op.V_MIN_NUM_F64, VOP2Op.V_MAX_NUM_F64, VOP2Op.V_MIN_I32, VOP2Op.V_MAX_I32, VOP2Op.V_MIN_U32, VOP2Op.V_MAX_U32, VOP2Op.V_MIN_NUM_F32, VOP2Op.V_MAX_NUM_F32, VOP2Op.V_LSHLREV_B32, VOP2Op.V_LSHRREV_B32, VOP2Op.V_ASHRREV_I32, VOP2Op.V_AND_B32, VOP2Op.V_OR_B32, VOP2Op.V_XOR_B32, VOP2Op.V_XNOR_B32, VOP2Op.V_LSHLREV_B64, VOP2Op.V_ADD_CO_CI_U32, VOP2Op.V_SUB_CO_CI_U32, VOP2Op.V_SUBREV_CO_CI_U32, VOP2Op.V_ADD_NC_U32, VOP2Op.V_SUB_NC_U32, VOP2Op.V_SUBREV_NC_U32, VOP2Op.V_FMAC_F32, VOP2Op.V_CVT_PK_RTZ_F16_F32, VOP2Op.V_MIN_NUM_F16, VOP2Op.V_MAX_NUM_F16, VOP2Op.V_ADD_F16, VOP2Op.V_SUB_F16, VOP2Op.V_SUBREV_F16, VOP2Op.V_MUL_F16, VOP2Op.V_FMAC_F16, VOP2Op.V_LDEXP_F16, VOP2Op.V_PK_FMAC_F16})
  vdst = VGPRField(24, 17)
  src0 = SrcField(8, 0)
  vsrc1 = VGPRField(16, 9)

class VOP3(Inst):
  encoding = FixedBitField(31, 26, 0b110101)
  op = EnumBitField(25, 16, VOP3Op, {VOP3Op.V_CMPX_LT_F16, VOP3Op.V_CMPX_EQ_F16, VOP3Op.V_CMPX_LE_F16, VOP3Op.V_CMPX_GT_F16, VOP3Op.V_CMPX_LG_F16, VOP3Op.V_CMPX_GE_F16, VOP3Op.V_CMPX_O_F16, VOP3Op.V_CMPX_U_F16, VOP3Op.V_CMPX_NGE_F16, VOP3Op.V_CMPX_NLG_F16, VOP3Op.V_CMPX_NGT_F16, VOP3Op.V_CMPX_NLE_F16, VOP3Op.V_CMPX_NEQ_F16, VOP3Op.V_CMPX_NLT_F16, VOP3Op.V_CMPX_LT_F32, VOP3Op.V_CMPX_EQ_F32, VOP3Op.V_CMPX_LE_F32, VOP3Op.V_CMPX_GT_F32, VOP3Op.V_CMPX_LG_F32, VOP3Op.V_CMPX_GE_F32, VOP3Op.V_CMPX_O_F32, VOP3Op.V_CMPX_U_F32, VOP3Op.V_CMPX_NGE_F32, VOP3Op.V_CMPX_NLG_F32, VOP3Op.V_CMPX_NGT_F32, VOP3Op.V_CMPX_NLE_F32, VOP3Op.V_CMPX_NEQ_F32, VOP3Op.V_CMPX_NLT_F32, VOP3Op.V_CMPX_LT_F64, VOP3Op.V_CMPX_EQ_F64, VOP3Op.V_CMPX_LE_F64, VOP3Op.V_CMPX_GT_F64, VOP3Op.V_CMPX_LG_F64, VOP3Op.V_CMPX_GE_F64, VOP3Op.V_CMPX_O_F64, VOP3Op.V_CMPX_U_F64, VOP3Op.V_CMPX_NGE_F64, VOP3Op.V_CMPX_NLG_F64, VOP3Op.V_CMPX_NGT_F64, VOP3Op.V_CMPX_NLE_F64, VOP3Op.V_CMPX_NEQ_F64, VOP3Op.V_CMPX_NLT_F64, VOP3Op.V_CMPX_LT_I16, VOP3Op.V_CMPX_EQ_I16, VOP3Op.V_CMPX_LE_I16, VOP3Op.V_CMPX_GT_I16, VOP3Op.V_CMPX_NE_I16, VOP3Op.V_CMPX_GE_I16, VOP3Op.V_CMPX_LT_U16, VOP3Op.V_CMPX_EQ_U16, VOP3Op.V_CMPX_LE_U16, VOP3Op.V_CMPX_GT_U16, VOP3Op.V_CMPX_NE_U16, VOP3Op.V_CMPX_GE_U16, VOP3Op.V_CMPX_LT_I32, VOP3Op.V_CMPX_EQ_I32, VOP3Op.V_CMPX_LE_I32, VOP3Op.V_CMPX_GT_I32, VOP3Op.V_CMPX_NE_I32, VOP3Op.V_CMPX_GE_I32, VOP3Op.V_CMPX_LT_U32, VOP3Op.V_CMPX_EQ_U32, VOP3Op.V_CMPX_LE_U32, VOP3Op.V_CMPX_GT_U32, VOP3Op.V_CMPX_NE_U32, VOP3Op.V_CMPX_GE_U32, VOP3Op.V_CMPX_LT_I64, VOP3Op.V_CMPX_EQ_I64, VOP3Op.V_CMPX_LE_I64, VOP3Op.V_CMPX_GT_I64, VOP3Op.V_CMPX_NE_I64, VOP3Op.V_CMPX_GE_I64, VOP3Op.V_CMPX_LT_U64, VOP3Op.V_CMPX_EQ_U64, VOP3Op.V_CMPX_LE_U64, VOP3Op.V_CMPX_GT_U64, VOP3Op.V_CMPX_NE_U64, VOP3Op.V_CMPX_GE_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_CNDMASK_B32, VOP3Op.V_ADD_F64, VOP3Op.V_ADD_F32, VOP3Op.V_SUB_F32, VOP3Op.V_SUBREV_F32, VOP3Op.V_MUL_F64, VOP3Op.V_MUL_DX9_ZERO_F32, VOP3Op.V_MUL_F32, VOP3Op.V_MUL_I32_I24, VOP3Op.V_MUL_HI_I32_I24, VOP3Op.V_MUL_U32_U24, VOP3Op.V_MUL_HI_U32_U24, VOP3Op.V_MIN_NUM_F64, VOP3Op.V_MAX_NUM_F64, VOP3Op.V_MIN_I32, VOP3Op.V_MAX_I32, VOP3Op.V_MIN_U32, VOP3Op.V_MAX_U32, VOP3Op.V_MIN_NUM_F32, VOP3Op.V_MAX_NUM_F32, VOP3Op.V_LSHLREV_B32, VOP3Op.V_LSHRREV_B32, VOP3Op.V_ASHRREV_I32, VOP3Op.V_AND_B32, VOP3Op.V_OR_B32, VOP3Op.V_XOR_B32, VOP3Op.V_XNOR_B32, VOP3Op.V_LSHLREV_B64, VOP3Op.V_ADD_NC_U32, VOP3Op.V_SUB_NC_U32, VOP3Op.V_SUBREV_NC_U32, VOP3Op.V_FMAC_F32, VOP3Op.V_CVT_PK_RTZ_F16_F32, VOP3Op.V_MIN_NUM_F16, VOP3Op.V_MAX_NUM_F16, VOP3Op.V_ADD_F16, VOP3Op.V_SUB_F16, VOP3Op.V_SUBREV_F16, VOP3Op.V_MUL_F16, VOP3Op.V_FMAC_F16, VOP3Op.V_LDEXP_F16, VOP3Op.V_NOP, VOP3Op.V_MOV_B32, VOP3Op.V_CVT_I32_F64, VOP3Op.V_CVT_F64_I32, VOP3Op.V_CVT_F32_I32, VOP3Op.V_CVT_F32_U32, VOP3Op.V_CVT_U32_F32, VOP3Op.V_CVT_I32_F32, VOP3Op.V_CVT_F16_F32, VOP3Op.V_CVT_F32_F16, VOP3Op.V_CVT_NEAREST_I32_F32, VOP3Op.V_CVT_FLOOR_I32_F32, VOP3Op.V_CVT_OFF_F32_I4, VOP3Op.V_CVT_F32_F64, VOP3Op.V_CVT_F64_F32, VOP3Op.V_CVT_F32_UBYTE0, VOP3Op.V_CVT_F32_UBYTE1, VOP3Op.V_CVT_F32_UBYTE2, VOP3Op.V_CVT_F32_UBYTE3, VOP3Op.V_CVT_U32_F64, VOP3Op.V_CVT_F64_U32, VOP3Op.V_TRUNC_F64, VOP3Op.V_CEIL_F64, VOP3Op.V_RNDNE_F64, VOP3Op.V_FLOOR_F64, VOP3Op.V_PIPEFLUSH, VOP3Op.V_MOV_B16, VOP3Op.V_FRACT_F32, VOP3Op.V_TRUNC_F32, VOP3Op.V_CEIL_F32, VOP3Op.V_RNDNE_F32, VOP3Op.V_FLOOR_F32, VOP3Op.V_EXP_F32, VOP3Op.V_LOG_F32, VOP3Op.V_RCP_F32, VOP3Op.V_RCP_IFLAG_F32, VOP3Op.V_RSQ_F32, VOP3Op.V_RCP_F64, VOP3Op.V_RSQ_F64, VOP3Op.V_SQRT_F32, VOP3Op.V_SQRT_F64, VOP3Op.V_SIN_F32, VOP3Op.V_COS_F32, VOP3Op.V_NOT_B32, VOP3Op.V_BFREV_B32, VOP3Op.V_CLZ_I32_U32, VOP3Op.V_CTZ_I32_B32, VOP3Op.V_CLS_I32, VOP3Op.V_FREXP_EXP_I32_F64, VOP3Op.V_FREXP_MANT_F64, VOP3Op.V_FRACT_F64, VOP3Op.V_FREXP_EXP_I32_F32, VOP3Op.V_FREXP_MANT_F32, VOP3Op.V_MOVRELD_B32, VOP3Op.V_MOVRELS_B32, VOP3Op.V_MOVRELSD_B32, VOP3Op.V_MOVRELSD_2_B32, VOP3Op.V_CVT_F16_U16, VOP3Op.V_CVT_F16_I16, VOP3Op.V_CVT_U16_F16, VOP3Op.V_CVT_I16_F16, VOP3Op.V_RCP_F16, VOP3Op.V_SQRT_F16, VOP3Op.V_RSQ_F16, VOP3Op.V_LOG_F16, VOP3Op.V_EXP_F16, VOP3Op.V_FREXP_MANT_F16, VOP3Op.V_FREXP_EXP_I16_F16, VOP3Op.V_FLOOR_F16, VOP3Op.V_CEIL_F16, VOP3Op.V_TRUNC_F16, VOP3Op.V_RNDNE_F16, VOP3Op.V_FRACT_F16, VOP3Op.V_SIN_F16, VOP3Op.V_COS_F16, VOP3Op.V_SAT_PK_U8_I16, VOP3Op.V_CVT_NORM_I16_F16, VOP3Op.V_CVT_NORM_U16_F16, VOP3Op.V_NOT_B16, VOP3Op.V_CVT_I32_I16, VOP3Op.V_CVT_U32_U16, VOP3Op.V_CVT_F32_FP8, VOP3Op.V_CVT_F32_BF8, VOP3Op.V_CVT_PK_F32_FP8, VOP3Op.V_CVT_PK_F32_BF8, VOP3Op.V_FMA_DX9_ZERO_F32, VOP3Op.V_MAD_I32_I24, VOP3Op.V_MAD_U32_U24, VOP3Op.V_CUBEID_F32, VOP3Op.V_CUBESC_F32, VOP3Op.V_CUBETC_F32, VOP3Op.V_CUBEMA_F32, VOP3Op.V_BFE_U32, VOP3Op.V_BFE_I32, VOP3Op.V_BFI_B32, VOP3Op.V_FMA_F32, VOP3Op.V_FMA_F64, VOP3Op.V_LERP_U8, VOP3Op.V_ALIGNBIT_B32, VOP3Op.V_ALIGNBYTE_B32, VOP3Op.V_MULLIT_F32, VOP3Op.V_MIN3_I32, VOP3Op.V_MIN3_U32, VOP3Op.V_MAX3_I32, VOP3Op.V_MAX3_U32, VOP3Op.V_MED3_I32, VOP3Op.V_MED3_U32, VOP3Op.V_SAD_U8, VOP3Op.V_SAD_HI_U8, VOP3Op.V_SAD_U16, VOP3Op.V_SAD_U32, VOP3Op.V_CVT_PK_U8_F32, VOP3Op.V_DIV_FIXUP_F32, VOP3Op.V_DIV_FIXUP_F64, VOP3Op.V_MIN3_NUM_F32, VOP3Op.V_MAX3_NUM_F32, VOP3Op.V_MIN3_NUM_F16, VOP3Op.V_MAX3_NUM_F16, VOP3Op.V_MINIMUM3_F32, VOP3Op.V_MAXIMUM3_F32, VOP3Op.V_MINIMUM3_F16, VOP3Op.V_MAXIMUM3_F16, VOP3Op.V_MED3_NUM_F32, VOP3Op.V_MED3_NUM_F16, VOP3Op.V_DIV_FMAS_F32, VOP3Op.V_DIV_FMAS_F64, VOP3Op.V_MSAD_U8, VOP3Op.V_QSAD_PK_U16_U8, VOP3Op.V_MQSAD_PK_U16_U8, VOP3Op.V_MQSAD_U32_U8, VOP3Op.V_XOR3_B32, VOP3Op.V_MAD_U16, VOP3Op.V_PERM_B32, VOP3Op.V_XAD_U32, VOP3Op.V_LSHL_ADD_U32, VOP3Op.V_ADD_LSHL_U32, VOP3Op.V_FMA_F16, VOP3Op.V_MIN3_I16, VOP3Op.V_MIN3_U16, VOP3Op.V_MAX3_I16, VOP3Op.V_MAX3_U16, VOP3Op.V_MED3_I16, VOP3Op.V_MED3_U16, VOP3Op.V_MAD_I16, VOP3Op.V_DIV_FIXUP_F16, VOP3Op.V_ADD3_U32, VOP3Op.V_LSHL_OR_B32, VOP3Op.V_AND_OR_B32, VOP3Op.V_OR3_B32, VOP3Op.V_MAD_U32_U16, VOP3Op.V_MAD_I32_I16, VOP3Op.V_PERMLANE16_B32, VOP3Op.V_PERMLANEX16_B32, VOP3Op.V_CNDMASK_B16, VOP3Op.V_MAXMIN_U32, VOP3Op.V_MINMAX_U32, VOP3Op.V_MAXMIN_I32, VOP3Op.V_MINMAX_I32, VOP3Op.V_DOT2_F16_F16, VOP3Op.V_DOT2_BF16_BF16, VOP3Op.V_MINMAX_NUM_F32, VOP3Op.V_MAXMIN_NUM_F32, VOP3Op.V_MINMAX_NUM_F16, VOP3Op.V_MAXMIN_NUM_F16, VOP3Op.V_MINIMUMMAXIMUM_F32, VOP3Op.V_MAXIMUMMINIMUM_F32, VOP3Op.V_MINIMUMMAXIMUM_F16, VOP3Op.V_MAXIMUMMINIMUM_F16, VOP3Op.V_ADD_NC_U16, VOP3Op.V_SUB_NC_U16, VOP3Op.V_MUL_LO_U16, VOP3Op.V_CVT_PK_I16_F32, VOP3Op.V_CVT_PK_U16_F32, VOP3Op.V_MAX_U16, VOP3Op.V_MAX_I16, VOP3Op.V_MIN_U16, VOP3Op.V_MIN_I16, VOP3Op.V_ADD_NC_I16, VOP3Op.V_SUB_NC_I16, VOP3Op.V_PERMLANE16_VAR_B32, VOP3Op.V_PERMLANEX16_VAR_B32, VOP3Op.V_PACK_B32_F16, VOP3Op.V_CVT_PK_NORM_I16_F16, VOP3Op.V_CVT_PK_NORM_U16_F16, VOP3Op.V_LDEXP_F32, VOP3Op.V_BFM_B32, VOP3Op.V_BCNT_U32_B32, VOP3Op.V_MBCNT_LO_U32_B32, VOP3Op.V_MBCNT_HI_U32_B32, VOP3Op.V_CVT_PK_NORM_I16_F32, VOP3Op.V_CVT_PK_NORM_U16_F32, VOP3Op.V_CVT_PK_U16_U32, VOP3Op.V_CVT_PK_I16_I32, VOP3Op.V_SUB_NC_I32, VOP3Op.V_ADD_NC_I32, VOP3Op.V_LDEXP_F64, VOP3Op.V_MUL_LO_U32, VOP3Op.V_MUL_HI_U32, VOP3Op.V_MUL_HI_I32, VOP3Op.V_TRIG_PREOP_F64, VOP3Op.V_LSHLREV_B16, VOP3Op.V_LSHRREV_B16, VOP3Op.V_ASHRREV_I16, VOP3Op.V_LSHRREV_B64, VOP3Op.V_ASHRREV_I64, VOP3Op.V_MINIMUM_F64, VOP3Op.V_MAXIMUM_F64, VOP3Op.V_WRITELANE_B32, VOP3Op.V_AND_B16, VOP3Op.V_OR_B16, VOP3Op.V_XOR_B16, VOP3Op.V_MINIMUM_F32, VOP3Op.V_MAXIMUM_F32, VOP3Op.V_MINIMUM_F16, VOP3Op.V_MAXIMUM_F16, VOP3Op.V_CVT_PK_FP8_F32, VOP3Op.V_CVT_PK_BF8_F32, VOP3Op.V_CVT_SR_FP8_F32, VOP3Op.V_CVT_SR_BF8_F32})
  vdst = VGPRField(7, 0)
  src0 = SrcField(40, 32)
  src1 = SrcField(49, 41)
  src2 = SrcField(58, 50)
  omod = BitField(60, 59)
  neg = BitField(63, 61)
  abs = BitField(10, 8)
  clmp = BitField(15, 15)
  opsel = BitField(14, 11)

class VOP3P(Inst):
  encoding = FixedBitField(31, 24, 0b11001100)
  op = EnumBitField(22, 16, VOP3POp, {VOP3POp.V_PK_MAD_I16, VOP3POp.V_PK_MUL_LO_U16, VOP3POp.V_PK_ADD_I16, VOP3POp.V_PK_SUB_I16, VOP3POp.V_PK_LSHLREV_B16, VOP3POp.V_PK_LSHRREV_B16, VOP3POp.V_PK_ASHRREV_I16, VOP3POp.V_PK_MAX_I16, VOP3POp.V_PK_MIN_I16, VOP3POp.V_PK_MAD_U16, VOP3POp.V_PK_ADD_U16, VOP3POp.V_PK_SUB_U16, VOP3POp.V_PK_MAX_U16, VOP3POp.V_PK_MIN_U16, VOP3POp.V_PK_FMA_F16, VOP3POp.V_PK_ADD_F16, VOP3POp.V_PK_MUL_F16, VOP3POp.V_DOT2_F32_F16, VOP3POp.V_DOT4_I32_IU8, VOP3POp.V_DOT4_U32_U8, VOP3POp.V_DOT8_I32_IU4, VOP3POp.V_DOT8_U32_U4, VOP3POp.V_DOT2_F32_BF16, VOP3POp.V_PK_MIN_NUM_F16, VOP3POp.V_PK_MAX_NUM_F16, VOP3POp.V_PK_MINIMUM_F16, VOP3POp.V_PK_MAXIMUM_F16, VOP3POp.V_FMA_MIX_F32, VOP3POp.V_FMA_MIXLO_F16, VOP3POp.V_FMA_MIXHI_F16, VOP3POp.V_DOT4_F32_FP8_BF8, VOP3POp.V_DOT4_F32_BF8_FP8, VOP3POp.V_DOT4_F32_FP8_FP8, VOP3POp.V_DOT4_F32_BF8_BF8, VOP3POp.V_WMMA_F32_16X16X16_F16, VOP3POp.V_WMMA_F32_16X16X16_BF16, VOP3POp.V_WMMA_F16_16X16X16_F16, VOP3POp.V_WMMA_BF16_16X16X16_BF16, VOP3POp.V_WMMA_I32_16X16X16_IU8, VOP3POp.V_WMMA_I32_16X16X16_IU4, VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8, VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8, VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8, VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8, VOP3POp.V_WMMA_I32_16X16X32_IU4, VOP3POp.V_SWMMAC_F32_16X16X32_F16, VOP3POp.V_SWMMAC_F32_16X16X32_BF16, VOP3POp.V_SWMMAC_F16_16X16X32_F16, VOP3POp.V_SWMMAC_BF16_16X16X32_BF16, VOP3POp.V_SWMMAC_I32_16X16X32_IU8, VOP3POp.V_SWMMAC_I32_16X16X32_IU4, VOP3POp.V_SWMMAC_I32_16X16X64_IU4, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8})
  vdst = VGPRField(7, 0)
  src0 = SrcField(40, 32)
  src1 = SrcField(49, 41)
  src2 = SrcField(58, 50)
  neg = BitField(63, 61)
  neg_hi = BitField(10, 8)
  clmp = BitField(15, 15)
  opsel = BitField(13, 11)
  opsel_hi = BitField(60, 59, default=3)
  opsel_hi2 = BitField(14, 14, default=1)

class VOP3SD(Inst):
  encoding = FixedBitField(31, 26, 0b110101)
  op = EnumBitField(25, 16, VOP3SDOp, {VOP3SDOp.V_ADD_CO_CI_U32, VOP3SDOp.V_SUB_CO_CI_U32, VOP3SDOp.V_SUBREV_CO_CI_U32, VOP3SDOp.V_DIV_SCALE_F32, VOP3SDOp.V_DIV_SCALE_F64, VOP3SDOp.V_MAD_CO_U64_U32, VOP3SDOp.V_MAD_CO_I64_I32, VOP3SDOp.V_ADD_CO_U32, VOP3SDOp.V_SUB_CO_U32, VOP3SDOp.V_SUBREV_CO_U32})
  vdst = VGPRField(7, 0)
  sdst = SGPRField(14, 8)
  src0 = SrcField(40, 32)
  src1 = SrcField(49, 41)
  src2 = SrcField(58, 50)
  omod = BitField(60, 59)
  neg = BitField(63, 61)
  clmp = BitField(15, 15)

class VOPC(Inst):
  encoding = FixedBitField(31, 25, 0b0111110)
  op = EnumBitField(24, 17, VOPCOp, {VOPCOp.V_CMP_LT_F16, VOPCOp.V_CMP_EQ_F16, VOPCOp.V_CMP_LE_F16, VOPCOp.V_CMP_GT_F16, VOPCOp.V_CMP_LG_F16, VOPCOp.V_CMP_GE_F16, VOPCOp.V_CMP_O_F16, VOPCOp.V_CMP_U_F16, VOPCOp.V_CMP_NGE_F16, VOPCOp.V_CMP_NLG_F16, VOPCOp.V_CMP_NGT_F16, VOPCOp.V_CMP_NLE_F16, VOPCOp.V_CMP_NEQ_F16, VOPCOp.V_CMP_NLT_F16, VOPCOp.V_CMP_LT_F32, VOPCOp.V_CMP_EQ_F32, VOPCOp.V_CMP_LE_F32, VOPCOp.V_CMP_GT_F32, VOPCOp.V_CMP_LG_F32, VOPCOp.V_CMP_GE_F32, VOPCOp.V_CMP_O_F32, VOPCOp.V_CMP_U_F32, VOPCOp.V_CMP_NGE_F32, VOPCOp.V_CMP_NLG_F32, VOPCOp.V_CMP_NGT_F32, VOPCOp.V_CMP_NLE_F32, VOPCOp.V_CMP_NEQ_F32, VOPCOp.V_CMP_NLT_F32, VOPCOp.V_CMP_LT_F64, VOPCOp.V_CMP_EQ_F64, VOPCOp.V_CMP_LE_F64, VOPCOp.V_CMP_GT_F64, VOPCOp.V_CMP_LG_F64, VOPCOp.V_CMP_GE_F64, VOPCOp.V_CMP_O_F64, VOPCOp.V_CMP_U_F64, VOPCOp.V_CMP_NGE_F64, VOPCOp.V_CMP_NLG_F64, VOPCOp.V_CMP_NGT_F64, VOPCOp.V_CMP_NLE_F64, VOPCOp.V_CMP_NEQ_F64, VOPCOp.V_CMP_NLT_F64, VOPCOp.V_CMP_LT_I16, VOPCOp.V_CMP_EQ_I16, VOPCOp.V_CMP_LE_I16, VOPCOp.V_CMP_GT_I16, VOPCOp.V_CMP_NE_I16, VOPCOp.V_CMP_GE_I16, VOPCOp.V_CMP_LT_U16, VOPCOp.V_CMP_EQ_U16, VOPCOp.V_CMP_LE_U16, VOPCOp.V_CMP_GT_U16, VOPCOp.V_CMP_NE_U16, VOPCOp.V_CMP_GE_U16, VOPCOp.V_CMP_LT_I32, VOPCOp.V_CMP_EQ_I32, VOPCOp.V_CMP_LE_I32, VOPCOp.V_CMP_GT_I32, VOPCOp.V_CMP_NE_I32, VOPCOp.V_CMP_GE_I32, VOPCOp.V_CMP_LT_U32, VOPCOp.V_CMP_EQ_U32, VOPCOp.V_CMP_LE_U32, VOPCOp.V_CMP_GT_U32, VOPCOp.V_CMP_NE_U32, VOPCOp.V_CMP_GE_U32, VOPCOp.V_CMP_LT_I64, VOPCOp.V_CMP_EQ_I64, VOPCOp.V_CMP_LE_I64, VOPCOp.V_CMP_GT_I64, VOPCOp.V_CMP_NE_I64, VOPCOp.V_CMP_GE_I64, VOPCOp.V_CMP_LT_U64, VOPCOp.V_CMP_EQ_U64, VOPCOp.V_CMP_LE_U64, VOPCOp.V_CMP_GT_U64, VOPCOp.V_CMP_NE_U64, VOPCOp.V_CMP_GE_U64, VOPCOp.V_CMP_CLASS_F16, VOPCOp.V_CMP_CLASS_F32, VOPCOp.V_CMP_CLASS_F64, VOPCOp.V_CMPX_LT_F16, VOPCOp.V_CMPX_EQ_F16, VOPCOp.V_CMPX_LE_F16, VOPCOp.V_CMPX_GT_F16, VOPCOp.V_CMPX_LG_F16, VOPCOp.V_CMPX_GE_F16, VOPCOp.V_CMPX_O_F16, VOPCOp.V_CMPX_U_F16, VOPCOp.V_CMPX_NGE_F16, VOPCOp.V_CMPX_NLG_F16, VOPCOp.V_CMPX_NGT_F16, VOPCOp.V_CMPX_NLE_F16, VOPCOp.V_CMPX_NEQ_F16, VOPCOp.V_CMPX_NLT_F16, VOPCOp.V_CMPX_LT_F32, VOPCOp.V_CMPX_EQ_F32, VOPCOp.V_CMPX_LE_F32, VOPCOp.V_CMPX_GT_F32, VOPCOp.V_CMPX_LG_F32, VOPCOp.V_CMPX_GE_F32, VOPCOp.V_CMPX_O_F32, VOPCOp.V_CMPX_U_F32, VOPCOp.V_CMPX_NGE_F32, VOPCOp.V_CMPX_NLG_F32, VOPCOp.V_CMPX_NGT_F32, VOPCOp.V_CMPX_NLE_F32, VOPCOp.V_CMPX_NEQ_F32, VOPCOp.V_CMPX_NLT_F32, VOPCOp.V_CMPX_LT_F64, VOPCOp.V_CMPX_EQ_F64, VOPCOp.V_CMPX_LE_F64, VOPCOp.V_CMPX_GT_F64, VOPCOp.V_CMPX_LG_F64, VOPCOp.V_CMPX_GE_F64, VOPCOp.V_CMPX_O_F64, VOPCOp.V_CMPX_U_F64, VOPCOp.V_CMPX_NGE_F64, VOPCOp.V_CMPX_NLG_F64, VOPCOp.V_CMPX_NGT_F64, VOPCOp.V_CMPX_NLE_F64, VOPCOp.V_CMPX_NEQ_F64, VOPCOp.V_CMPX_NLT_F64, VOPCOp.V_CMPX_LT_I16, VOPCOp.V_CMPX_EQ_I16, VOPCOp.V_CMPX_LE_I16, VOPCOp.V_CMPX_GT_I16, VOPCOp.V_CMPX_NE_I16, VOPCOp.V_CMPX_GE_I16, VOPCOp.V_CMPX_LT_U16, VOPCOp.V_CMPX_EQ_U16, VOPCOp.V_CMPX_LE_U16, VOPCOp.V_CMPX_GT_U16, VOPCOp.V_CMPX_NE_U16, VOPCOp.V_CMPX_GE_U16, VOPCOp.V_CMPX_LT_I32, VOPCOp.V_CMPX_EQ_I32, VOPCOp.V_CMPX_LE_I32, VOPCOp.V_CMPX_GT_I32, VOPCOp.V_CMPX_NE_I32, VOPCOp.V_CMPX_GE_I32, VOPCOp.V_CMPX_LT_U32, VOPCOp.V_CMPX_EQ_U32, VOPCOp.V_CMPX_LE_U32, VOPCOp.V_CMPX_GT_U32, VOPCOp.V_CMPX_NE_U32, VOPCOp.V_CMPX_GE_U32, VOPCOp.V_CMPX_LT_I64, VOPCOp.V_CMPX_EQ_I64, VOPCOp.V_CMPX_LE_I64, VOPCOp.V_CMPX_GT_I64, VOPCOp.V_CMPX_NE_I64, VOPCOp.V_CMPX_GE_I64, VOPCOp.V_CMPX_LT_U64, VOPCOp.V_CMPX_EQ_U64, VOPCOp.V_CMPX_LE_U64, VOPCOp.V_CMPX_GT_U64, VOPCOp.V_CMPX_NE_U64, VOPCOp.V_CMPX_GE_U64, VOPCOp.V_CMPX_CLASS_F16, VOPCOp.V_CMPX_CLASS_F32, VOPCOp.V_CMPX_CLASS_F64})
  src0 = SrcField(8, 0)
  vsrc1 = VGPRField(16, 9)

class VOPD(Inst):
  encoding = FixedBitField(31, 26, 0b110010)
  opx = EnumBitField(25, 22, VOPDOp)
  opy = EnumBitField(21, 17, VOPDOp)
  vdstx = VGPRField(63, 56)
  vdsty = VDSTYField(55, 49)
  srcx0 = SrcField(8, 0)
  srcy0 = SrcField(40, 32)
  vsrcx1 = VGPRField(16, 9)
  vsrcy1 = VGPRField(48, 41)

class VSAMPLE(Inst):
  encoding = FixedBitField(31, 26, 0b111001)
  op = EnumBitField(21, 14, VSAMPLEOp, {VSAMPLEOp.IMAGE_MSAA_LOAD, VSAMPLEOp.IMAGE_SAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D, VSAMPLEOp.IMAGE_SAMPLE_L, VSAMPLEOp.IMAGE_SAMPLE_B, VSAMPLEOp.IMAGE_SAMPLE_LZ, VSAMPLEOp.IMAGE_SAMPLE_C, VSAMPLEOp.IMAGE_SAMPLE_C_D, VSAMPLEOp.IMAGE_SAMPLE_C_L, VSAMPLEOp.IMAGE_SAMPLE_C_B, VSAMPLEOp.IMAGE_SAMPLE_C_LZ, VSAMPLEOp.IMAGE_SAMPLE_O, VSAMPLEOp.IMAGE_SAMPLE_D_O, VSAMPLEOp.IMAGE_SAMPLE_L_O, VSAMPLEOp.IMAGE_SAMPLE_B_O, VSAMPLEOp.IMAGE_SAMPLE_LZ_O, VSAMPLEOp.IMAGE_SAMPLE_C_O, VSAMPLEOp.IMAGE_SAMPLE_C_D_O, VSAMPLEOp.IMAGE_SAMPLE_C_L_O, VSAMPLEOp.IMAGE_SAMPLE_C_B_O, VSAMPLEOp.IMAGE_SAMPLE_C_LZ_O, VSAMPLEOp.IMAGE_GATHER4, VSAMPLEOp.IMAGE_GATHER4_L, VSAMPLEOp.IMAGE_GATHER4_B, VSAMPLEOp.IMAGE_GATHER4_LZ, VSAMPLEOp.IMAGE_GATHER4_C, VSAMPLEOp.IMAGE_GATHER4_C_LZ, VSAMPLEOp.IMAGE_GATHER4_O, VSAMPLEOp.IMAGE_GATHER4_LZ_O, VSAMPLEOp.IMAGE_GATHER4_C_LZ_O, VSAMPLEOp.IMAGE_GET_LOD, VSAMPLEOp.IMAGE_SAMPLE_D_G16, VSAMPLEOp.IMAGE_SAMPLE_C_D_G16, VSAMPLEOp.IMAGE_SAMPLE_D_O_G16, VSAMPLEOp.IMAGE_SAMPLE_C_D_O_G16, VSAMPLEOp.IMAGE_SAMPLE_CL, VSAMPLEOp.IMAGE_SAMPLE_D_CL, VSAMPLEOp.IMAGE_SAMPLE_B_CL, VSAMPLEOp.IMAGE_SAMPLE_C_CL, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL, VSAMPLEOp.IMAGE_SAMPLE_C_B_CL, VSAMPLEOp.IMAGE_SAMPLE_CL_O, VSAMPLEOp.IMAGE_SAMPLE_D_CL_O, VSAMPLEOp.IMAGE_SAMPLE_B_CL_O, VSAMPLEOp.IMAGE_SAMPLE_C_CL_O, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O, VSAMPLEOp.IMAGE_SAMPLE_C_B_CL_O, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_G16, VSAMPLEOp.IMAGE_SAMPLE_D_CL_O_G16, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O_G16, VSAMPLEOp.IMAGE_SAMPLE_D_CL_G16, VSAMPLEOp.IMAGE_GATHER4_CL, VSAMPLEOp.IMAGE_GATHER4_B_CL, VSAMPLEOp.IMAGE_GATHER4_C_CL, VSAMPLEOp.IMAGE_GATHER4_C_L, VSAMPLEOp.IMAGE_GATHER4_C_B, VSAMPLEOp.IMAGE_GATHER4_C_B_CL, VSAMPLEOp.IMAGE_GATHER4H})
  vdata = VGPRField(39, 32)
  dmask = BitField(25, 22)
  dim = BitField(2, 0)
  tfe = BitField(3, 3)
  unrm = BitField(13, 13)
  r128 = BitField(4, 4)
  d16 = BitField(5, 5)
  a16 = BitField(6, 6)
  nv = BitField(7, 7)
  lwe = BitField(40, 40)
  rsrc = BitField(49, 41)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  samp = BitField(63, 55)
  vaddr0 = BitField(71, 64)
  vaddr1 = BitField(79, 72)
  vaddr2 = BitField(87, 80)
  vaddr3 = BitField(95, 88)

class VSCRATCH(Inst):
  encoding = FixedBitField(31, 24, 0b11101101)
  op = EnumBitField(21, 14, VSCRATCHOp, {VSCRATCHOp.SCRATCH_LOAD_U8, VSCRATCHOp.SCRATCH_LOAD_I8, VSCRATCHOp.SCRATCH_LOAD_U16, VSCRATCHOp.SCRATCH_LOAD_I16, VSCRATCHOp.SCRATCH_LOAD_B32, VSCRATCHOp.SCRATCH_LOAD_B64, VSCRATCHOp.SCRATCH_LOAD_B96, VSCRATCHOp.SCRATCH_LOAD_B128, VSCRATCHOp.SCRATCH_STORE_B8, VSCRATCHOp.SCRATCH_STORE_B16, VSCRATCHOp.SCRATCH_STORE_B32, VSCRATCHOp.SCRATCH_STORE_B64, VSCRATCHOp.SCRATCH_STORE_B96, VSCRATCHOp.SCRATCH_STORE_B128, VSCRATCHOp.SCRATCH_LOAD_D16_U8, VSCRATCHOp.SCRATCH_LOAD_D16_I8, VSCRATCHOp.SCRATCH_LOAD_D16_B16, VSCRATCHOp.SCRATCH_LOAD_D16_HI_U8, VSCRATCHOp.SCRATCH_LOAD_D16_HI_I8, VSCRATCHOp.SCRATCH_LOAD_D16_HI_B16, VSCRATCHOp.SCRATCH_STORE_D16_HI_B8, VSCRATCHOp.SCRATCH_STORE_D16_HI_B16, VSCRATCHOp.SCRATCH_LOAD_BLOCK, VSCRATCHOp.SCRATCH_STORE_BLOCK})
  vdst = VGPRField(39, 32)
  vaddr = VGPRField(71, 64)
  saddr = SGPRField(6, 0, default=NULL)
  nv = BitField(7, 7)
  sve = BitField(49, 49)
  scope = BitField(51, 50)
  th = BitField(54, 52)
  vsrc = VGPRField(62, 55)
  ioffset = BitField(95, 72)

class SOP1_LIT(SOP1):
  op = EnumBitField(15, 8, SOP1Op, {SOP1Op.S_MOV_B32, SOP1Op.S_MOV_B64, SOP1Op.S_CMOV_B32, SOP1Op.S_CMOV_B64, SOP1Op.S_BREV_B32, SOP1Op.S_BREV_B64, SOP1Op.S_CTZ_I32_B32, SOP1Op.S_CTZ_I32_B64, SOP1Op.S_CLZ_I32_U32, SOP1Op.S_CLZ_I32_U64, SOP1Op.S_CLS_I32, SOP1Op.S_CLS_I32_I64, SOP1Op.S_SEXT_I32_I8, SOP1Op.S_SEXT_I32_I16, SOP1Op.S_BITSET0_B32, SOP1Op.S_BITSET0_B64, SOP1Op.S_BITSET1_B32, SOP1Op.S_BITSET1_B64, SOP1Op.S_BITREPLICATE_B64_B32, SOP1Op.S_ABS_I32, SOP1Op.S_BCNT0_I32_B32, SOP1Op.S_BCNT0_I32_B64, SOP1Op.S_BCNT1_I32_B32, SOP1Op.S_BCNT1_I32_B64, SOP1Op.S_QUADMASK_B32, SOP1Op.S_QUADMASK_B64, SOP1Op.S_WQM_B32, SOP1Op.S_WQM_B64, SOP1Op.S_NOT_B32, SOP1Op.S_NOT_B64, SOP1Op.S_AND_SAVEEXEC_B32, SOP1Op.S_AND_SAVEEXEC_B64, SOP1Op.S_OR_SAVEEXEC_B32, SOP1Op.S_OR_SAVEEXEC_B64, SOP1Op.S_XOR_SAVEEXEC_B32, SOP1Op.S_XOR_SAVEEXEC_B64, SOP1Op.S_NAND_SAVEEXEC_B32, SOP1Op.S_NAND_SAVEEXEC_B64, SOP1Op.S_NOR_SAVEEXEC_B32, SOP1Op.S_NOR_SAVEEXEC_B64, SOP1Op.S_XNOR_SAVEEXEC_B32, SOP1Op.S_XNOR_SAVEEXEC_B64, SOP1Op.S_AND_NOT0_SAVEEXEC_B32, SOP1Op.S_AND_NOT0_SAVEEXEC_B64, SOP1Op.S_OR_NOT0_SAVEEXEC_B32, SOP1Op.S_OR_NOT0_SAVEEXEC_B64, SOP1Op.S_AND_NOT1_SAVEEXEC_B32, SOP1Op.S_AND_NOT1_SAVEEXEC_B64, SOP1Op.S_OR_NOT1_SAVEEXEC_B32, SOP1Op.S_OR_NOT1_SAVEEXEC_B64, SOP1Op.S_AND_NOT0_WREXEC_B32, SOP1Op.S_AND_NOT0_WREXEC_B64, SOP1Op.S_AND_NOT1_WREXEC_B32, SOP1Op.S_AND_NOT1_WREXEC_B64, SOP1Op.S_MOVRELS_B32, SOP1Op.S_MOVRELS_B64, SOP1Op.S_MOVRELD_B32, SOP1Op.S_MOVRELD_B64, SOP1Op.S_MOVRELSD_2_B32, SOP1Op.S_GETPC_B64, SOP1Op.S_SETPC_B64, SOP1Op.S_SWAPPC_B64, SOP1Op.S_RFE_B64, SOP1Op.S_SENDMSG_RTN_B32, SOP1Op.S_SENDMSG_RTN_B64, SOP1Op.S_BARRIER_SIGNAL, SOP1Op.S_BARRIER_SIGNAL_ISFIRST, SOP1Op.S_GET_BARRIER_STATE, SOP1Op.S_BARRIER_INIT, SOP1Op.S_BARRIER_JOIN, SOP1Op.S_ALLOC_VGPR, SOP1Op.S_SLEEP_VAR, SOP1Op.S_CEIL_F32, SOP1Op.S_FLOOR_F32, SOP1Op.S_TRUNC_F32, SOP1Op.S_RNDNE_F32, SOP1Op.S_CVT_F32_I32, SOP1Op.S_CVT_F32_U32, SOP1Op.S_CVT_I32_F32, SOP1Op.S_CVT_U32_F32, SOP1Op.S_CVT_F16_F32, SOP1Op.S_CVT_F32_F16, SOP1Op.S_CVT_HI_F32_F16, SOP1Op.S_CEIL_F16, SOP1Op.S_FLOOR_F16, SOP1Op.S_TRUNC_F16, SOP1Op.S_RNDNE_F16})
  literal = BitField(63, 32)

class SOP2_LIT(SOP2):
  op = EnumBitField(29, 23, SOP2Op, {SOP2Op.S_ADD_CO_U32, SOP2Op.S_SUB_CO_U32, SOP2Op.S_ADD_CO_I32, SOP2Op.S_SUB_CO_I32, SOP2Op.S_ADD_CO_CI_U32, SOP2Op.S_SUB_CO_CI_U32, SOP2Op.S_ABSDIFF_I32, SOP2Op.S_LSHL_B32, SOP2Op.S_LSHL_B64, SOP2Op.S_LSHR_B32, SOP2Op.S_LSHR_B64, SOP2Op.S_ASHR_I32, SOP2Op.S_ASHR_I64, SOP2Op.S_LSHL1_ADD_U32, SOP2Op.S_LSHL2_ADD_U32, SOP2Op.S_LSHL3_ADD_U32, SOP2Op.S_LSHL4_ADD_U32, SOP2Op.S_MIN_I32, SOP2Op.S_MIN_U32, SOP2Op.S_MAX_I32, SOP2Op.S_MAX_U32, SOP2Op.S_AND_B32, SOP2Op.S_AND_B64, SOP2Op.S_OR_B32, SOP2Op.S_OR_B64, SOP2Op.S_XOR_B32, SOP2Op.S_XOR_B64, SOP2Op.S_NAND_B32, SOP2Op.S_NAND_B64, SOP2Op.S_NOR_B32, SOP2Op.S_NOR_B64, SOP2Op.S_XNOR_B32, SOP2Op.S_XNOR_B64, SOP2Op.S_AND_NOT1_B32, SOP2Op.S_AND_NOT1_B64, SOP2Op.S_OR_NOT1_B32, SOP2Op.S_OR_NOT1_B64, SOP2Op.S_BFE_U32, SOP2Op.S_BFE_I32, SOP2Op.S_BFE_U64, SOP2Op.S_BFE_I64, SOP2Op.S_BFM_B32, SOP2Op.S_BFM_B64, SOP2Op.S_MUL_I32, SOP2Op.S_MUL_HI_U32, SOP2Op.S_MUL_HI_I32, SOP2Op.S_CSELECT_B32, SOP2Op.S_CSELECT_B64, SOP2Op.S_PACK_LL_B32_B16, SOP2Op.S_PACK_LH_B32_B16, SOP2Op.S_PACK_HH_B32_B16, SOP2Op.S_PACK_HL_B32_B16, SOP2Op.S_ADD_F32, SOP2Op.S_SUB_F32, SOP2Op.S_MIN_NUM_F32, SOP2Op.S_MAX_NUM_F32, SOP2Op.S_MUL_F32, SOP2Op.S_FMAAK_F32, SOP2Op.S_FMAMK_F32, SOP2Op.S_FMAC_F32, SOP2Op.S_CVT_PK_RTZ_F16_F32, SOP2Op.S_ADD_F16, SOP2Op.S_SUB_F16, SOP2Op.S_MIN_NUM_F16, SOP2Op.S_MAX_NUM_F16, SOP2Op.S_MUL_F16, SOP2Op.S_FMAC_F16, SOP2Op.S_MINIMUM_F32, SOP2Op.S_MAXIMUM_F32, SOP2Op.S_MINIMUM_F16, SOP2Op.S_MAXIMUM_F16, SOP2Op.S_ADD_NC_U64, SOP2Op.S_SUB_NC_U64, SOP2Op.S_MUL_U64})
  literal = BitField(63, 32)

class SOPC_LIT(SOPC):
  op = EnumBitField(22, 16, SOPCOp, {SOPCOp.S_CMP_EQ_I32, SOPCOp.S_CMP_LG_I32, SOPCOp.S_CMP_GT_I32, SOPCOp.S_CMP_GE_I32, SOPCOp.S_CMP_LT_I32, SOPCOp.S_CMP_LE_I32, SOPCOp.S_CMP_EQ_U32, SOPCOp.S_CMP_LG_U32, SOPCOp.S_CMP_GT_U32, SOPCOp.S_CMP_GE_U32, SOPCOp.S_CMP_LT_U32, SOPCOp.S_CMP_LE_U32, SOPCOp.S_BITCMP0_B32, SOPCOp.S_BITCMP1_B32, SOPCOp.S_BITCMP0_B64, SOPCOp.S_BITCMP1_B64, SOPCOp.S_CMP_EQ_U64, SOPCOp.S_CMP_LG_U64, SOPCOp.S_CMP_LT_F32, SOPCOp.S_CMP_EQ_F32, SOPCOp.S_CMP_LE_F32, SOPCOp.S_CMP_GT_F32, SOPCOp.S_CMP_LG_F32, SOPCOp.S_CMP_GE_F32, SOPCOp.S_CMP_O_F32, SOPCOp.S_CMP_U_F32, SOPCOp.S_CMP_NGE_F32, SOPCOp.S_CMP_NLG_F32, SOPCOp.S_CMP_NGT_F32, SOPCOp.S_CMP_NLE_F32, SOPCOp.S_CMP_NEQ_F32, SOPCOp.S_CMP_NLT_F32, SOPCOp.S_CMP_LT_F16, SOPCOp.S_CMP_EQ_F16, SOPCOp.S_CMP_LE_F16, SOPCOp.S_CMP_GT_F16, SOPCOp.S_CMP_LG_F16, SOPCOp.S_CMP_GE_F16, SOPCOp.S_CMP_O_F16, SOPCOp.S_CMP_U_F16, SOPCOp.S_CMP_NGE_F16, SOPCOp.S_CMP_NLG_F16, SOPCOp.S_CMP_NGT_F16, SOPCOp.S_CMP_NLE_F16, SOPCOp.S_CMP_NEQ_F16, SOPCOp.S_CMP_NLT_F16})
  literal = BitField(63, 32)

class SOPK_LIT(SOPK):
  op = EnumBitField(27, 23, SOPKOp, {SOPKOp.S_MOVK_I32, SOPKOp.S_VERSION, SOPKOp.S_CMOVK_I32, SOPKOp.S_ADDK_CO_I32, SOPKOp.S_MULK_I32, SOPKOp.S_GETREG_B32, SOPKOp.S_SETREG_B32, SOPKOp.S_SETREG_IMM32_B32, SOPKOp.S_CALL_B64})
  literal = BitField(63, 32)

class VOP1_DPP16(VOP1):
  vsrc0 = VGPRField(39, 32)
  dpp = BitField(48, 40)
  fi = BitField(50, 50)
  bc = BitField(51, 51)
  row_mask = BitField(63, 60)
  bank_mask = BitField(59, 56)
  src0_neg = BitField(52, 52)
  src0_abs = BitField(53, 53)
  src1_neg = BitField(54, 54)
  src1_abs = BitField(55, 55)

class VOP1_DPP8(VOP1):
  vsrc0 = VGPRField(39, 32)
  lane_sel_0 = BitField(42, 40)
  lane_sel_1 = BitField(45, 43)
  lane_sel_2 = BitField(48, 46)
  lane_sel_3 = BitField(51, 49)
  lane_sel_4 = BitField(54, 52)
  lane_sel_5 = BitField(57, 55)
  lane_sel_6 = BitField(60, 58)
  lane_sel_7 = BitField(63, 61)

class VOP1_LIT(VOP1):
  op = EnumBitField(15, 9, VOP1Op, {VOP1Op.V_NOP, VOP1Op.V_MOV_B32, VOP1Op.V_READFIRSTLANE_B32, VOP1Op.V_CVT_I32_F64, VOP1Op.V_CVT_F64_I32, VOP1Op.V_CVT_F32_I32, VOP1Op.V_CVT_F32_U32, VOP1Op.V_CVT_U32_F32, VOP1Op.V_CVT_I32_F32, VOP1Op.V_CVT_F16_F32, VOP1Op.V_CVT_F32_F16, VOP1Op.V_CVT_NEAREST_I32_F32, VOP1Op.V_CVT_FLOOR_I32_F32, VOP1Op.V_CVT_OFF_F32_I4, VOP1Op.V_CVT_F32_F64, VOP1Op.V_CVT_F64_F32, VOP1Op.V_CVT_F32_UBYTE0, VOP1Op.V_CVT_F32_UBYTE1, VOP1Op.V_CVT_F32_UBYTE2, VOP1Op.V_CVT_F32_UBYTE3, VOP1Op.V_CVT_U32_F64, VOP1Op.V_CVT_F64_U32, VOP1Op.V_TRUNC_F64, VOP1Op.V_CEIL_F64, VOP1Op.V_RNDNE_F64, VOP1Op.V_FLOOR_F64, VOP1Op.V_PIPEFLUSH, VOP1Op.V_MOV_B16, VOP1Op.V_FRACT_F32, VOP1Op.V_TRUNC_F32, VOP1Op.V_CEIL_F32, VOP1Op.V_RNDNE_F32, VOP1Op.V_FLOOR_F32, VOP1Op.V_EXP_F32, VOP1Op.V_LOG_F32, VOP1Op.V_RCP_F32, VOP1Op.V_RCP_IFLAG_F32, VOP1Op.V_RSQ_F32, VOP1Op.V_RCP_F64, VOP1Op.V_RSQ_F64, VOP1Op.V_SQRT_F32, VOP1Op.V_SQRT_F64, VOP1Op.V_SIN_F32, VOP1Op.V_COS_F32, VOP1Op.V_NOT_B32, VOP1Op.V_BFREV_B32, VOP1Op.V_CLZ_I32_U32, VOP1Op.V_CTZ_I32_B32, VOP1Op.V_CLS_I32, VOP1Op.V_FREXP_EXP_I32_F64, VOP1Op.V_FREXP_MANT_F64, VOP1Op.V_FRACT_F64, VOP1Op.V_FREXP_EXP_I32_F32, VOP1Op.V_FREXP_MANT_F32, VOP1Op.V_MOVRELD_B32, VOP1Op.V_MOVRELS_B32, VOP1Op.V_MOVRELSD_B32, VOP1Op.V_MOVRELSD_2_B32, VOP1Op.V_CVT_F16_U16, VOP1Op.V_CVT_F16_I16, VOP1Op.V_CVT_U16_F16, VOP1Op.V_CVT_I16_F16, VOP1Op.V_RCP_F16, VOP1Op.V_SQRT_F16, VOP1Op.V_RSQ_F16, VOP1Op.V_LOG_F16, VOP1Op.V_EXP_F16, VOP1Op.V_FREXP_MANT_F16, VOP1Op.V_FREXP_EXP_I16_F16, VOP1Op.V_FLOOR_F16, VOP1Op.V_CEIL_F16, VOP1Op.V_TRUNC_F16, VOP1Op.V_RNDNE_F16, VOP1Op.V_FRACT_F16, VOP1Op.V_SIN_F16, VOP1Op.V_COS_F16, VOP1Op.V_SAT_PK_U8_I16, VOP1Op.V_CVT_NORM_I16_F16, VOP1Op.V_CVT_NORM_U16_F16, VOP1Op.V_SWAP_B32, VOP1Op.V_SWAP_B16, VOP1Op.V_PERMLANE64_B32, VOP1Op.V_SWAPREL_B32, VOP1Op.V_NOT_B16, VOP1Op.V_CVT_I32_I16, VOP1Op.V_CVT_U32_U16, VOP1Op.V_CVT_F32_FP8, VOP1Op.V_CVT_F32_BF8, VOP1Op.V_CVT_PK_F32_FP8, VOP1Op.V_CVT_PK_F32_BF8})
  literal = BitField(63, 32)

class VOP2_DPP16(VOP2):
  vsrc0 = VGPRField(39, 32)
  dpp = BitField(48, 40)
  fi = BitField(50, 50)
  bc = BitField(51, 51)
  row_mask = BitField(63, 60)
  bank_mask = BitField(59, 56)
  src0_neg = BitField(52, 52)
  src0_abs = BitField(53, 53)
  src1_neg = BitField(54, 54)
  src1_abs = BitField(55, 55)

class VOP2_DPP8(VOP2):
  vsrc0 = VGPRField(39, 32)
  lane_sel_0 = BitField(42, 40)
  lane_sel_1 = BitField(45, 43)
  lane_sel_2 = BitField(48, 46)
  lane_sel_3 = BitField(51, 49)
  lane_sel_4 = BitField(54, 52)
  lane_sel_5 = BitField(57, 55)
  lane_sel_6 = BitField(60, 58)
  lane_sel_7 = BitField(63, 61)

class VOP2_LIT(VOP2):
  op = EnumBitField(30, 25, VOP2Op, {VOP2Op.V_CNDMASK_B32, VOP2Op.V_ADD_F64, VOP2Op.V_ADD_F32, VOP2Op.V_SUB_F32, VOP2Op.V_SUBREV_F32, VOP2Op.V_MUL_F64, VOP2Op.V_MUL_DX9_ZERO_F32, VOP2Op.V_MUL_F32, VOP2Op.V_MUL_I32_I24, VOP2Op.V_MUL_HI_I32_I24, VOP2Op.V_MUL_U32_U24, VOP2Op.V_MUL_HI_U32_U24, VOP2Op.V_MIN_NUM_F64, VOP2Op.V_MAX_NUM_F64, VOP2Op.V_MIN_I32, VOP2Op.V_MAX_I32, VOP2Op.V_MIN_U32, VOP2Op.V_MAX_U32, VOP2Op.V_MIN_NUM_F32, VOP2Op.V_MAX_NUM_F32, VOP2Op.V_LSHLREV_B32, VOP2Op.V_LSHRREV_B32, VOP2Op.V_ASHRREV_I32, VOP2Op.V_AND_B32, VOP2Op.V_OR_B32, VOP2Op.V_XOR_B32, VOP2Op.V_XNOR_B32, VOP2Op.V_LSHLREV_B64, VOP2Op.V_ADD_CO_CI_U32, VOP2Op.V_SUB_CO_CI_U32, VOP2Op.V_SUBREV_CO_CI_U32, VOP2Op.V_ADD_NC_U32, VOP2Op.V_SUB_NC_U32, VOP2Op.V_SUBREV_NC_U32, VOP2Op.V_FMAC_F32, VOP2Op.V_FMAMK_F32, VOP2Op.V_FMAAK_F32, VOP2Op.V_CVT_PK_RTZ_F16_F32, VOP2Op.V_MIN_NUM_F16, VOP2Op.V_MAX_NUM_F16, VOP2Op.V_ADD_F16, VOP2Op.V_SUB_F16, VOP2Op.V_SUBREV_F16, VOP2Op.V_MUL_F16, VOP2Op.V_FMAC_F16, VOP2Op.V_FMAMK_F16, VOP2Op.V_FMAAK_F16, VOP2Op.V_LDEXP_F16, VOP2Op.V_PK_FMAC_F16})
  literal = BitField(63, 32)

class VOP3P_DPP16(VOP3P):
  vsrc0 = VGPRField(71, 64)
  dpp = BitField(80, 72)
  fi = BitField(82, 82)
  bc = BitField(83, 83)
  row_mask = BitField(95, 92)
  bank_mask = BitField(91, 88)
  src0_neg = BitField(84, 84)
  src0_abs = BitField(85, 85)
  src1_neg = BitField(86, 86)
  src1_abs = BitField(87, 87)

class VOP3P_DPP8(VOP3P):
  vsrc0 = VGPRField(71, 64)
  lane_sel_0 = BitField(74, 72)
  lane_sel_1 = BitField(77, 75)
  lane_sel_2 = BitField(80, 78)
  lane_sel_3 = BitField(83, 81)
  lane_sel_4 = BitField(86, 84)
  lane_sel_5 = BitField(89, 87)
  lane_sel_6 = BitField(92, 90)
  lane_sel_7 = BitField(95, 93)

class VOP3P_LIT(VOP3P):
  op = EnumBitField(22, 16, VOP3POp, {VOP3POp.V_PK_MAD_I16, VOP3POp.V_PK_MUL_LO_U16, VOP3POp.V_PK_ADD_I16, VOP3POp.V_PK_SUB_I16, VOP3POp.V_PK_LSHLREV_B16, VOP3POp.V_PK_LSHRREV_B16, VOP3POp.V_PK_ASHRREV_I16, VOP3POp.V_PK_MAX_I16, VOP3POp.V_PK_MIN_I16, VOP3POp.V_PK_MAD_U16, VOP3POp.V_PK_ADD_U16, VOP3POp.V_PK_SUB_U16, VOP3POp.V_PK_MAX_U16, VOP3POp.V_PK_MIN_U16, VOP3POp.V_PK_FMA_F16, VOP3POp.V_PK_ADD_F16, VOP3POp.V_PK_MUL_F16, VOP3POp.V_DOT2_F32_F16, VOP3POp.V_DOT4_I32_IU8, VOP3POp.V_DOT4_U32_U8, VOP3POp.V_DOT8_I32_IU4, VOP3POp.V_DOT8_U32_U4, VOP3POp.V_DOT2_F32_BF16, VOP3POp.V_PK_MIN_NUM_F16, VOP3POp.V_PK_MAX_NUM_F16, VOP3POp.V_PK_MINIMUM_F16, VOP3POp.V_PK_MAXIMUM_F16, VOP3POp.V_FMA_MIX_F32, VOP3POp.V_FMA_MIXLO_F16, VOP3POp.V_FMA_MIXHI_F16, VOP3POp.V_DOT4_F32_FP8_BF8, VOP3POp.V_DOT4_F32_BF8_FP8, VOP3POp.V_DOT4_F32_FP8_FP8, VOP3POp.V_DOT4_F32_BF8_BF8, VOP3POp.V_WMMA_F32_16X16X16_F16, VOP3POp.V_WMMA_F32_16X16X16_BF16, VOP3POp.V_WMMA_F16_16X16X16_F16, VOP3POp.V_WMMA_BF16_16X16X16_BF16, VOP3POp.V_WMMA_I32_16X16X16_IU8, VOP3POp.V_WMMA_I32_16X16X16_IU4, VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8, VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8, VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8, VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8, VOP3POp.V_WMMA_I32_16X16X32_IU4, VOP3POp.V_SWMMAC_F32_16X16X32_F16, VOP3POp.V_SWMMAC_F32_16X16X32_BF16, VOP3POp.V_SWMMAC_F16_16X16X32_F16, VOP3POp.V_SWMMAC_BF16_16X16X32_BF16, VOP3POp.V_SWMMAC_I32_16X16X32_IU8, VOP3POp.V_SWMMAC_I32_16X16X32_IU4, VOP3POp.V_SWMMAC_I32_16X16X64_IU4, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8})
  literal = BitField(95, 64)

class VOP3SD_DPP16(VOP3SD):
  vsrc0 = VGPRField(71, 64)
  dpp = BitField(80, 72)
  fi = BitField(82, 82)
  bc = BitField(83, 83)
  row_mask = BitField(95, 92)
  bank_mask = BitField(91, 88)
  src0_neg = BitField(84, 84)
  src0_abs = BitField(85, 85)
  src1_neg = BitField(86, 86)
  src1_abs = BitField(87, 87)

class VOP3SD_DPP8(VOP3SD):
  vsrc0 = VGPRField(71, 64)
  lane_sel_0 = BitField(74, 72)
  lane_sel_1 = BitField(77, 75)
  lane_sel_2 = BitField(80, 78)
  lane_sel_3 = BitField(83, 81)
  lane_sel_4 = BitField(86, 84)
  lane_sel_5 = BitField(89, 87)
  lane_sel_6 = BitField(92, 90)
  lane_sel_7 = BitField(95, 93)

class VOP3SD_LIT(VOP3SD):
  op = EnumBitField(25, 16, VOP3SDOp, {VOP3SDOp.V_ADD_CO_CI_U32, VOP3SDOp.V_SUB_CO_CI_U32, VOP3SDOp.V_SUBREV_CO_CI_U32, VOP3SDOp.V_DIV_SCALE_F32, VOP3SDOp.V_DIV_SCALE_F64, VOP3SDOp.V_MAD_CO_U64_U32, VOP3SDOp.V_MAD_CO_I64_I32, VOP3SDOp.V_ADD_CO_U32, VOP3SDOp.V_SUB_CO_U32, VOP3SDOp.V_SUBREV_CO_U32})
  literal = BitField(95, 64)

class VOP3_DPP16(VOP3):
  vsrc0 = VGPRField(71, 64)
  dpp = BitField(80, 72)
  fi = BitField(82, 82)
  bc = BitField(83, 83)
  row_mask = BitField(95, 92)
  bank_mask = BitField(91, 88)
  src0_neg = BitField(84, 84)
  src0_abs = BitField(85, 85)
  src1_neg = BitField(86, 86)
  src1_abs = BitField(87, 87)

class VOP3_DPP8(VOP3):
  vsrc0 = VGPRField(71, 64)
  lane_sel_0 = BitField(74, 72)
  lane_sel_1 = BitField(77, 75)
  lane_sel_2 = BitField(80, 78)
  lane_sel_3 = BitField(83, 81)
  lane_sel_4 = BitField(86, 84)
  lane_sel_5 = BitField(89, 87)
  lane_sel_6 = BitField(92, 90)
  lane_sel_7 = BitField(95, 93)

class VOP3_LIT(VOP3):
  op = EnumBitField(25, 16, VOP3Op, {VOP3Op.V_CMP_LT_F16, VOP3Op.V_CMP_EQ_F16, VOP3Op.V_CMP_LE_F16, VOP3Op.V_CMP_GT_F16, VOP3Op.V_CMP_LG_F16, VOP3Op.V_CMP_GE_F16, VOP3Op.V_CMP_O_F16, VOP3Op.V_CMP_U_F16, VOP3Op.V_CMP_NGE_F16, VOP3Op.V_CMP_NLG_F16, VOP3Op.V_CMP_NGT_F16, VOP3Op.V_CMP_NLE_F16, VOP3Op.V_CMP_NEQ_F16, VOP3Op.V_CMP_NLT_F16, VOP3Op.V_CMP_LT_F32, VOP3Op.V_CMP_EQ_F32, VOP3Op.V_CMP_LE_F32, VOP3Op.V_CMP_GT_F32, VOP3Op.V_CMP_LG_F32, VOP3Op.V_CMP_GE_F32, VOP3Op.V_CMP_O_F32, VOP3Op.V_CMP_U_F32, VOP3Op.V_CMP_NGE_F32, VOP3Op.V_CMP_NLG_F32, VOP3Op.V_CMP_NGT_F32, VOP3Op.V_CMP_NLE_F32, VOP3Op.V_CMP_NEQ_F32, VOP3Op.V_CMP_NLT_F32, VOP3Op.V_CMP_LT_F64, VOP3Op.V_CMP_EQ_F64, VOP3Op.V_CMP_LE_F64, VOP3Op.V_CMP_GT_F64, VOP3Op.V_CMP_LG_F64, VOP3Op.V_CMP_GE_F64, VOP3Op.V_CMP_O_F64, VOP3Op.V_CMP_U_F64, VOP3Op.V_CMP_NGE_F64, VOP3Op.V_CMP_NLG_F64, VOP3Op.V_CMP_NGT_F64, VOP3Op.V_CMP_NLE_F64, VOP3Op.V_CMP_NEQ_F64, VOP3Op.V_CMP_NLT_F64, VOP3Op.V_CMP_LT_I16, VOP3Op.V_CMP_EQ_I16, VOP3Op.V_CMP_LE_I16, VOP3Op.V_CMP_GT_I16, VOP3Op.V_CMP_NE_I16, VOP3Op.V_CMP_GE_I16, VOP3Op.V_CMP_LT_U16, VOP3Op.V_CMP_EQ_U16, VOP3Op.V_CMP_LE_U16, VOP3Op.V_CMP_GT_U16, VOP3Op.V_CMP_NE_U16, VOP3Op.V_CMP_GE_U16, VOP3Op.V_CMP_LT_I32, VOP3Op.V_CMP_EQ_I32, VOP3Op.V_CMP_LE_I32, VOP3Op.V_CMP_GT_I32, VOP3Op.V_CMP_NE_I32, VOP3Op.V_CMP_GE_I32, VOP3Op.V_CMP_LT_U32, VOP3Op.V_CMP_EQ_U32, VOP3Op.V_CMP_LE_U32, VOP3Op.V_CMP_GT_U32, VOP3Op.V_CMP_NE_U32, VOP3Op.V_CMP_GE_U32, VOP3Op.V_CMP_LT_I64, VOP3Op.V_CMP_EQ_I64, VOP3Op.V_CMP_LE_I64, VOP3Op.V_CMP_GT_I64, VOP3Op.V_CMP_NE_I64, VOP3Op.V_CMP_GE_I64, VOP3Op.V_CMP_LT_U64, VOP3Op.V_CMP_EQ_U64, VOP3Op.V_CMP_LE_U64, VOP3Op.V_CMP_GT_U64, VOP3Op.V_CMP_NE_U64, VOP3Op.V_CMP_GE_U64, VOP3Op.V_CMP_CLASS_F16, VOP3Op.V_CMP_CLASS_F32, VOP3Op.V_CMP_CLASS_F64, VOP3Op.V_CMPX_LT_F16, VOP3Op.V_CMPX_EQ_F16, VOP3Op.V_CMPX_LE_F16, VOP3Op.V_CMPX_GT_F16, VOP3Op.V_CMPX_LG_F16, VOP3Op.V_CMPX_GE_F16, VOP3Op.V_CMPX_O_F16, VOP3Op.V_CMPX_U_F16, VOP3Op.V_CMPX_NGE_F16, VOP3Op.V_CMPX_NLG_F16, VOP3Op.V_CMPX_NGT_F16, VOP3Op.V_CMPX_NLE_F16, VOP3Op.V_CMPX_NEQ_F16, VOP3Op.V_CMPX_NLT_F16, VOP3Op.V_CMPX_LT_F32, VOP3Op.V_CMPX_EQ_F32, VOP3Op.V_CMPX_LE_F32, VOP3Op.V_CMPX_GT_F32, VOP3Op.V_CMPX_LG_F32, VOP3Op.V_CMPX_GE_F32, VOP3Op.V_CMPX_O_F32, VOP3Op.V_CMPX_U_F32, VOP3Op.V_CMPX_NGE_F32, VOP3Op.V_CMPX_NLG_F32, VOP3Op.V_CMPX_NGT_F32, VOP3Op.V_CMPX_NLE_F32, VOP3Op.V_CMPX_NEQ_F32, VOP3Op.V_CMPX_NLT_F32, VOP3Op.V_CMPX_LT_F64, VOP3Op.V_CMPX_EQ_F64, VOP3Op.V_CMPX_LE_F64, VOP3Op.V_CMPX_GT_F64, VOP3Op.V_CMPX_LG_F64, VOP3Op.V_CMPX_GE_F64, VOP3Op.V_CMPX_O_F64, VOP3Op.V_CMPX_U_F64, VOP3Op.V_CMPX_NGE_F64, VOP3Op.V_CMPX_NLG_F64, VOP3Op.V_CMPX_NGT_F64, VOP3Op.V_CMPX_NLE_F64, VOP3Op.V_CMPX_NEQ_F64, VOP3Op.V_CMPX_NLT_F64, VOP3Op.V_CMPX_LT_I16, VOP3Op.V_CMPX_EQ_I16, VOP3Op.V_CMPX_LE_I16, VOP3Op.V_CMPX_GT_I16, VOP3Op.V_CMPX_NE_I16, VOP3Op.V_CMPX_GE_I16, VOP3Op.V_CMPX_LT_U16, VOP3Op.V_CMPX_EQ_U16, VOP3Op.V_CMPX_LE_U16, VOP3Op.V_CMPX_GT_U16, VOP3Op.V_CMPX_NE_U16, VOP3Op.V_CMPX_GE_U16, VOP3Op.V_CMPX_LT_I32, VOP3Op.V_CMPX_EQ_I32, VOP3Op.V_CMPX_LE_I32, VOP3Op.V_CMPX_GT_I32, VOP3Op.V_CMPX_NE_I32, VOP3Op.V_CMPX_GE_I32, VOP3Op.V_CMPX_LT_U32, VOP3Op.V_CMPX_EQ_U32, VOP3Op.V_CMPX_LE_U32, VOP3Op.V_CMPX_GT_U32, VOP3Op.V_CMPX_NE_U32, VOP3Op.V_CMPX_GE_U32, VOP3Op.V_CMPX_LT_I64, VOP3Op.V_CMPX_EQ_I64, VOP3Op.V_CMPX_LE_I64, VOP3Op.V_CMPX_GT_I64, VOP3Op.V_CMPX_NE_I64, VOP3Op.V_CMPX_GE_I64, VOP3Op.V_CMPX_LT_U64, VOP3Op.V_CMPX_EQ_U64, VOP3Op.V_CMPX_LE_U64, VOP3Op.V_CMPX_GT_U64, VOP3Op.V_CMPX_NE_U64, VOP3Op.V_CMPX_GE_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_CNDMASK_B32, VOP3Op.V_ADD_F64, VOP3Op.V_ADD_F32, VOP3Op.V_SUB_F32, VOP3Op.V_SUBREV_F32, VOP3Op.V_MUL_F64, VOP3Op.V_MUL_DX9_ZERO_F32, VOP3Op.V_MUL_F32, VOP3Op.V_MUL_I32_I24, VOP3Op.V_MUL_HI_I32_I24, VOP3Op.V_MUL_U32_U24, VOP3Op.V_MUL_HI_U32_U24, VOP3Op.V_MIN_NUM_F64, VOP3Op.V_MAX_NUM_F64, VOP3Op.V_MIN_I32, VOP3Op.V_MAX_I32, VOP3Op.V_MIN_U32, VOP3Op.V_MAX_U32, VOP3Op.V_MIN_NUM_F32, VOP3Op.V_MAX_NUM_F32, VOP3Op.V_LSHLREV_B32, VOP3Op.V_LSHRREV_B32, VOP3Op.V_ASHRREV_I32, VOP3Op.V_AND_B32, VOP3Op.V_OR_B32, VOP3Op.V_XOR_B32, VOP3Op.V_XNOR_B32, VOP3Op.V_LSHLREV_B64, VOP3Op.V_ADD_NC_U32, VOP3Op.V_SUB_NC_U32, VOP3Op.V_SUBREV_NC_U32, VOP3Op.V_FMAC_F32, VOP3Op.V_CVT_PK_RTZ_F16_F32, VOP3Op.V_MIN_NUM_F16, VOP3Op.V_MAX_NUM_F16, VOP3Op.V_ADD_F16, VOP3Op.V_SUB_F16, VOP3Op.V_SUBREV_F16, VOP3Op.V_MUL_F16, VOP3Op.V_FMAC_F16, VOP3Op.V_LDEXP_F16, VOP3Op.V_NOP, VOP3Op.V_MOV_B32, VOP3Op.V_READFIRSTLANE_B32, VOP3Op.V_CVT_I32_F64, VOP3Op.V_CVT_F64_I32, VOP3Op.V_CVT_F32_I32, VOP3Op.V_CVT_F32_U32, VOP3Op.V_CVT_U32_F32, VOP3Op.V_CVT_I32_F32, VOP3Op.V_CVT_F16_F32, VOP3Op.V_CVT_F32_F16, VOP3Op.V_CVT_NEAREST_I32_F32, VOP3Op.V_CVT_FLOOR_I32_F32, VOP3Op.V_CVT_OFF_F32_I4, VOP3Op.V_CVT_F32_F64, VOP3Op.V_CVT_F64_F32, VOP3Op.V_CVT_F32_UBYTE0, VOP3Op.V_CVT_F32_UBYTE1, VOP3Op.V_CVT_F32_UBYTE2, VOP3Op.V_CVT_F32_UBYTE3, VOP3Op.V_CVT_U32_F64, VOP3Op.V_CVT_F64_U32, VOP3Op.V_TRUNC_F64, VOP3Op.V_CEIL_F64, VOP3Op.V_RNDNE_F64, VOP3Op.V_FLOOR_F64, VOP3Op.V_PIPEFLUSH, VOP3Op.V_MOV_B16, VOP3Op.V_FRACT_F32, VOP3Op.V_TRUNC_F32, VOP3Op.V_CEIL_F32, VOP3Op.V_RNDNE_F32, VOP3Op.V_FLOOR_F32, VOP3Op.V_EXP_F32, VOP3Op.V_LOG_F32, VOP3Op.V_RCP_F32, VOP3Op.V_RCP_IFLAG_F32, VOP3Op.V_RSQ_F32, VOP3Op.V_RCP_F64, VOP3Op.V_RSQ_F64, VOP3Op.V_SQRT_F32, VOP3Op.V_SQRT_F64, VOP3Op.V_SIN_F32, VOP3Op.V_COS_F32, VOP3Op.V_NOT_B32, VOP3Op.V_BFREV_B32, VOP3Op.V_CLZ_I32_U32, VOP3Op.V_CTZ_I32_B32, VOP3Op.V_CLS_I32, VOP3Op.V_FREXP_EXP_I32_F64, VOP3Op.V_FREXP_MANT_F64, VOP3Op.V_FRACT_F64, VOP3Op.V_FREXP_EXP_I32_F32, VOP3Op.V_FREXP_MANT_F32, VOP3Op.V_MOVRELD_B32, VOP3Op.V_MOVRELS_B32, VOP3Op.V_MOVRELSD_B32, VOP3Op.V_MOVRELSD_2_B32, VOP3Op.V_CVT_F16_U16, VOP3Op.V_CVT_F16_I16, VOP3Op.V_CVT_U16_F16, VOP3Op.V_CVT_I16_F16, VOP3Op.V_RCP_F16, VOP3Op.V_SQRT_F16, VOP3Op.V_RSQ_F16, VOP3Op.V_LOG_F16, VOP3Op.V_EXP_F16, VOP3Op.V_FREXP_MANT_F16, VOP3Op.V_FREXP_EXP_I16_F16, VOP3Op.V_FLOOR_F16, VOP3Op.V_CEIL_F16, VOP3Op.V_TRUNC_F16, VOP3Op.V_RNDNE_F16, VOP3Op.V_FRACT_F16, VOP3Op.V_SIN_F16, VOP3Op.V_COS_F16, VOP3Op.V_SAT_PK_U8_I16, VOP3Op.V_CVT_NORM_I16_F16, VOP3Op.V_CVT_NORM_U16_F16, VOP3Op.V_NOT_B16, VOP3Op.V_CVT_I32_I16, VOP3Op.V_CVT_U32_U16, VOP3Op.V_CVT_F32_FP8, VOP3Op.V_CVT_F32_BF8, VOP3Op.V_CVT_PK_F32_FP8, VOP3Op.V_CVT_PK_F32_BF8, VOP3Op.V_FMA_DX9_ZERO_F32, VOP3Op.V_MAD_I32_I24, VOP3Op.V_MAD_U32_U24, VOP3Op.V_CUBEID_F32, VOP3Op.V_CUBESC_F32, VOP3Op.V_CUBETC_F32, VOP3Op.V_CUBEMA_F32, VOP3Op.V_BFE_U32, VOP3Op.V_BFE_I32, VOP3Op.V_BFI_B32, VOP3Op.V_FMA_F32, VOP3Op.V_FMA_F64, VOP3Op.V_LERP_U8, VOP3Op.V_ALIGNBIT_B32, VOP3Op.V_ALIGNBYTE_B32, VOP3Op.V_MULLIT_F32, VOP3Op.V_MIN3_I32, VOP3Op.V_MIN3_U32, VOP3Op.V_MAX3_I32, VOP3Op.V_MAX3_U32, VOP3Op.V_MED3_I32, VOP3Op.V_MED3_U32, VOP3Op.V_SAD_U8, VOP3Op.V_SAD_HI_U8, VOP3Op.V_SAD_U16, VOP3Op.V_SAD_U32, VOP3Op.V_CVT_PK_U8_F32, VOP3Op.V_DIV_FIXUP_F32, VOP3Op.V_DIV_FIXUP_F64, VOP3Op.V_MIN3_NUM_F32, VOP3Op.V_MAX3_NUM_F32, VOP3Op.V_MIN3_NUM_F16, VOP3Op.V_MAX3_NUM_F16, VOP3Op.V_MINIMUM3_F32, VOP3Op.V_MAXIMUM3_F32, VOP3Op.V_MINIMUM3_F16, VOP3Op.V_MAXIMUM3_F16, VOP3Op.V_MED3_NUM_F32, VOP3Op.V_MED3_NUM_F16, VOP3Op.V_DIV_FMAS_F32, VOP3Op.V_DIV_FMAS_F64, VOP3Op.V_MSAD_U8, VOP3Op.V_QSAD_PK_U16_U8, VOP3Op.V_MQSAD_PK_U16_U8, VOP3Op.V_MQSAD_U32_U8, VOP3Op.V_XOR3_B32, VOP3Op.V_MAD_U16, VOP3Op.V_PERM_B32, VOP3Op.V_XAD_U32, VOP3Op.V_LSHL_ADD_U32, VOP3Op.V_ADD_LSHL_U32, VOP3Op.V_FMA_F16, VOP3Op.V_MIN3_I16, VOP3Op.V_MIN3_U16, VOP3Op.V_MAX3_I16, VOP3Op.V_MAX3_U16, VOP3Op.V_MED3_I16, VOP3Op.V_MED3_U16, VOP3Op.V_MAD_I16, VOP3Op.V_DIV_FIXUP_F16, VOP3Op.V_ADD3_U32, VOP3Op.V_LSHL_OR_B32, VOP3Op.V_AND_OR_B32, VOP3Op.V_OR3_B32, VOP3Op.V_MAD_U32_U16, VOP3Op.V_MAD_I32_I16, VOP3Op.V_PERMLANE16_B32, VOP3Op.V_PERMLANEX16_B32, VOP3Op.V_CNDMASK_B16, VOP3Op.V_MAXMIN_U32, VOP3Op.V_MINMAX_U32, VOP3Op.V_MAXMIN_I32, VOP3Op.V_MINMAX_I32, VOP3Op.V_DOT2_F16_F16, VOP3Op.V_DOT2_BF16_BF16, VOP3Op.V_MINMAX_NUM_F32, VOP3Op.V_MAXMIN_NUM_F32, VOP3Op.V_MINMAX_NUM_F16, VOP3Op.V_MAXMIN_NUM_F16, VOP3Op.V_MINIMUMMAXIMUM_F32, VOP3Op.V_MAXIMUMMINIMUM_F32, VOP3Op.V_MINIMUMMAXIMUM_F16, VOP3Op.V_MAXIMUMMINIMUM_F16, VOP3Op.V_S_EXP_F32, VOP3Op.V_S_EXP_F16, VOP3Op.V_S_LOG_F32, VOP3Op.V_S_LOG_F16, VOP3Op.V_S_RCP_F32, VOP3Op.V_S_RCP_F16, VOP3Op.V_S_RSQ_F32, VOP3Op.V_S_RSQ_F16, VOP3Op.V_S_SQRT_F32, VOP3Op.V_S_SQRT_F16, VOP3Op.V_ADD_NC_U16, VOP3Op.V_SUB_NC_U16, VOP3Op.V_MUL_LO_U16, VOP3Op.V_CVT_PK_I16_F32, VOP3Op.V_CVT_PK_U16_F32, VOP3Op.V_MAX_U16, VOP3Op.V_MAX_I16, VOP3Op.V_MIN_U16, VOP3Op.V_MIN_I16, VOP3Op.V_ADD_NC_I16, VOP3Op.V_SUB_NC_I16, VOP3Op.V_PERMLANE16_VAR_B32, VOP3Op.V_PERMLANEX16_VAR_B32, VOP3Op.V_PACK_B32_F16, VOP3Op.V_CVT_PK_NORM_I16_F16, VOP3Op.V_CVT_PK_NORM_U16_F16, VOP3Op.V_LDEXP_F32, VOP3Op.V_BFM_B32, VOP3Op.V_BCNT_U32_B32, VOP3Op.V_MBCNT_LO_U32_B32, VOP3Op.V_MBCNT_HI_U32_B32, VOP3Op.V_CVT_PK_NORM_I16_F32, VOP3Op.V_CVT_PK_NORM_U16_F32, VOP3Op.V_CVT_PK_U16_U32, VOP3Op.V_CVT_PK_I16_I32, VOP3Op.V_SUB_NC_I32, VOP3Op.V_ADD_NC_I32, VOP3Op.V_LDEXP_F64, VOP3Op.V_MUL_LO_U32, VOP3Op.V_MUL_HI_U32, VOP3Op.V_MUL_HI_I32, VOP3Op.V_TRIG_PREOP_F64, VOP3Op.V_LSHLREV_B16, VOP3Op.V_LSHRREV_B16, VOP3Op.V_ASHRREV_I16, VOP3Op.V_LSHRREV_B64, VOP3Op.V_ASHRREV_I64, VOP3Op.V_MINIMUM_F64, VOP3Op.V_MAXIMUM_F64, VOP3Op.V_READLANE_B32, VOP3Op.V_WRITELANE_B32, VOP3Op.V_AND_B16, VOP3Op.V_OR_B16, VOP3Op.V_XOR_B16, VOP3Op.V_MINIMUM_F32, VOP3Op.V_MAXIMUM_F32, VOP3Op.V_MINIMUM_F16, VOP3Op.V_MAXIMUM_F16, VOP3Op.V_CVT_PK_FP8_F32, VOP3Op.V_CVT_PK_BF8_F32, VOP3Op.V_CVT_SR_FP8_F32, VOP3Op.V_CVT_SR_BF8_F32})
  literal = BitField(95, 64)

class VOPC_DPP16(VOPC):
  vsrc0 = VGPRField(39, 32)
  dpp = BitField(48, 40)
  fi = BitField(50, 50)
  bc = BitField(51, 51)
  row_mask = BitField(63, 60)
  bank_mask = BitField(59, 56)
  src0_neg = BitField(52, 52)
  src0_abs = BitField(53, 53)
  src1_neg = BitField(54, 54)
  src1_abs = BitField(55, 55)

class VOPC_DPP8(VOPC):
  vsrc0 = VGPRField(39, 32)
  lane_sel_0 = BitField(42, 40)
  lane_sel_1 = BitField(45, 43)
  lane_sel_2 = BitField(48, 46)
  lane_sel_3 = BitField(51, 49)
  lane_sel_4 = BitField(54, 52)
  lane_sel_5 = BitField(57, 55)
  lane_sel_6 = BitField(60, 58)
  lane_sel_7 = BitField(63, 61)

class VOPC_LIT(VOPC):
  op = EnumBitField(24, 17, VOPCOp, {VOPCOp.V_CMP_LT_F16, VOPCOp.V_CMP_EQ_F16, VOPCOp.V_CMP_LE_F16, VOPCOp.V_CMP_GT_F16, VOPCOp.V_CMP_LG_F16, VOPCOp.V_CMP_GE_F16, VOPCOp.V_CMP_O_F16, VOPCOp.V_CMP_U_F16, VOPCOp.V_CMP_NGE_F16, VOPCOp.V_CMP_NLG_F16, VOPCOp.V_CMP_NGT_F16, VOPCOp.V_CMP_NLE_F16, VOPCOp.V_CMP_NEQ_F16, VOPCOp.V_CMP_NLT_F16, VOPCOp.V_CMP_LT_F32, VOPCOp.V_CMP_EQ_F32, VOPCOp.V_CMP_LE_F32, VOPCOp.V_CMP_GT_F32, VOPCOp.V_CMP_LG_F32, VOPCOp.V_CMP_GE_F32, VOPCOp.V_CMP_O_F32, VOPCOp.V_CMP_U_F32, VOPCOp.V_CMP_NGE_F32, VOPCOp.V_CMP_NLG_F32, VOPCOp.V_CMP_NGT_F32, VOPCOp.V_CMP_NLE_F32, VOPCOp.V_CMP_NEQ_F32, VOPCOp.V_CMP_NLT_F32, VOPCOp.V_CMP_LT_F64, VOPCOp.V_CMP_EQ_F64, VOPCOp.V_CMP_LE_F64, VOPCOp.V_CMP_GT_F64, VOPCOp.V_CMP_LG_F64, VOPCOp.V_CMP_GE_F64, VOPCOp.V_CMP_O_F64, VOPCOp.V_CMP_U_F64, VOPCOp.V_CMP_NGE_F64, VOPCOp.V_CMP_NLG_F64, VOPCOp.V_CMP_NGT_F64, VOPCOp.V_CMP_NLE_F64, VOPCOp.V_CMP_NEQ_F64, VOPCOp.V_CMP_NLT_F64, VOPCOp.V_CMP_LT_I16, VOPCOp.V_CMP_EQ_I16, VOPCOp.V_CMP_LE_I16, VOPCOp.V_CMP_GT_I16, VOPCOp.V_CMP_NE_I16, VOPCOp.V_CMP_GE_I16, VOPCOp.V_CMP_LT_U16, VOPCOp.V_CMP_EQ_U16, VOPCOp.V_CMP_LE_U16, VOPCOp.V_CMP_GT_U16, VOPCOp.V_CMP_NE_U16, VOPCOp.V_CMP_GE_U16, VOPCOp.V_CMP_LT_I32, VOPCOp.V_CMP_EQ_I32, VOPCOp.V_CMP_LE_I32, VOPCOp.V_CMP_GT_I32, VOPCOp.V_CMP_NE_I32, VOPCOp.V_CMP_GE_I32, VOPCOp.V_CMP_LT_U32, VOPCOp.V_CMP_EQ_U32, VOPCOp.V_CMP_LE_U32, VOPCOp.V_CMP_GT_U32, VOPCOp.V_CMP_NE_U32, VOPCOp.V_CMP_GE_U32, VOPCOp.V_CMP_LT_I64, VOPCOp.V_CMP_EQ_I64, VOPCOp.V_CMP_LE_I64, VOPCOp.V_CMP_GT_I64, VOPCOp.V_CMP_NE_I64, VOPCOp.V_CMP_GE_I64, VOPCOp.V_CMP_LT_U64, VOPCOp.V_CMP_EQ_U64, VOPCOp.V_CMP_LE_U64, VOPCOp.V_CMP_GT_U64, VOPCOp.V_CMP_NE_U64, VOPCOp.V_CMP_GE_U64, VOPCOp.V_CMP_CLASS_F16, VOPCOp.V_CMP_CLASS_F32, VOPCOp.V_CMP_CLASS_F64, VOPCOp.V_CMPX_LT_F16, VOPCOp.V_CMPX_EQ_F16, VOPCOp.V_CMPX_LE_F16, VOPCOp.V_CMPX_GT_F16, VOPCOp.V_CMPX_LG_F16, VOPCOp.V_CMPX_GE_F16, VOPCOp.V_CMPX_O_F16, VOPCOp.V_CMPX_U_F16, VOPCOp.V_CMPX_NGE_F16, VOPCOp.V_CMPX_NLG_F16, VOPCOp.V_CMPX_NGT_F16, VOPCOp.V_CMPX_NLE_F16, VOPCOp.V_CMPX_NEQ_F16, VOPCOp.V_CMPX_NLT_F16, VOPCOp.V_CMPX_LT_F32, VOPCOp.V_CMPX_EQ_F32, VOPCOp.V_CMPX_LE_F32, VOPCOp.V_CMPX_GT_F32, VOPCOp.V_CMPX_LG_F32, VOPCOp.V_CMPX_GE_F32, VOPCOp.V_CMPX_O_F32, VOPCOp.V_CMPX_U_F32, VOPCOp.V_CMPX_NGE_F32, VOPCOp.V_CMPX_NLG_F32, VOPCOp.V_CMPX_NGT_F32, VOPCOp.V_CMPX_NLE_F32, VOPCOp.V_CMPX_NEQ_F32, VOPCOp.V_CMPX_NLT_F32, VOPCOp.V_CMPX_LT_F64, VOPCOp.V_CMPX_EQ_F64, VOPCOp.V_CMPX_LE_F64, VOPCOp.V_CMPX_GT_F64, VOPCOp.V_CMPX_LG_F64, VOPCOp.V_CMPX_GE_F64, VOPCOp.V_CMPX_O_F64, VOPCOp.V_CMPX_U_F64, VOPCOp.V_CMPX_NGE_F64, VOPCOp.V_CMPX_NLG_F64, VOPCOp.V_CMPX_NGT_F64, VOPCOp.V_CMPX_NLE_F64, VOPCOp.V_CMPX_NEQ_F64, VOPCOp.V_CMPX_NLT_F64, VOPCOp.V_CMPX_LT_I16, VOPCOp.V_CMPX_EQ_I16, VOPCOp.V_CMPX_LE_I16, VOPCOp.V_CMPX_GT_I16, VOPCOp.V_CMPX_NE_I16, VOPCOp.V_CMPX_GE_I16, VOPCOp.V_CMPX_LT_U16, VOPCOp.V_CMPX_EQ_U16, VOPCOp.V_CMPX_LE_U16, VOPCOp.V_CMPX_GT_U16, VOPCOp.V_CMPX_NE_U16, VOPCOp.V_CMPX_GE_U16, VOPCOp.V_CMPX_LT_I32, VOPCOp.V_CMPX_EQ_I32, VOPCOp.V_CMPX_LE_I32, VOPCOp.V_CMPX_GT_I32, VOPCOp.V_CMPX_NE_I32, VOPCOp.V_CMPX_GE_I32, VOPCOp.V_CMPX_LT_U32, VOPCOp.V_CMPX_EQ_U32, VOPCOp.V_CMPX_LE_U32, VOPCOp.V_CMPX_GT_U32, VOPCOp.V_CMPX_NE_U32, VOPCOp.V_CMPX_GE_U32, VOPCOp.V_CMPX_LT_I64, VOPCOp.V_CMPX_EQ_I64, VOPCOp.V_CMPX_LE_I64, VOPCOp.V_CMPX_GT_I64, VOPCOp.V_CMPX_NE_I64, VOPCOp.V_CMPX_GE_I64, VOPCOp.V_CMPX_LT_U64, VOPCOp.V_CMPX_EQ_U64, VOPCOp.V_CMPX_LE_U64, VOPCOp.V_CMPX_GT_U64, VOPCOp.V_CMPX_NE_U64, VOPCOp.V_CMPX_GE_U64, VOPCOp.V_CMPX_CLASS_F16, VOPCOp.V_CMPX_CLASS_F32, VOPCOp.V_CMPX_CLASS_F64})
  literal = BitField(63, 32)

class VOPD_LIT(VOPD):
  literal = BitField(95, 64)

class VOP1_SDST(VOP1):
  op = EnumBitField(15, 9, VOP1Op, {VOP1Op.V_READFIRSTLANE_B32})
  vdst = SSrcField(24, 17)

class VOP1_SDST_LIT(VOP1_SDST):
  literal = BitField(63, 32)

class VOP3_SDST(VOP3):
  op = EnumBitField(25, 16, VOP3Op, {VOP3Op.V_CMP_LT_F16, VOP3Op.V_CMP_EQ_F16, VOP3Op.V_CMP_LE_F16, VOP3Op.V_CMP_GT_F16, VOP3Op.V_CMP_LG_F16, VOP3Op.V_CMP_GE_F16, VOP3Op.V_CMP_O_F16, VOP3Op.V_CMP_U_F16, VOP3Op.V_CMP_NGE_F16, VOP3Op.V_CMP_NLG_F16, VOP3Op.V_CMP_NGT_F16, VOP3Op.V_CMP_NLE_F16, VOP3Op.V_CMP_NEQ_F16, VOP3Op.V_CMP_NLT_F16, VOP3Op.V_CMP_LT_F32, VOP3Op.V_CMP_EQ_F32, VOP3Op.V_CMP_LE_F32, VOP3Op.V_CMP_GT_F32, VOP3Op.V_CMP_LG_F32, VOP3Op.V_CMP_GE_F32, VOP3Op.V_CMP_O_F32, VOP3Op.V_CMP_U_F32, VOP3Op.V_CMP_NGE_F32, VOP3Op.V_CMP_NLG_F32, VOP3Op.V_CMP_NGT_F32, VOP3Op.V_CMP_NLE_F32, VOP3Op.V_CMP_NEQ_F32, VOP3Op.V_CMP_NLT_F32, VOP3Op.V_CMP_LT_F64, VOP3Op.V_CMP_EQ_F64, VOP3Op.V_CMP_LE_F64, VOP3Op.V_CMP_GT_F64, VOP3Op.V_CMP_LG_F64, VOP3Op.V_CMP_GE_F64, VOP3Op.V_CMP_O_F64, VOP3Op.V_CMP_U_F64, VOP3Op.V_CMP_NGE_F64, VOP3Op.V_CMP_NLG_F64, VOP3Op.V_CMP_NGT_F64, VOP3Op.V_CMP_NLE_F64, VOP3Op.V_CMP_NEQ_F64, VOP3Op.V_CMP_NLT_F64, VOP3Op.V_CMP_LT_I16, VOP3Op.V_CMP_EQ_I16, VOP3Op.V_CMP_LE_I16, VOP3Op.V_CMP_GT_I16, VOP3Op.V_CMP_NE_I16, VOP3Op.V_CMP_GE_I16, VOP3Op.V_CMP_LT_U16, VOP3Op.V_CMP_EQ_U16, VOP3Op.V_CMP_LE_U16, VOP3Op.V_CMP_GT_U16, VOP3Op.V_CMP_NE_U16, VOP3Op.V_CMP_GE_U16, VOP3Op.V_CMP_LT_I32, VOP3Op.V_CMP_EQ_I32, VOP3Op.V_CMP_LE_I32, VOP3Op.V_CMP_GT_I32, VOP3Op.V_CMP_NE_I32, VOP3Op.V_CMP_GE_I32, VOP3Op.V_CMP_LT_U32, VOP3Op.V_CMP_EQ_U32, VOP3Op.V_CMP_LE_U32, VOP3Op.V_CMP_GT_U32, VOP3Op.V_CMP_NE_U32, VOP3Op.V_CMP_GE_U32, VOP3Op.V_CMP_LT_I64, VOP3Op.V_CMP_EQ_I64, VOP3Op.V_CMP_LE_I64, VOP3Op.V_CMP_GT_I64, VOP3Op.V_CMP_NE_I64, VOP3Op.V_CMP_GE_I64, VOP3Op.V_CMP_LT_U64, VOP3Op.V_CMP_EQ_U64, VOP3Op.V_CMP_LE_U64, VOP3Op.V_CMP_GT_U64, VOP3Op.V_CMP_NE_U64, VOP3Op.V_CMP_GE_U64, VOP3Op.V_CMP_CLASS_F16, VOP3Op.V_CMP_CLASS_F32, VOP3Op.V_CMP_CLASS_F64, VOP3Op.V_CMPX_LT_F16, VOP3Op.V_CMPX_EQ_F16, VOP3Op.V_CMPX_LE_F16, VOP3Op.V_CMPX_GT_F16, VOP3Op.V_CMPX_LG_F16, VOP3Op.V_CMPX_GE_F16, VOP3Op.V_CMPX_O_F16, VOP3Op.V_CMPX_U_F16, VOP3Op.V_CMPX_NGE_F16, VOP3Op.V_CMPX_NLG_F16, VOP3Op.V_CMPX_NGT_F16, VOP3Op.V_CMPX_NLE_F16, VOP3Op.V_CMPX_NEQ_F16, VOP3Op.V_CMPX_NLT_F16, VOP3Op.V_CMPX_LT_F32, VOP3Op.V_CMPX_EQ_F32, VOP3Op.V_CMPX_LE_F32, VOP3Op.V_CMPX_GT_F32, VOP3Op.V_CMPX_LG_F32, VOP3Op.V_CMPX_GE_F32, VOP3Op.V_CMPX_O_F32, VOP3Op.V_CMPX_U_F32, VOP3Op.V_CMPX_NGE_F32, VOP3Op.V_CMPX_NLG_F32, VOP3Op.V_CMPX_NGT_F32, VOP3Op.V_CMPX_NLE_F32, VOP3Op.V_CMPX_NEQ_F32, VOP3Op.V_CMPX_NLT_F32, VOP3Op.V_CMPX_LT_F64, VOP3Op.V_CMPX_EQ_F64, VOP3Op.V_CMPX_LE_F64, VOP3Op.V_CMPX_GT_F64, VOP3Op.V_CMPX_LG_F64, VOP3Op.V_CMPX_GE_F64, VOP3Op.V_CMPX_O_F64, VOP3Op.V_CMPX_U_F64, VOP3Op.V_CMPX_NGE_F64, VOP3Op.V_CMPX_NLG_F64, VOP3Op.V_CMPX_NGT_F64, VOP3Op.V_CMPX_NLE_F64, VOP3Op.V_CMPX_NEQ_F64, VOP3Op.V_CMPX_NLT_F64, VOP3Op.V_CMPX_LT_I16, VOP3Op.V_CMPX_EQ_I16, VOP3Op.V_CMPX_LE_I16, VOP3Op.V_CMPX_GT_I16, VOP3Op.V_CMPX_NE_I16, VOP3Op.V_CMPX_GE_I16, VOP3Op.V_CMPX_LT_U16, VOP3Op.V_CMPX_EQ_U16, VOP3Op.V_CMPX_LE_U16, VOP3Op.V_CMPX_GT_U16, VOP3Op.V_CMPX_NE_U16, VOP3Op.V_CMPX_GE_U16, VOP3Op.V_CMPX_LT_I32, VOP3Op.V_CMPX_EQ_I32, VOP3Op.V_CMPX_LE_I32, VOP3Op.V_CMPX_GT_I32, VOP3Op.V_CMPX_NE_I32, VOP3Op.V_CMPX_GE_I32, VOP3Op.V_CMPX_LT_U32, VOP3Op.V_CMPX_EQ_U32, VOP3Op.V_CMPX_LE_U32, VOP3Op.V_CMPX_GT_U32, VOP3Op.V_CMPX_NE_U32, VOP3Op.V_CMPX_GE_U32, VOP3Op.V_CMPX_LT_I64, VOP3Op.V_CMPX_EQ_I64, VOP3Op.V_CMPX_LE_I64, VOP3Op.V_CMPX_GT_I64, VOP3Op.V_CMPX_NE_I64, VOP3Op.V_CMPX_GE_I64, VOP3Op.V_CMPX_LT_U64, VOP3Op.V_CMPX_EQ_U64, VOP3Op.V_CMPX_LE_U64, VOP3Op.V_CMPX_GT_U64, VOP3Op.V_CMPX_NE_U64, VOP3Op.V_CMPX_GE_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_READFIRSTLANE_B32, VOP3Op.V_S_EXP_F32, VOP3Op.V_S_EXP_F16, VOP3Op.V_S_LOG_F32, VOP3Op.V_S_LOG_F16, VOP3Op.V_S_RCP_F32, VOP3Op.V_S_RCP_F16, VOP3Op.V_S_RSQ_F32, VOP3Op.V_S_RSQ_F16, VOP3Op.V_S_SQRT_F32, VOP3Op.V_S_SQRT_F16, VOP3Op.V_READLANE_B32})
  vdst = SSrcField(7, 0)

class VOP3_SDST_LIT(VOP3_SDST):
  literal = BitField(95, 64)

# instruction helpers
ds_add_u32 = functools.partial(DS, DSOp.DS_ADD_U32)
ds_sub_u32 = functools.partial(DS, DSOp.DS_SUB_U32)
ds_rsub_u32 = functools.partial(DS, DSOp.DS_RSUB_U32)
ds_inc_u32 = functools.partial(DS, DSOp.DS_INC_U32)
ds_dec_u32 = functools.partial(DS, DSOp.DS_DEC_U32)
ds_min_i32 = functools.partial(DS, DSOp.DS_MIN_I32)
ds_max_i32 = functools.partial(DS, DSOp.DS_MAX_I32)
ds_min_u32 = functools.partial(DS, DSOp.DS_MIN_U32)
ds_max_u32 = functools.partial(DS, DSOp.DS_MAX_U32)
ds_and_b32 = functools.partial(DS, DSOp.DS_AND_B32)
ds_or_b32 = functools.partial(DS, DSOp.DS_OR_B32)
ds_xor_b32 = functools.partial(DS, DSOp.DS_XOR_B32)
ds_mskor_b32 = functools.partial(DS, DSOp.DS_MSKOR_B32)
ds_store_b32 = functools.partial(DS, DSOp.DS_STORE_B32)
ds_store_2addr_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B32)
ds_store_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B32)
ds_cmpstore_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_B32)
ds_min_num_f32 = functools.partial(DS, DSOp.DS_MIN_NUM_F32)
ds_max_num_f32 = functools.partial(DS, DSOp.DS_MAX_NUM_F32)
ds_nop = functools.partial(DS, DSOp.DS_NOP)
ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32)
ds_store_b8 = functools.partial(DS, DSOp.DS_STORE_B8)
ds_store_b16 = functools.partial(DS, DSOp.DS_STORE_B16)
ds_add_rtn_u32 = functools.partial(DS, DSOp.DS_ADD_RTN_U32)
ds_sub_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_RTN_U32)
ds_rsub_rtn_u32 = functools.partial(DS, DSOp.DS_RSUB_RTN_U32)
ds_inc_rtn_u32 = functools.partial(DS, DSOp.DS_INC_RTN_U32)
ds_dec_rtn_u32 = functools.partial(DS, DSOp.DS_DEC_RTN_U32)
ds_min_rtn_i32 = functools.partial(DS, DSOp.DS_MIN_RTN_I32)
ds_max_rtn_i32 = functools.partial(DS, DSOp.DS_MAX_RTN_I32)
ds_min_rtn_u32 = functools.partial(DS, DSOp.DS_MIN_RTN_U32)
ds_max_rtn_u32 = functools.partial(DS, DSOp.DS_MAX_RTN_U32)
ds_and_rtn_b32 = functools.partial(DS, DSOp.DS_AND_RTN_B32)
ds_or_rtn_b32 = functools.partial(DS, DSOp.DS_OR_RTN_B32)
ds_xor_rtn_b32 = functools.partial(DS, DSOp.DS_XOR_RTN_B32)
ds_mskor_rtn_b32 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B32)
ds_storexchg_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B32)
ds_storexchg_2addr_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B32)
ds_storexchg_2addr_stride64_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32)
ds_cmpstore_rtn_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B32)
ds_min_num_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_NUM_RTN_F32)
ds_max_num_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_NUM_RTN_F32)
ds_swizzle_b32 = functools.partial(DS, DSOp.DS_SWIZZLE_B32)
ds_load_b32 = functools.partial(DS, DSOp.DS_LOAD_B32)
ds_load_2addr_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B32)
ds_load_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B32)
ds_load_i8 = functools.partial(DS, DSOp.DS_LOAD_I8)
ds_load_u8 = functools.partial(DS, DSOp.DS_LOAD_U8)
ds_load_i16 = functools.partial(DS, DSOp.DS_LOAD_I16)
ds_load_u16 = functools.partial(DS, DSOp.DS_LOAD_U16)
ds_consume = functools.partial(DS, DSOp.DS_CONSUME)
ds_append = functools.partial(DS, DSOp.DS_APPEND)
ds_add_u64 = functools.partial(DS, DSOp.DS_ADD_U64)
ds_sub_u64 = functools.partial(DS, DSOp.DS_SUB_U64)
ds_rsub_u64 = functools.partial(DS, DSOp.DS_RSUB_U64)
ds_inc_u64 = functools.partial(DS, DSOp.DS_INC_U64)
ds_dec_u64 = functools.partial(DS, DSOp.DS_DEC_U64)
ds_min_i64 = functools.partial(DS, DSOp.DS_MIN_I64)
ds_max_i64 = functools.partial(DS, DSOp.DS_MAX_I64)
ds_min_u64 = functools.partial(DS, DSOp.DS_MIN_U64)
ds_max_u64 = functools.partial(DS, DSOp.DS_MAX_U64)
ds_and_b64 = functools.partial(DS, DSOp.DS_AND_B64)
ds_or_b64 = functools.partial(DS, DSOp.DS_OR_B64)
ds_xor_b64 = functools.partial(DS, DSOp.DS_XOR_B64)
ds_mskor_b64 = functools.partial(DS, DSOp.DS_MSKOR_B64)
ds_store_b64 = functools.partial(DS, DSOp.DS_STORE_B64)
ds_store_2addr_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B64)
ds_store_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B64)
ds_cmpstore_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_B64)
ds_min_num_f64 = functools.partial(DS, DSOp.DS_MIN_NUM_F64)
ds_max_num_f64 = functools.partial(DS, DSOp.DS_MAX_NUM_F64)
ds_add_rtn_u64 = functools.partial(DS, DSOp.DS_ADD_RTN_U64)
ds_sub_rtn_u64 = functools.partial(DS, DSOp.DS_SUB_RTN_U64)
ds_rsub_rtn_u64 = functools.partial(DS, DSOp.DS_RSUB_RTN_U64)
ds_inc_rtn_u64 = functools.partial(DS, DSOp.DS_INC_RTN_U64)
ds_dec_rtn_u64 = functools.partial(DS, DSOp.DS_DEC_RTN_U64)
ds_min_rtn_i64 = functools.partial(DS, DSOp.DS_MIN_RTN_I64)
ds_max_rtn_i64 = functools.partial(DS, DSOp.DS_MAX_RTN_I64)
ds_min_rtn_u64 = functools.partial(DS, DSOp.DS_MIN_RTN_U64)
ds_max_rtn_u64 = functools.partial(DS, DSOp.DS_MAX_RTN_U64)
ds_and_rtn_b64 = functools.partial(DS, DSOp.DS_AND_RTN_B64)
ds_or_rtn_b64 = functools.partial(DS, DSOp.DS_OR_RTN_B64)
ds_xor_rtn_b64 = functools.partial(DS, DSOp.DS_XOR_RTN_B64)
ds_mskor_rtn_b64 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B64)
ds_storexchg_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B64)
ds_storexchg_2addr_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B64)
ds_storexchg_2addr_stride64_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64)
ds_cmpstore_rtn_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B64)
ds_min_num_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_NUM_RTN_F64)
ds_max_num_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_NUM_RTN_F64)
ds_load_b64 = functools.partial(DS, DSOp.DS_LOAD_B64)
ds_load_2addr_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B64)
ds_load_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B64)
ds_add_rtn_f32 = functools.partial(DS, DSOp.DS_ADD_RTN_F32)
ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64)
ds_cond_sub_u32 = functools.partial(DS, DSOp.DS_COND_SUB_U32)
ds_sub_clamp_u32 = functools.partial(DS, DSOp.DS_SUB_CLAMP_U32)
ds_pk_add_f16 = functools.partial(DS, DSOp.DS_PK_ADD_F16)
ds_pk_add_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_BF16)
ds_store_b8_d16_hi = functools.partial(DS, DSOp.DS_STORE_B8_D16_HI)
ds_store_b16_d16_hi = functools.partial(DS, DSOp.DS_STORE_B16_D16_HI)
ds_load_u8_d16 = functools.partial(DS, DSOp.DS_LOAD_U8_D16)
ds_load_u8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U8_D16_HI)
ds_load_i8_d16 = functools.partial(DS, DSOp.DS_LOAD_I8_D16)
ds_load_i8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_I8_D16_HI)
ds_load_u16_d16 = functools.partial(DS, DSOp.DS_LOAD_U16_D16)
ds_load_u16_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U16_D16_HI)
ds_cond_sub_rtn_u32 = functools.partial(DS, DSOp.DS_COND_SUB_RTN_U32)
ds_sub_clamp_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_CLAMP_RTN_U32)
ds_pk_add_rtn_f16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_F16)
ds_pk_add_rtn_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_BF16)
ds_store_addtid_b32 = functools.partial(DS, DSOp.DS_STORE_ADDTID_B32)
ds_load_addtid_b32 = functools.partial(DS, DSOp.DS_LOAD_ADDTID_B32)
ds_permute_b32 = functools.partial(DS, DSOp.DS_PERMUTE_B32)
ds_bpermute_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_B32)
ds_bpermute_fi_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_FI_B32)
ds_store_b96 = functools.partial(DS, DSOp.DS_STORE_B96)
ds_store_b128 = functools.partial(DS, DSOp.DS_STORE_B128)
ds_bvh_stack_push4_pop1_rtn_b32 = functools.partial(DS, DSOp.DS_BVH_STACK_PUSH4_POP1_RTN_B32)
ds_bvh_stack_push8_pop1_rtn_b32 = functools.partial(DS, DSOp.DS_BVH_STACK_PUSH8_POP1_RTN_B32)
ds_bvh_stack_push8_pop2_rtn_b64 = functools.partial(DS, DSOp.DS_BVH_STACK_PUSH8_POP2_RTN_B64)
ds_load_b96 = functools.partial(DS, DSOp.DS_LOAD_B96)
ds_load_b128 = functools.partial(DS, DSOp.DS_LOAD_B128)
s_load_b32 = functools.partial(SMEM, SMEMOp.S_LOAD_B32)
s_load_b64 = functools.partial(SMEM, SMEMOp.S_LOAD_B64)
s_load_b128 = functools.partial(SMEM, SMEMOp.S_LOAD_B128)
s_load_b256 = functools.partial(SMEM, SMEMOp.S_LOAD_B256)
s_load_b512 = functools.partial(SMEM, SMEMOp.S_LOAD_B512)
s_load_b96 = functools.partial(SMEM, SMEMOp.S_LOAD_B96)
s_load_i8 = functools.partial(SMEM, SMEMOp.S_LOAD_I8)
s_load_u8 = functools.partial(SMEM, SMEMOp.S_LOAD_U8)
s_load_i16 = functools.partial(SMEM, SMEMOp.S_LOAD_I16)
s_load_u16 = functools.partial(SMEM, SMEMOp.S_LOAD_U16)
s_buffer_load_b32 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B32)
s_buffer_load_b64 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B64)
s_buffer_load_b128 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B128)
s_buffer_load_b256 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B256)
s_buffer_load_b512 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B512)
s_buffer_load_b96 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B96)
s_buffer_load_i8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I8)
s_buffer_load_u8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U8)
s_buffer_load_i16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I16)
s_buffer_load_u16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U16)
s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV)
s_atc_probe = functools.partial(SMEM, SMEMOp.S_ATC_PROBE)
s_atc_probe_buffer = functools.partial(SMEM, SMEMOp.S_ATC_PROBE_BUFFER)
s_prefetch_inst = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST)
s_prefetch_inst_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST_PC_REL)
s_prefetch_data = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA)
s_buffer_prefetch_data = functools.partial(SMEM, SMEMOp.S_BUFFER_PREFETCH_DATA)
s_prefetch_data_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA_PC_REL)
s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32)
s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64)
s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32)
s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64)
s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32)
s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64)
s_ctz_i32_b32 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B32)
s_ctz_i32_b64 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B64)
s_clz_i32_u32 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U32)
s_clz_i32_u64 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U64)
s_cls_i32 = functools.partial(SOP1, SOP1Op.S_CLS_I32)
s_cls_i32_i64 = functools.partial(SOP1, SOP1Op.S_CLS_I32_I64)
s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8)
s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16)
s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32)
s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64)
s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32)
s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64)
s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32)
s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32)
s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32)
s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64)
s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32)
s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64)
s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32)
s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64)
s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32)
s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64)
s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32)
s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64)
s_and_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B32)
s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64)
s_or_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B32)
s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64)
s_xor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B32)
s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64)
s_nand_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B32)
s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64)
s_nor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B32)
s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64)
s_xnor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B32)
s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64)
s_and_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B32)
s_and_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B64)
s_or_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B32)
s_or_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B64)
s_and_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B32)
s_and_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B64)
s_or_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B32)
s_or_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B64)
s_and_not0_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B32)
s_and_not0_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B64)
s_and_not1_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B32)
s_and_not1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B64)
s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32)
s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64)
s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32)
s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64)
s_movrelsd_2_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELSD_2_B32)
s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64)
s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64)
s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64)
s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64)
s_sendmsg_rtn_b32 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B32)
s_sendmsg_rtn_b64 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B64)
s_barrier_signal = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL)
s_barrier_signal_isfirst = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL_ISFIRST)
s_get_barrier_state = functools.partial(SOP1, SOP1Op.S_GET_BARRIER_STATE)
s_barrier_init = functools.partial(SOP1, SOP1Op.S_BARRIER_INIT)
s_barrier_join = functools.partial(SOP1, SOP1Op.S_BARRIER_JOIN)
s_alloc_vgpr = functools.partial(SOP1, SOP1Op.S_ALLOC_VGPR)
s_sleep_var = functools.partial(SOP1, SOP1Op.S_SLEEP_VAR)
s_ceil_f32 = functools.partial(SOP1, SOP1Op.S_CEIL_F32)
s_floor_f32 = functools.partial(SOP1, SOP1Op.S_FLOOR_F32)
s_trunc_f32 = functools.partial(SOP1, SOP1Op.S_TRUNC_F32)
s_rndne_f32 = functools.partial(SOP1, SOP1Op.S_RNDNE_F32)
s_cvt_f32_i32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_I32)
s_cvt_f32_u32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_U32)
s_cvt_i32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_I32_F32)
s_cvt_u32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_U32_F32)
s_cvt_f16_f32 = functools.partial(SOP1, SOP1Op.S_CVT_F16_F32)
s_cvt_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_F32_F16)
s_cvt_hi_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_HI_F32_F16)
s_ceil_f16 = functools.partial(SOP1, SOP1Op.S_CEIL_F16)
s_floor_f16 = functools.partial(SOP1, SOP1Op.S_FLOOR_F16)
s_trunc_f16 = functools.partial(SOP1, SOP1Op.S_TRUNC_F16)
s_rndne_f16 = functools.partial(SOP1, SOP1Op.S_RNDNE_F16)
s_add_co_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_U32)
s_sub_co_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_U32)
s_add_co_i32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_I32)
s_sub_co_i32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_I32)
s_add_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_CI_U32)
s_sub_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_CI_U32)
s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32)
s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32)
s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64)
s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32)
s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64)
s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32)
s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64)
s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32)
s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32)
s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32)
s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32)
s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32)
s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32)
s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32)
s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32)
s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32)
s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64)
s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32)
s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64)
s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32)
s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64)
s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32)
s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64)
s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32)
s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64)
s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32)
s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64)
s_and_not1_b32 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B32)
s_and_not1_b64 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B64)
s_or_not1_b32 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B32)
s_or_not1_b64 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B64)
s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32)
s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32)
s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64)
s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64)
s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32)
s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64)
s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32)
s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32)
s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32)
s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32)
s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64)
s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16)
s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16)
s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16)
s_pack_hl_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HL_B32_B16)
s_add_f32 = functools.partial(SOP2, SOP2Op.S_ADD_F32)
s_sub_f32 = functools.partial(SOP2, SOP2Op.S_SUB_F32)
s_min_num_f32 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F32)
s_max_num_f32 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F32)
s_mul_f32 = functools.partial(SOP2, SOP2Op.S_MUL_F32)
s_fmaak_f32 = functools.partial(SOP2_LIT, SOP2Op.S_FMAAK_F32)
s_fmamk_f32 = functools.partial(SOP2_LIT, SOP2Op.S_FMAMK_F32)
s_fmac_f32 = functools.partial(SOP2, SOP2Op.S_FMAC_F32)
s_cvt_pk_rtz_f16_f32 = functools.partial(SOP2, SOP2Op.S_CVT_PK_RTZ_F16_F32)
s_add_f16 = functools.partial(SOP2, SOP2Op.S_ADD_F16)
s_sub_f16 = functools.partial(SOP2, SOP2Op.S_SUB_F16)
s_min_num_f16 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F16)
s_max_num_f16 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F16)
s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16)
s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16)
s_minimum_f32 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F32)
s_maximum_f32 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F32)
s_minimum_f16 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F16)
s_maximum_f16 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F16)
s_add_nc_u64 = functools.partial(SOP2, SOP2Op.S_ADD_NC_U64)
s_sub_nc_u64 = functools.partial(SOP2, SOP2Op.S_SUB_NC_U64)
s_mul_u64 = functools.partial(SOP2, SOP2Op.S_MUL_U64)
s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32)
s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32)
s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32)
s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32)
s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32)
s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32)
s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32)
s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32)
s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32)
s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32)
s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32)
s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32)
s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32)
s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32)
s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64)
s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64)
s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64)
s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64)
s_cmp_lt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F32)
s_cmp_eq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F32)
s_cmp_le_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F32)
s_cmp_gt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F32)
s_cmp_lg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F32)
s_cmp_ge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F32)
s_cmp_o_f32 = functools.partial(SOPC, SOPCOp.S_CMP_O_F32)
s_cmp_u_f32 = functools.partial(SOPC, SOPCOp.S_CMP_U_F32)
s_cmp_nge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F32)
s_cmp_nlg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F32)
s_cmp_ngt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F32)
s_cmp_nle_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F32)
s_cmp_neq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F32)
s_cmp_nlt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F32)
s_cmp_lt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F16)
s_cmp_eq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F16)
s_cmp_le_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F16)
s_cmp_gt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F16)
s_cmp_lg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F16)
s_cmp_ge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F16)
s_cmp_o_f16 = functools.partial(SOPC, SOPCOp.S_CMP_O_F16)
s_cmp_u_f16 = functools.partial(SOPC, SOPCOp.S_CMP_U_F16)
s_cmp_nge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F16)
s_cmp_nlg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F16)
s_cmp_ngt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F16)
s_cmp_nle_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F16)
s_cmp_neq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F16)
s_cmp_nlt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F16)
s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32)
s_version = functools.partial(SOPK, SOPKOp.S_VERSION)
s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32)
s_addk_co_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_CO_I32)
s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32)
s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32)
s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32)
s_setreg_imm32_b32 = functools.partial(SOPK_LIT, SOPKOp.S_SETREG_IMM32_B32)
s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64)
s_nop = functools.partial(SOPP, SOPPOp.S_NOP)
s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL)
s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT)
s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP)
s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE)
s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU)
s_wait_alu = functools.partial(SOPP, SOPPOp.S_WAIT_ALU)
s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT)
s_wait_idle = functools.partial(SOPP, SOPPOp.S_WAIT_IDLE)
s_wait_event = functools.partial(SOPP, SOPPOp.S_WAIT_EVENT)
s_trap = functools.partial(SOPP, SOPPOp.S_TRAP)
s_round_mode = functools.partial(SOPP, SOPPOp.S_ROUND_MODE)
s_denorm_mode = functools.partial(SOPP, SOPPOp.S_DENORM_MODE)
s_barrier_wait = functools.partial(SOPP, SOPPOp.S_BARRIER_WAIT)
s_barrier_leave = functools.partial(SOPP, SOPPOp.S_BARRIER_LEAVE)
s_code_end = functools.partial(SOPP, SOPPOp.S_CODE_END)
s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH)
s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0)
s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1)
s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ)
s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ)
s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ)
s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ)
s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM)
s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED)
s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP)
s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO)
s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG)
s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT)
s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL)
s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL)
s_ttracedata = functools.partial(SOPP, SOPPOp.S_TTRACEDATA)
s_ttracedata_imm = functools.partial(SOPP, SOPPOp.S_TTRACEDATA_IMM)
s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV)
s_wait_loadcnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT)
s_wait_storecnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT)
s_wait_samplecnt = functools.partial(SOPP, SOPPOp.S_WAIT_SAMPLECNT)
s_wait_bvhcnt = functools.partial(SOPP, SOPPOp.S_WAIT_BVHCNT)
s_wait_expcnt = functools.partial(SOPP, SOPPOp.S_WAIT_EXPCNT)
s_wait_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_DSCNT)
s_wait_kmcnt = functools.partial(SOPP, SOPPOp.S_WAIT_KMCNT)
s_wait_loadcnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT_DSCNT)
s_wait_storecnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT_DSCNT)
buffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_X)
buffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XY)
buffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZ)
buffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZW)
buffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_X)
buffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XY)
buffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZ)
buffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZW)
buffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_X)
buffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XY)
buffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZ)
buffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZW)
buffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_X)
buffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XY)
buffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZ)
buffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZW)
buffer_load_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U8)
buffer_load_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I8)
buffer_load_u16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U16)
buffer_load_i16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I16)
buffer_load_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B32)
buffer_load_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B64)
buffer_load_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B96)
buffer_load_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B128)
buffer_store_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B8)
buffer_store_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B16)
buffer_store_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B32)
buffer_store_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B64)
buffer_store_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B96)
buffer_store_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B128)
buffer_load_d16_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_U8)
buffer_load_d16_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_I8)
buffer_load_d16_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_B16)
buffer_load_d16_hi_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_U8)
buffer_load_d16_hi_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_I8)
buffer_load_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_B16)
buffer_store_d16_hi_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B8)
buffer_store_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B16)
buffer_load_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_FORMAT_X)
buffer_store_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_FORMAT_X)
buffer_atomic_swap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B32)
buffer_atomic_cmpswap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B32)
buffer_atomic_add_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U32)
buffer_atomic_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U32)
buffer_atomic_sub_clamp_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_CLAMP_U32)
buffer_atomic_min_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I32)
buffer_atomic_min_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U32)
buffer_atomic_max_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I32)
buffer_atomic_max_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U32)
buffer_atomic_and_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B32)
buffer_atomic_or_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B32)
buffer_atomic_xor_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B32)
buffer_atomic_inc_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U32)
buffer_atomic_dec_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U32)
buffer_atomic_swap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B64)
buffer_atomic_cmpswap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B64)
buffer_atomic_add_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U64)
buffer_atomic_sub_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U64)
buffer_atomic_min_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I64)
buffer_atomic_min_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U64)
buffer_atomic_max_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I64)
buffer_atomic_max_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U64)
buffer_atomic_and_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B64)
buffer_atomic_or_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B64)
buffer_atomic_xor_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B64)
buffer_atomic_inc_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U64)
buffer_atomic_dec_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U64)
buffer_atomic_cond_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_COND_SUB_U32)
buffer_atomic_min_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_NUM_F32)
buffer_atomic_max_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_NUM_F32)
buffer_atomic_add_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_F32)
buffer_atomic_pk_add_f16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_F16)
buffer_atomic_pk_add_bf16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_BF16)
tbuffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_X)
tbuffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XY)
tbuffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZ)
tbuffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZW)
tbuffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_X)
tbuffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XY)
tbuffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZ)
tbuffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZW)
tbuffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_X)
tbuffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XY)
tbuffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZ)
tbuffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZW)
tbuffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_X)
tbuffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XY)
tbuffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZ)
tbuffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZW)
ds_param_load = functools.partial(VDSDIR, VDSDIROp.DS_PARAM_LOAD)
ds_direct_load = functools.partial(VDSDIR, VDSDIROp.DS_DIRECT_LOAD)
export = functools.partial(VEXPORT, VEXPORTOp.EXPORT)
flat_load_u8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_U8)
flat_load_i8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_I8)
flat_load_u16 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_U16)
flat_load_i16 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_I16)
flat_load_b32 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_B32)
flat_load_b64 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_B64)
flat_load_b96 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_B96)
flat_load_b128 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_B128)
flat_store_b8 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B8)
flat_store_b16 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B16)
flat_store_b32 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B32)
flat_store_b64 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B64)
flat_store_b96 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B96)
flat_store_b128 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_B128)
flat_load_d16_u8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_U8)
flat_load_d16_i8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_I8)
flat_load_d16_b16 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_B16)
flat_load_d16_hi_u8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_HI_U8)
flat_load_d16_hi_i8 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_HI_I8)
flat_load_d16_hi_b16 = functools.partial(VFLAT, VFLATOp.FLAT_LOAD_D16_HI_B16)
flat_store_d16_hi_b8 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_D16_HI_B8)
flat_store_d16_hi_b16 = functools.partial(VFLAT, VFLATOp.FLAT_STORE_D16_HI_B16)
flat_atomic_swap_b32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_SWAP_B32)
flat_atomic_cmpswap_b32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_CMPSWAP_B32)
flat_atomic_add_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_ADD_U32)
flat_atomic_sub_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_SUB_U32)
flat_atomic_sub_clamp_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_SUB_CLAMP_U32)
flat_atomic_min_i32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MIN_I32)
flat_atomic_min_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MIN_U32)
flat_atomic_max_i32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MAX_I32)
flat_atomic_max_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MAX_U32)
flat_atomic_and_b32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_AND_B32)
flat_atomic_or_b32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_OR_B32)
flat_atomic_xor_b32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_XOR_B32)
flat_atomic_inc_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_INC_U32)
flat_atomic_dec_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_DEC_U32)
flat_atomic_swap_b64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_SWAP_B64)
flat_atomic_cmpswap_b64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_CMPSWAP_B64)
flat_atomic_add_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_ADD_U64)
flat_atomic_sub_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_SUB_U64)
flat_atomic_min_i64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MIN_I64)
flat_atomic_min_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MIN_U64)
flat_atomic_max_i64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MAX_I64)
flat_atomic_max_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MAX_U64)
flat_atomic_and_b64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_AND_B64)
flat_atomic_or_b64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_OR_B64)
flat_atomic_xor_b64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_XOR_B64)
flat_atomic_inc_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_INC_U64)
flat_atomic_dec_u64 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_DEC_U64)
flat_atomic_cond_sub_u32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_COND_SUB_U32)
flat_atomic_min_num_f32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MIN_NUM_F32)
flat_atomic_max_num_f32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_MAX_NUM_F32)
flat_atomic_add_f32 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_ADD_F32)
flat_atomic_pk_add_f16 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_PK_ADD_F16)
flat_atomic_pk_add_bf16 = functools.partial(VFLAT, VFLATOp.FLAT_ATOMIC_PK_ADD_BF16)
global_load_u8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_U8)
global_load_i8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_I8)
global_load_u16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_U16)
global_load_i16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_I16)
global_load_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_B32)
global_load_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_B64)
global_load_b96 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_B96)
global_load_b128 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_B128)
global_store_b8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B8)
global_store_b16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B16)
global_store_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B32)
global_store_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B64)
global_store_b96 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B96)
global_store_b128 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_B128)
global_load_d16_u8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_U8)
global_load_d16_i8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_I8)
global_load_d16_b16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_B16)
global_load_d16_hi_u8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_HI_U8)
global_load_d16_hi_i8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_HI_I8)
global_load_d16_hi_b16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_D16_HI_B16)
global_store_d16_hi_b8 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_D16_HI_B8)
global_store_d16_hi_b16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_D16_HI_B16)
global_load_addtid_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_ADDTID_B32)
global_store_addtid_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_ADDTID_B32)
global_inv = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_INV)
global_wb = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_WB)
global_atomic_swap_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_SWAP_B32)
global_atomic_cmpswap_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32)
global_atomic_add_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_ADD_U32)
global_atomic_sub_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_SUB_U32)
global_atomic_sub_clamp_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_SUB_CLAMP_U32)
global_atomic_min_i32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MIN_I32)
global_atomic_min_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MIN_U32)
global_atomic_max_i32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MAX_I32)
global_atomic_max_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MAX_U32)
global_atomic_and_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_AND_B32)
global_atomic_or_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_OR_B32)
global_atomic_xor_b32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_XOR_B32)
global_atomic_inc_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_INC_U32)
global_atomic_dec_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_DEC_U32)
global_atomic_swap_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_SWAP_B64)
global_atomic_cmpswap_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64)
global_atomic_add_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_ADD_U64)
global_atomic_sub_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_SUB_U64)
global_atomic_min_i64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MIN_I64)
global_atomic_min_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MIN_U64)
global_atomic_max_i64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MAX_I64)
global_atomic_max_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MAX_U64)
global_atomic_and_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_AND_B64)
global_atomic_or_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_OR_B64)
global_atomic_xor_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_XOR_B64)
global_atomic_inc_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_INC_U64)
global_atomic_dec_u64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_DEC_U64)
global_wbinv = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_WBINV)
global_atomic_cond_sub_u32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_COND_SUB_U32)
global_atomic_min_num_f32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MIN_NUM_F32)
global_atomic_max_num_f32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_MAX_NUM_F32)
global_load_block = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_BLOCK)
global_store_block = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_STORE_BLOCK)
global_atomic_add_f32 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_ADD_F32)
global_load_tr_b128 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_TR_B128)
global_load_tr_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_LOAD_TR_B64)
global_atomic_pk_add_f16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_F16)
global_atomic_pk_add_bf16 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_BF16)
global_atomic_ordered_add_b64 = functools.partial(VGLOBAL, VGLOBALOp.GLOBAL_ATOMIC_ORDERED_ADD_B64)
image_load = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD)
image_load_mip = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD_MIP)
image_load_pck = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD_PCK)
image_load_pck_sgn = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD_PCK_SGN)
image_load_mip_pck = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD_MIP_PCK)
image_load_mip_pck_sgn = functools.partial(VIMAGE, VIMAGEOp.IMAGE_LOAD_MIP_PCK_SGN)
image_store = functools.partial(VIMAGE, VIMAGEOp.IMAGE_STORE)
image_store_mip = functools.partial(VIMAGE, VIMAGEOp.IMAGE_STORE_MIP)
image_store_pck = functools.partial(VIMAGE, VIMAGEOp.IMAGE_STORE_PCK)
image_store_mip_pck = functools.partial(VIMAGE, VIMAGEOp.IMAGE_STORE_MIP_PCK)
image_atomic_swap = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_SWAP)
image_atomic_cmpswap = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_CMPSWAP)
image_atomic_add_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_ADD_UINT)
image_atomic_sub_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_SUB_UINT)
image_atomic_min_int = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MIN_INT)
image_atomic_min_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MIN_UINT)
image_atomic_max_int = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MAX_INT)
image_atomic_max_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MAX_UINT)
image_atomic_and = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_AND)
image_atomic_or = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_OR)
image_atomic_xor = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_XOR)
image_atomic_inc_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_INC_UINT)
image_atomic_dec_uint = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_DEC_UINT)
image_get_resinfo = functools.partial(VIMAGE, VIMAGEOp.IMAGE_GET_RESINFO)
image_bvh_intersect_ray = functools.partial(VIMAGE, VIMAGEOp.IMAGE_BVH_INTERSECT_RAY)
image_bvh64_intersect_ray = functools.partial(VIMAGE, VIMAGEOp.IMAGE_BVH64_INTERSECT_RAY)
image_bvh_dual_intersect_ray = functools.partial(VIMAGE, VIMAGEOp.IMAGE_BVH_DUAL_INTERSECT_RAY)
image_bvh8_intersect_ray = functools.partial(VIMAGE, VIMAGEOp.IMAGE_BVH8_INTERSECT_RAY)
image_atomic_add_flt = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_ADD_FLT)
image_atomic_min_flt = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MIN_FLT)
image_atomic_max_flt = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_MAX_FLT)
image_atomic_pk_add_f16 = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_PK_ADD_F16)
image_atomic_pk_add_bf16 = functools.partial(VIMAGE, VIMAGEOp.IMAGE_ATOMIC_PK_ADD_BF16)
v_interp_p10_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F32)
v_interp_p2_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F32)
v_interp_p10_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F16_F32)
v_interp_p2_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F16_F32)
v_interp_p10_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_RTZ_F16_F32)
v_interp_p2_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_RTZ_F16_F32)
v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP_E32)
v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32_E32)
v_readfirstlane_b32_e32 = functools.partial(VOP1_SDST, VOP1Op.V_READFIRSTLANE_B32_E32)
v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64_E32)
v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32_E32)
v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32_E32)
v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32_E32)
v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32_E32)
v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32_E32)
v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32_E32)
v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16_E32)
v_cvt_nearest_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NEAREST_I32_F32_E32)
v_cvt_floor_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLOOR_I32_F32_E32)
v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4_E32)
v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64_E32)
v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32_E32)
v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0_E32)
v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1_E32)
v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2_E32)
v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3_E32)
v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64_E32)
v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32_E32)
v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64_E32)
v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64_E32)
v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64_E32)
v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64_E32)
v_pipeflush_e32 = functools.partial(VOP1, VOP1Op.V_PIPEFLUSH_E32)
v_mov_b16_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B16_E32)
v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32_E32)
v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32_E32)
v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32_E32)
v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32_E32)
v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32_E32)
v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32_E32)
v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32_E32)
v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32_E32)
v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32_E32)
v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32_E32)
v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64_E32)
v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64_E32)
v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32_E32)
v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64_E32)
v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32_E32)
v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32_E32)
v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32_E32)
v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32_E32)
v_clz_i32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CLZ_I32_U32_E32)
v_ctz_i32_b32_e32 = functools.partial(VOP1, VOP1Op.V_CTZ_I32_B32_E32)
v_cls_i32_e32 = functools.partial(VOP1, VOP1Op.V_CLS_I32_E32)
v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64_E32)
v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64_E32)
v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64_E32)
v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32_E32)
v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32_E32)
v_movreld_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELD_B32_E32)
v_movrels_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELS_B32_E32)
v_movrelsd_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_B32_E32)
v_movrelsd_2_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_2_B32_E32)
v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16_E32)
v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16_E32)
v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16_E32)
v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16_E32)
v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16_E32)
v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16_E32)
v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16_E32)
v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16_E32)
v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16_E32)
v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16_E32)
v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16_E32)
v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16_E32)
v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16_E32)
v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16_E32)
v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16_E32)
v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16_E32)
v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16_E32)
v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16_E32)
v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16_E32)
v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16_E32)
v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16_E32)
v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32_E32)
v_swap_b16_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B16_E32)
v_permlane64_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE64_B32_E32)
v_swaprel_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAPREL_B32_E32)
v_not_b16_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B16_E32)
v_cvt_i32_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_I16_E32)
v_cvt_u32_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_U16_E32)
v_cvt_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_FP8_E32)
v_cvt_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF8_E32)
v_cvt_pk_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_FP8_E32)
v_cvt_pk_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_BF8_E32)
v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32_E32)
v_add_f64_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F64_E32)
v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32_E32)
v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32_E32)
v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32_E32)
v_mul_f64_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F64_E32)
v_mul_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_DX9_ZERO_F32_E32)
v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32_E32)
v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24_E32)
v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24_E32)
v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24_E32)
v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24_E32)
v_min_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F64_E32)
v_max_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F64_E32)
v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32_E32)
v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32_E32)
v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32_E32)
v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32_E32)
v_min_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F32_E32)
v_max_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F32_E32)
v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32_E32)
v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32_E32)
v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32_E32)
v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32_E32)
v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32_E32)
v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32_E32)
v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32_E32)
v_lshlrev_b64_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B64_E32)
v_add_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_CI_U32_E32)
v_sub_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_CI_U32_E32)
v_subrev_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_CI_U32_E32)
v_add_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_NC_U32_E32)
v_sub_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_NC_U32_E32)
v_subrev_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_NC_U32_E32)
v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32_E32)
v_fmamk_f32_e32 = functools.partial(VOP2_LIT, VOP2Op.V_FMAMK_F32_E32)
v_fmaak_f32_e32 = functools.partial(VOP2_LIT, VOP2Op.V_FMAAK_F32_E32)
v_cvt_pk_rtz_f16_f32_e32 = functools.partial(VOP2, VOP2Op.V_CVT_PK_RTZ_F16_F32_E32)
v_min_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F16_E32)
v_max_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F16_E32)
v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16_E32)
v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16_E32)
v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16_E32)
v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16_E32)
v_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F16_E32)
v_fmamk_f16_e32 = functools.partial(VOP2_LIT, VOP2Op.V_FMAMK_F16_E32)
v_fmaak_f16_e32 = functools.partial(VOP2_LIT, VOP2Op.V_FMAAK_F16_E32)
v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16_E32)
v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16_E32)
v_cmp_lt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_F16_E64)
v_cmp_eq_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_F16_E64)
v_cmp_le_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_F16_E64)
v_cmp_gt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_F16_E64)
v_cmp_lg_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LG_F16_E64)
v_cmp_ge_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_F16_E64)
v_cmp_o_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_O_F16_E64)
v_cmp_u_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_U_F16_E64)
v_cmp_nge_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGE_F16_E64)
v_cmp_nlg_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLG_F16_E64)
v_cmp_ngt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGT_F16_E64)
v_cmp_nle_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLE_F16_E64)
v_cmp_neq_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NEQ_F16_E64)
v_cmp_nlt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLT_F16_E64)
v_cmp_lt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_F32_E64)
v_cmp_eq_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_F32_E64)
v_cmp_le_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_F32_E64)
v_cmp_gt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_F32_E64)
v_cmp_lg_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LG_F32_E64)
v_cmp_ge_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_F32_E64)
v_cmp_o_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_O_F32_E64)
v_cmp_u_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_U_F32_E64)
v_cmp_nge_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGE_F32_E64)
v_cmp_nlg_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLG_F32_E64)
v_cmp_ngt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGT_F32_E64)
v_cmp_nle_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLE_F32_E64)
v_cmp_neq_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NEQ_F32_E64)
v_cmp_nlt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLT_F32_E64)
v_cmp_lt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_F64_E64)
v_cmp_eq_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_F64_E64)
v_cmp_le_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_F64_E64)
v_cmp_gt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_F64_E64)
v_cmp_lg_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LG_F64_E64)
v_cmp_ge_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_F64_E64)
v_cmp_o_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_O_F64_E64)
v_cmp_u_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_U_F64_E64)
v_cmp_nge_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGE_F64_E64)
v_cmp_nlg_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLG_F64_E64)
v_cmp_ngt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NGT_F64_E64)
v_cmp_nle_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLE_F64_E64)
v_cmp_neq_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NEQ_F64_E64)
v_cmp_nlt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NLT_F64_E64)
v_cmp_lt_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_I16_E64)
v_cmp_eq_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_I16_E64)
v_cmp_le_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_I16_E64)
v_cmp_gt_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_I16_E64)
v_cmp_ne_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_I16_E64)
v_cmp_ge_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_I16_E64)
v_cmp_lt_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_U16_E64)
v_cmp_eq_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_U16_E64)
v_cmp_le_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_U16_E64)
v_cmp_gt_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_U16_E64)
v_cmp_ne_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_U16_E64)
v_cmp_ge_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_U16_E64)
v_cmp_lt_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_I32_E64)
v_cmp_eq_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_I32_E64)
v_cmp_le_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_I32_E64)
v_cmp_gt_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_I32_E64)
v_cmp_ne_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_I32_E64)
v_cmp_ge_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_I32_E64)
v_cmp_lt_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_U32_E64)
v_cmp_eq_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_U32_E64)
v_cmp_le_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_U32_E64)
v_cmp_gt_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_U32_E64)
v_cmp_ne_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_U32_E64)
v_cmp_ge_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_U32_E64)
v_cmp_lt_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_I64_E64)
v_cmp_eq_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_I64_E64)
v_cmp_le_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_I64_E64)
v_cmp_gt_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_I64_E64)
v_cmp_ne_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_I64_E64)
v_cmp_ge_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_I64_E64)
v_cmp_lt_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LT_U64_E64)
v_cmp_eq_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_EQ_U64_E64)
v_cmp_le_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_LE_U64_E64)
v_cmp_gt_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GT_U64_E64)
v_cmp_ne_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_NE_U64_E64)
v_cmp_ge_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_GE_U64_E64)
v_cmp_class_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_CLASS_F16_E64)
v_cmp_class_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_CLASS_F32_E64)
v_cmp_class_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_CLASS_F64_E64)
v_cmpx_lt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_F16_E64)
v_cmpx_eq_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_F16_E64)
v_cmpx_le_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_F16_E64)
v_cmpx_gt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_F16_E64)
v_cmpx_lg_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LG_F16_E64)
v_cmpx_ge_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_F16_E64)
v_cmpx_o_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_O_F16_E64)
v_cmpx_u_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_U_F16_E64)
v_cmpx_nge_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGE_F16_E64)
v_cmpx_nlg_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLG_F16_E64)
v_cmpx_ngt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGT_F16_E64)
v_cmpx_nle_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLE_F16_E64)
v_cmpx_neq_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NEQ_F16_E64)
v_cmpx_nlt_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLT_F16_E64)
v_cmpx_lt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_F32_E64)
v_cmpx_eq_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_F32_E64)
v_cmpx_le_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_F32_E64)
v_cmpx_gt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_F32_E64)
v_cmpx_lg_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LG_F32_E64)
v_cmpx_ge_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_F32_E64)
v_cmpx_o_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_O_F32_E64)
v_cmpx_u_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_U_F32_E64)
v_cmpx_nge_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGE_F32_E64)
v_cmpx_nlg_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLG_F32_E64)
v_cmpx_ngt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGT_F32_E64)
v_cmpx_nle_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLE_F32_E64)
v_cmpx_neq_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NEQ_F32_E64)
v_cmpx_nlt_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLT_F32_E64)
v_cmpx_lt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_F64_E64)
v_cmpx_eq_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_F64_E64)
v_cmpx_le_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_F64_E64)
v_cmpx_gt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_F64_E64)
v_cmpx_lg_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LG_F64_E64)
v_cmpx_ge_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_F64_E64)
v_cmpx_o_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_O_F64_E64)
v_cmpx_u_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_U_F64_E64)
v_cmpx_nge_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGE_F64_E64)
v_cmpx_nlg_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLG_F64_E64)
v_cmpx_ngt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NGT_F64_E64)
v_cmpx_nle_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLE_F64_E64)
v_cmpx_neq_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NEQ_F64_E64)
v_cmpx_nlt_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NLT_F64_E64)
v_cmpx_lt_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_I16_E64)
v_cmpx_eq_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_I16_E64)
v_cmpx_le_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_I16_E64)
v_cmpx_gt_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_I16_E64)
v_cmpx_ne_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_I16_E64)
v_cmpx_ge_i16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_I16_E64)
v_cmpx_lt_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_U16_E64)
v_cmpx_eq_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_U16_E64)
v_cmpx_le_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_U16_E64)
v_cmpx_gt_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_U16_E64)
v_cmpx_ne_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_U16_E64)
v_cmpx_ge_u16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_U16_E64)
v_cmpx_lt_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_I32_E64)
v_cmpx_eq_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_I32_E64)
v_cmpx_le_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_I32_E64)
v_cmpx_gt_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_I32_E64)
v_cmpx_ne_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_I32_E64)
v_cmpx_ge_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_I32_E64)
v_cmpx_lt_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_U32_E64)
v_cmpx_eq_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_U32_E64)
v_cmpx_le_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_U32_E64)
v_cmpx_gt_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_U32_E64)
v_cmpx_ne_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_U32_E64)
v_cmpx_ge_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_U32_E64)
v_cmpx_lt_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_I64_E64)
v_cmpx_eq_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_I64_E64)
v_cmpx_le_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_I64_E64)
v_cmpx_gt_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_I64_E64)
v_cmpx_ne_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_I64_E64)
v_cmpx_ge_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_I64_E64)
v_cmpx_lt_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LT_U64_E64)
v_cmpx_eq_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_EQ_U64_E64)
v_cmpx_le_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_LE_U64_E64)
v_cmpx_gt_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GT_U64_E64)
v_cmpx_ne_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_NE_U64_E64)
v_cmpx_ge_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_GE_U64_E64)
v_cmpx_class_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_CLASS_F16_E64)
v_cmpx_class_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_CLASS_F32_E64)
v_cmpx_class_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_CLASS_F64_E64)
v_cndmask_b32_e64 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B32_E64)
v_add_f64_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F64_E64)
v_add_f32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F32_E64)
v_sub_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F32_E64)
v_subrev_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F32_E64)
v_mul_f64_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F64_E64)
v_mul_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_DX9_ZERO_F32_E64)
v_mul_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F32_E64)
v_mul_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_I32_I24_E64)
v_mul_hi_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32_I24_E64)
v_mul_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_U32_U24_E64)
v_mul_hi_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32_U24_E64)
v_min_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F64_E64)
v_max_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F64_E64)
v_min_i32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_I32_E64)
v_max_i32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_I32_E64)
v_min_u32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_U32_E64)
v_max_u32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_U32_E64)
v_min_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F32_E64)
v_max_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F32_E64)
v_lshlrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B32_E64)
v_lshrrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B32_E64)
v_ashrrev_i32_e64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I32_E64)
v_and_b32_e64 = functools.partial(VOP3, VOP3Op.V_AND_B32_E64)
v_or_b32_e64 = functools.partial(VOP3, VOP3Op.V_OR_B32_E64)
v_xor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XOR_B32_E64)
v_xnor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XNOR_B32_E64)
v_lshlrev_b64_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64_E64)
v_add_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U32_E64)
v_sub_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U32_E64)
v_subrev_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_NC_U32_E64)
v_fmac_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F32_E64)
v_cvt_pk_rtz_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_RTZ_F16_F32_E64)
v_min_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F16_E64)
v_max_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F16_E64)
v_add_f16_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F16_E64)
v_sub_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F16_E64)
v_subrev_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F16_E64)
v_mul_f16_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F16_E64)
v_fmac_f16_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F16_E64)
v_ldexp_f16_e64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F16_E64)
v_nop_e64 = functools.partial(VOP3, VOP3Op.V_NOP_E64)
v_mov_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B32_E64)
v_readfirstlane_b32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_READFIRSTLANE_B32_E64)
v_cvt_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F64_E64)
v_cvt_f64_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_I32_E64)
v_cvt_f32_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_I32_E64)
v_cvt_f32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_U32_E64)
v_cvt_u32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F32_E64)
v_cvt_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F32_E64)
v_cvt_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_F32_E64)
v_cvt_f32_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F16_E64)
v_cvt_nearest_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NEAREST_I32_F32_E64)
v_cvt_floor_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_FLOOR_I32_F32_E64)
v_cvt_off_f32_i4_e64 = functools.partial(VOP3, VOP3Op.V_CVT_OFF_F32_I4_E64)
v_cvt_f32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F64_E64)
v_cvt_f64_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_F32_E64)
v_cvt_f32_ubyte0_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE0_E64)
v_cvt_f32_ubyte1_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE1_E64)
v_cvt_f32_ubyte2_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE2_E64)
v_cvt_f32_ubyte3_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE3_E64)
v_cvt_u32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F64_E64)
v_cvt_f64_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_U32_E64)
v_trunc_f64_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F64_E64)
v_ceil_f64_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F64_E64)
v_rndne_f64_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F64_E64)
v_floor_f64_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F64_E64)
v_pipeflush_e64 = functools.partial(VOP3, VOP3Op.V_PIPEFLUSH_E64)
v_mov_b16_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B16_E64)
v_fract_f32_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F32_E64)
v_trunc_f32_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F32_E64)
v_ceil_f32_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F32_E64)
v_rndne_f32_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F32_E64)
v_floor_f32_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F32_E64)
v_exp_f32_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F32_E64)
v_log_f32_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F32_E64)
v_rcp_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F32_E64)
v_rcp_iflag_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_IFLAG_F32_E64)
v_rsq_f32_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F32_E64)
v_rcp_f64_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F64_E64)
v_rsq_f64_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F64_E64)
v_sqrt_f32_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F32_E64)
v_sqrt_f64_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F64_E64)
v_sin_f32_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F32_E64)
v_cos_f32_e64 = functools.partial(VOP3, VOP3Op.V_COS_F32_E64)
v_not_b32_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B32_E64)
v_bfrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_BFREV_B32_E64)
v_clz_i32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CLZ_I32_U32_E64)
v_ctz_i32_b32_e64 = functools.partial(VOP3, VOP3Op.V_CTZ_I32_B32_E64)
v_cls_i32_e64 = functools.partial(VOP3, VOP3Op.V_CLS_I32_E64)
v_frexp_exp_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F64_E64)
v_frexp_mant_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F64_E64)
v_fract_f64_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F64_E64)
v_frexp_exp_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F32_E64)
v_frexp_mant_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F32_E64)
v_movreld_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELD_B32_E64)
v_movrels_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELS_B32_E64)
v_movrelsd_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_B32_E64)
v_movrelsd_2_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_2_B32_E64)
v_cvt_f16_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_U16_E64)
v_cvt_f16_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_I16_E64)
v_cvt_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U16_F16_E64)
v_cvt_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I16_F16_E64)
v_rcp_f16_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F16_E64)
v_sqrt_f16_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F16_E64)
v_rsq_f16_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F16_E64)
v_log_f16_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F16_E64)
v_exp_f16_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F16_E64)
v_frexp_mant_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F16_E64)
v_frexp_exp_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I16_F16_E64)
v_floor_f16_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F16_E64)
v_ceil_f16_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F16_E64)
v_trunc_f16_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F16_E64)
v_rndne_f16_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F16_E64)
v_fract_f16_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F16_E64)
v_sin_f16_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F16_E64)
v_cos_f16_e64 = functools.partial(VOP3, VOP3Op.V_COS_F16_E64)
v_sat_pk_u8_i16_e64 = functools.partial(VOP3, VOP3Op.V_SAT_PK_U8_I16_E64)
v_cvt_norm_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_I16_F16_E64)
v_cvt_norm_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_U16_F16_E64)
v_not_b16_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B16_E64)
v_cvt_i32_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_I16_E64)
v_cvt_u32_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_U16_E64)
v_cvt_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_FP8_E64)
v_cvt_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_BF8_E64)
v_cvt_pk_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_FP8_E64)
v_cvt_pk_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_BF8_E64)
v_fma_dx9_zero_f32 = functools.partial(VOP3, VOP3Op.V_FMA_DX9_ZERO_F32)
v_mad_i32_i24 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I24)
v_mad_u32_u24 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U24)
v_cubeid_f32 = functools.partial(VOP3, VOP3Op.V_CUBEID_F32)
v_cubesc_f32 = functools.partial(VOP3, VOP3Op.V_CUBESC_F32)
v_cubetc_f32 = functools.partial(VOP3, VOP3Op.V_CUBETC_F32)
v_cubema_f32 = functools.partial(VOP3, VOP3Op.V_CUBEMA_F32)
v_bfe_u32 = functools.partial(VOP3, VOP3Op.V_BFE_U32)
v_bfe_i32 = functools.partial(VOP3, VOP3Op.V_BFE_I32)
v_bfi_b32 = functools.partial(VOP3, VOP3Op.V_BFI_B32)
v_fma_f32 = functools.partial(VOP3, VOP3Op.V_FMA_F32)
v_fma_f64 = functools.partial(VOP3, VOP3Op.V_FMA_F64)
v_lerp_u8 = functools.partial(VOP3, VOP3Op.V_LERP_U8)
v_alignbit_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBIT_B32)
v_alignbyte_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBYTE_B32)
v_mullit_f32 = functools.partial(VOP3, VOP3Op.V_MULLIT_F32)
v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32)
v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32)
v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32)
v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32)
v_med3_i32 = functools.partial(VOP3, VOP3Op.V_MED3_I32)
v_med3_u32 = functools.partial(VOP3, VOP3Op.V_MED3_U32)
v_sad_u8 = functools.partial(VOP3, VOP3Op.V_SAD_U8)
v_sad_hi_u8 = functools.partial(VOP3, VOP3Op.V_SAD_HI_U8)
v_sad_u16 = functools.partial(VOP3, VOP3Op.V_SAD_U16)
v_sad_u32 = functools.partial(VOP3, VOP3Op.V_SAD_U32)
v_cvt_pk_u8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U8_F32)
v_div_fixup_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F32)
v_div_fixup_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F64)
v_min3_num_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F32)
v_max3_num_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F32)
v_min3_num_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F16)
v_max3_num_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F16)
v_minimum3_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F32)
v_maximum3_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F32)
v_minimum3_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F16)
v_maximum3_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F16)
v_med3_num_f32 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F32)
v_med3_num_f16 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F16)
v_div_fmas_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F32)
v_div_fmas_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F64)
v_msad_u8 = functools.partial(VOP3, VOP3Op.V_MSAD_U8)
v_qsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_QSAD_PK_U16_U8)
v_mqsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_PK_U16_U8)
v_mqsad_u32_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_U32_U8)
v_xor3_b32 = functools.partial(VOP3, VOP3Op.V_XOR3_B32)
v_mad_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U16)
v_perm_b32 = functools.partial(VOP3, VOP3Op.V_PERM_B32)
v_xad_u32 = functools.partial(VOP3, VOP3Op.V_XAD_U32)
v_lshl_add_u32 = functools.partial(VOP3, VOP3Op.V_LSHL_ADD_U32)
v_add_lshl_u32 = functools.partial(VOP3, VOP3Op.V_ADD_LSHL_U32)
v_fma_f16 = functools.partial(VOP3, VOP3Op.V_FMA_F16)
v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16)
v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16)
v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16)
v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16)
v_med3_i16 = functools.partial(VOP3, VOP3Op.V_MED3_I16)
v_med3_u16 = functools.partial(VOP3, VOP3Op.V_MED3_U16)
v_mad_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I16)
v_div_fixup_f16 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F16)
v_add3_u32 = functools.partial(VOP3, VOP3Op.V_ADD3_U32)
v_lshl_or_b32 = functools.partial(VOP3, VOP3Op.V_LSHL_OR_B32)
v_and_or_b32 = functools.partial(VOP3, VOP3Op.V_AND_OR_B32)
v_or3_b32 = functools.partial(VOP3, VOP3Op.V_OR3_B32)
v_mad_u32_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U16)
v_mad_i32_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I16)
v_permlane16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_B32)
v_permlanex16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_B32)
v_cndmask_b16 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B16)
v_maxmin_u32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_U32)
v_minmax_u32 = functools.partial(VOP3, VOP3Op.V_MINMAX_U32)
v_maxmin_i32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_I32)
v_minmax_i32 = functools.partial(VOP3, VOP3Op.V_MINMAX_I32)
v_dot2_f16_f16 = functools.partial(VOP3, VOP3Op.V_DOT2_F16_F16)
v_dot2_bf16_bf16 = functools.partial(VOP3, VOP3Op.V_DOT2_BF16_BF16)
v_minmax_num_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F32)
v_maxmin_num_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F32)
v_minmax_num_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F16)
v_maxmin_num_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F16)
v_minimummaximum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F32)
v_maximumminimum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F32)
v_minimummaximum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F16)
v_maximumminimum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F16)
v_s_exp_f32 = functools.partial(VOP3_SDST, VOP3Op.V_S_EXP_F32)
v_s_exp_f16 = functools.partial(VOP3_SDST, VOP3Op.V_S_EXP_F16)
v_s_log_f32 = functools.partial(VOP3_SDST, VOP3Op.V_S_LOG_F32)
v_s_log_f16 = functools.partial(VOP3_SDST, VOP3Op.V_S_LOG_F16)
v_s_rcp_f32 = functools.partial(VOP3_SDST, VOP3Op.V_S_RCP_F32)
v_s_rcp_f16 = functools.partial(VOP3_SDST, VOP3Op.V_S_RCP_F16)
v_s_rsq_f32 = functools.partial(VOP3_SDST, VOP3Op.V_S_RSQ_F32)
v_s_rsq_f16 = functools.partial(VOP3_SDST, VOP3Op.V_S_RSQ_F16)
v_s_sqrt_f32 = functools.partial(VOP3_SDST, VOP3Op.V_S_SQRT_F32)
v_s_sqrt_f16 = functools.partial(VOP3_SDST, VOP3Op.V_S_SQRT_F16)
v_add_nc_u16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U16)
v_sub_nc_u16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U16)
v_mul_lo_u16 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U16)
v_cvt_pk_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_F32)
v_cvt_pk_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_F32)
v_max_u16 = functools.partial(VOP3, VOP3Op.V_MAX_U16)
v_max_i16 = functools.partial(VOP3, VOP3Op.V_MAX_I16)
v_min_u16 = functools.partial(VOP3, VOP3Op.V_MIN_U16)
v_min_i16 = functools.partial(VOP3, VOP3Op.V_MIN_I16)
v_add_nc_i16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I16)
v_sub_nc_i16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I16)
v_permlane16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_VAR_B32)
v_permlanex16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_VAR_B32)
v_pack_b32_f16 = functools.partial(VOP3, VOP3Op.V_PACK_B32_F16)
v_cvt_pk_norm_i16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F16)
v_cvt_pk_norm_u16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F16)
v_ldexp_f32 = functools.partial(VOP3, VOP3Op.V_LDEXP_F32)
v_bfm_b32 = functools.partial(VOP3, VOP3Op.V_BFM_B32)
v_bcnt_u32_b32 = functools.partial(VOP3, VOP3Op.V_BCNT_U32_B32)
v_mbcnt_lo_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_LO_U32_B32)
v_mbcnt_hi_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_HI_U32_B32)
v_cvt_pk_norm_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F32)
v_cvt_pk_norm_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F32)
v_cvt_pk_u16_u32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_U32)
v_cvt_pk_i16_i32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_I32)
v_sub_nc_i32 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I32)
v_add_nc_i32 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I32)
v_ldexp_f64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F64)
v_mul_lo_u32 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U32)
v_mul_hi_u32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32)
v_mul_hi_i32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32)
v_trig_preop_f64 = functools.partial(VOP3, VOP3Op.V_TRIG_PREOP_F64)
v_lshlrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B16)
v_lshrrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B16)
v_ashrrev_i16 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I16)
v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64)
v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64)
v_minimum_f64 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F64)
v_maximum_f64 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F64)
v_readlane_b32 = functools.partial(VOP3_SDST, VOP3Op.V_READLANE_B32)
v_writelane_b32 = functools.partial(VOP3, VOP3Op.V_WRITELANE_B32)
v_and_b16 = functools.partial(VOP3, VOP3Op.V_AND_B16)
v_or_b16 = functools.partial(VOP3, VOP3Op.V_OR_B16)
v_xor_b16 = functools.partial(VOP3, VOP3Op.V_XOR_B16)
v_minimum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F32)
v_maximum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F32)
v_minimum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F16)
v_maximum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F16)
v_cvt_pk_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_FP8_F32)
v_cvt_pk_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_BF8_F32)
v_cvt_sr_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_FP8_F32)
v_cvt_sr_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_BF8_F32)
v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16)
v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16)
v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16)
v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16)
v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16)
v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16)
v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16)
v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16)
v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16)
v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16)
v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16)
v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16)
v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16)
v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16)
v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16)
v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16)
v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16)
v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16)
v_dot4_i32_iu8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_IU8)
v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8)
v_dot8_i32_iu4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_IU4)
v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4)
v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16)
v_pk_min_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_NUM_F16)
v_pk_max_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_NUM_F16)
v_pk_minimum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MINIMUM_F16)
v_pk_maximum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAXIMUM_F16)
v_fma_mix_f32 = functools.partial(VOP3P, VOP3POp.V_FMA_MIX_F32)
v_fma_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXLO_F16)
v_fma_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXHI_F16)
v_dot4_f32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_BF8)
v_dot4_f32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_FP8)
v_dot4_f32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_FP8)
v_dot4_f32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_BF8)
v_wmma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_F16)
v_wmma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF16)
v_wmma_f16_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F16_16X16X16_F16)
v_wmma_bf16_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_BF16_16X16X16_BF16)
v_wmma_i32_16x16x16_iu8 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU8)
v_wmma_i32_16x16x16_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU4)
v_wmma_f32_16x16x16_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8)
v_wmma_f32_16x16x16_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8)
v_wmma_f32_16x16x16_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8)
v_wmma_f32_16x16x16_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8)
v_wmma_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X32_IU4)
v_swmmac_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_F16)
v_swmmac_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF16)
v_swmmac_f16_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F16_16X16X32_F16)
v_swmmac_bf16_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_BF16_16X16X32_BF16)
v_swmmac_i32_16x16x32_iu8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU8)
v_swmmac_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU4)
v_swmmac_i32_16x16x64_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X64_IU4)
v_swmmac_f32_16x16x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8)
v_swmmac_f32_16x16x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8)
v_swmmac_f32_16x16x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8)
v_swmmac_f32_16x16x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8)
v_add_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_CI_U32)
v_sub_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_CI_U32)
v_subrev_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_CI_U32)
v_div_scale_f32 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F32)
v_div_scale_f64 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F64)
v_mad_co_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_U64_U32)
v_mad_co_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_I64_I32)
v_add_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_U32)
v_sub_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_U32)
v_subrev_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_U32)
v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16_E32)
v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16_E32)
v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16_E32)
v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16_E32)
v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16_E32)
v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16_E32)
v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16_E32)
v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16_E32)
v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16_E32)
v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16_E32)
v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16_E32)
v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16_E32)
v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16_E32)
v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16_E32)
v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32_E32)
v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32_E32)
v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32_E32)
v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32_E32)
v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32_E32)
v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32_E32)
v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32_E32)
v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32_E32)
v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32_E32)
v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32_E32)
v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32_E32)
v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32_E32)
v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32_E32)
v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32_E32)
v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64_E32)
v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64_E32)
v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64_E32)
v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64_E32)
v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64_E32)
v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64_E32)
v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64_E32)
v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64_E32)
v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64_E32)
v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64_E32)
v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64_E32)
v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64_E32)
v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64_E32)
v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64_E32)
v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16_E32)
v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16_E32)
v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16_E32)
v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16_E32)
v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16_E32)
v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16_E32)
v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16_E32)
v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16_E32)
v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16_E32)
v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16_E32)
v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16_E32)
v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16_E32)
v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32_E32)
v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32_E32)
v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32_E32)
v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32_E32)
v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32_E32)
v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32_E32)
v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32_E32)
v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32_E32)
v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32_E32)
v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32_E32)
v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32_E32)
v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32_E32)
v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64_E32)
v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64_E32)
v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64_E32)
v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64_E32)
v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64_E32)
v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64_E32)
v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64_E32)
v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64_E32)
v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64_E32)
v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64_E32)
v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64_E32)
v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64_E32)
v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16_E32)
v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32_E32)
v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64_E32)
v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16_E32)
v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16_E32)
v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16_E32)
v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16_E32)
v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16_E32)
v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16_E32)
v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16_E32)
v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16_E32)
v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16_E32)
v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16_E32)
v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16_E32)
v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16_E32)
v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16_E32)
v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16_E32)
v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32_E32)
v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32_E32)
v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32_E32)
v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32_E32)
v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32_E32)
v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32_E32)
v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32_E32)
v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32_E32)
v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32_E32)
v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32_E32)
v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32_E32)
v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32_E32)
v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32_E32)
v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32_E32)
v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64_E32)
v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64_E32)
v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64_E32)
v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64_E32)
v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64_E32)
v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64_E32)
v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64_E32)
v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64_E32)
v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64_E32)
v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64_E32)
v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64_E32)
v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64_E32)
v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64_E32)
v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64_E32)
v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16_E32)
v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16_E32)
v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16_E32)
v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16_E32)
v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16_E32)
v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16_E32)
v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16_E32)
v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16_E32)
v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16_E32)
v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16_E32)
v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16_E32)
v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16_E32)
v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32_E32)
v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32_E32)
v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32_E32)
v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32_E32)
v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32_E32)
v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32_E32)
v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32_E32)
v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32_E32)
v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32_E32)
v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32_E32)
v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32_E32)
v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32_E32)
v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64_E32)
v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64_E32)
v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64_E32)
v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64_E32)
v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64_E32)
v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64_E32)
v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64_E32)
v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64_E32)
v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64_E32)
v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64_E32)
v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64_E32)
v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64_E32)
v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16_E32)
v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32_E32)
v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64_E32)
v_dual_fmac_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAC_F32)
v_dual_fmaak_f32 = functools.partial(VOPD_LIT, VOPDOp.V_DUAL_FMAAK_F32)
v_dual_fmamk_f32 = functools.partial(VOPD_LIT, VOPDOp.V_DUAL_FMAMK_F32)
v_dual_mul_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_F32)
v_dual_add_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_F32)
v_dual_sub_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUB_F32)
v_dual_subrev_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUBREV_F32)
v_dual_mul_dx9_zero_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_DX9_ZERO_F32)
v_dual_mov_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_MOV_B32)
v_dual_cndmask_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_CNDMASK_B32)
v_dual_max_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_NUM_F32)
v_dual_min_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_NUM_F32)
v_dual_dot2acc_f32_f16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_F16)
v_dual_dot2acc_f32_bf16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_BF16)
v_dual_add_nc_u32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_NC_U32)
v_dual_lshlrev_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_LSHLREV_B32)
v_dual_and_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_AND_B32)
image_msaa_load = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_MSAA_LOAD)
image_sample = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE)
image_sample_d = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D)
image_sample_l = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_L)
image_sample_b = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_B)
image_sample_lz = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_LZ)
image_sample_c = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C)
image_sample_c_d = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D)
image_sample_c_l = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_L)
image_sample_c_b = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_B)
image_sample_c_lz = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_LZ)
image_sample_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_O)
image_sample_d_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_O)
image_sample_l_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_L_O)
image_sample_b_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_B_O)
image_sample_lz_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_LZ_O)
image_sample_c_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_O)
image_sample_c_d_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_O)
image_sample_c_l_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_L_O)
image_sample_c_b_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_B_O)
image_sample_c_lz_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_LZ_O)
image_gather4 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4)
image_gather4_l = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_L)
image_gather4_b = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_B)
image_gather4_lz = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_LZ)
image_gather4_c = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C)
image_gather4_c_lz = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_LZ)
image_gather4_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_O)
image_gather4_lz_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_LZ_O)
image_gather4_c_lz_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_LZ_O)
image_get_lod = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GET_LOD)
image_sample_d_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_G16)
image_sample_c_d_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_G16)
image_sample_d_o_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_O_G16)
image_sample_c_d_o_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_O_G16)
image_sample_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_CL)
image_sample_d_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_CL)
image_sample_b_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_B_CL)
image_sample_c_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_CL)
image_sample_c_d_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL)
image_sample_c_b_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_B_CL)
image_sample_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_CL_O)
image_sample_d_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_CL_O)
image_sample_b_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_B_CL_O)
image_sample_c_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_CL_O)
image_sample_c_d_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O)
image_sample_c_b_cl_o = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_B_CL_O)
image_sample_c_d_cl_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_G16)
image_sample_d_cl_o_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_CL_O_G16)
image_sample_c_d_cl_o_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O_G16)
image_sample_d_cl_g16 = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_SAMPLE_D_CL_G16)
image_gather4_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_CL)
image_gather4_b_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_B_CL)
image_gather4_c_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_CL)
image_gather4_c_l = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_L)
image_gather4_c_b = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_B)
image_gather4_c_b_cl = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4_C_B_CL)
image_gather4h = functools.partial(VSAMPLE, VSAMPLEOp.IMAGE_GATHER4H)
scratch_load_u8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_U8)
scratch_load_i8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_I8)
scratch_load_u16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_U16)
scratch_load_i16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_I16)
scratch_load_b32 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_B32)
scratch_load_b64 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_B64)
scratch_load_b96 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_B96)
scratch_load_b128 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_B128)
scratch_store_b8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B8)
scratch_store_b16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B16)
scratch_store_b32 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B32)
scratch_store_b64 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B64)
scratch_store_b96 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B96)
scratch_store_b128 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_B128)
scratch_load_d16_u8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_U8)
scratch_load_d16_i8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_I8)
scratch_load_d16_b16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_B16)
scratch_load_d16_hi_u8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_HI_U8)
scratch_load_d16_hi_i8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_HI_I8)
scratch_load_d16_hi_b16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_D16_HI_B16)
scratch_store_d16_hi_b8 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_D16_HI_B8)
scratch_store_d16_hi_b16 = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_D16_HI_B16)
scratch_load_block = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_LOAD_BLOCK)
scratch_store_block = functools.partial(VSCRATCH, VSCRATCHOp.SCRATCH_STORE_BLOCK)