# 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, SRsrcField, SSrcField, SrcField, VCC, VCCZ, VCC_HI, VCC_LO, VDSTYField, VGPRField, s, src, ttmp, v
from tinygrad.runtime.autogen.amd.rdna3.enum import DSOp, EXPOp, FLATOp, GLOBALOp, LDSDIROp, MIMGOp, MTBUFOp, MUBUFOp, SCRATCHOp, SMEMOp, SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VINTERPOp, VOP1Op, VOP2Op, VOP3Op, VOP3POp, VOP3SDOp, VOPCOp, VOPDOp, 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_CMPSTORE_F32, DSOp.DS_MIN_F32, DSOp.DS_MAX_F32, DSOp.DS_NOP, DSOp.DS_ADD_F32, DSOp.DS_GWS_SEMA_RELEASE_ALL, DSOp.DS_GWS_INIT, DSOp.DS_GWS_SEMA_V, DSOp.DS_GWS_SEMA_BR, DSOp.DS_GWS_SEMA_P, DSOp.DS_GWS_BARRIER, 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_CMPSTORE_RTN_F32, DSOp.DS_MIN_RTN_F32, DSOp.DS_MAX_RTN_F32, DSOp.DS_WRAP_RTN_B32, 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_ORDERED_COUNT, 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_CMPSTORE_F64, DSOp.DS_MIN_F64, DSOp.DS_MAX_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_CMPSTORE_RTN_F64, DSOp.DS_MIN_RTN_F64, DSOp.DS_MAX_RTN_F64, DSOp.DS_LOAD_B64, DSOp.DS_LOAD_2ADDR_B64, DSOp.DS_LOAD_2ADDR_STRIDE64_B64, DSOp.DS_ADD_RTN_F32, DSOp.DS_ADD_GS_REG_RTN, DSOp.DS_SUB_GS_REG_RTN, DSOp.DS_CONDXCHG32_RTN_B64, 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_BVH_STACK_RTN_B32, DSOp.DS_STORE_ADDTID_B32, DSOp.DS_LOAD_ADDTID_B32, DSOp.DS_PERMUTE_B32, DSOp.DS_BPERMUTE_B32, DSOp.DS_STORE_B96, DSOp.DS_STORE_B128, 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)
  gds = BitField(17, 17)

class EXP(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 FLAT(Inst):
  encoding = FixedBitField(31, 26, 0b110111)
  op = EnumBitField(24, 18, FLATOp, {FLATOp.FLAT_LOAD_U8, FLATOp.FLAT_LOAD_I8, FLATOp.FLAT_LOAD_U16, FLATOp.FLAT_LOAD_I16, FLATOp.FLAT_LOAD_B32, FLATOp.FLAT_LOAD_B64, FLATOp.FLAT_LOAD_B96, FLATOp.FLAT_LOAD_B128, FLATOp.FLAT_STORE_B8, FLATOp.FLAT_STORE_B16, FLATOp.FLAT_STORE_B32, FLATOp.FLAT_STORE_B64, FLATOp.FLAT_STORE_B96, FLATOp.FLAT_STORE_B128, FLATOp.FLAT_LOAD_D16_U8, FLATOp.FLAT_LOAD_D16_I8, FLATOp.FLAT_LOAD_D16_B16, FLATOp.FLAT_LOAD_D16_HI_U8, FLATOp.FLAT_LOAD_D16_HI_I8, FLATOp.FLAT_LOAD_D16_HI_B16, FLATOp.FLAT_STORE_D16_HI_B8, FLATOp.FLAT_STORE_D16_HI_B16, FLATOp.GLOBAL_LOAD_ADDTID_B32, FLATOp.GLOBAL_STORE_ADDTID_B32, FLATOp.GLOBAL_LOAD_LDS_ADDTID_B32, FLATOp.FLAT_ATOMIC_SWAP_B32, FLATOp.FLAT_ATOMIC_CMPSWAP_B32, FLATOp.FLAT_ATOMIC_ADD_U32, FLATOp.FLAT_ATOMIC_SUB_U32, FLATOp.FLAT_ATOMIC_CSUB_U32, FLATOp.FLAT_ATOMIC_MIN_I32, FLATOp.FLAT_ATOMIC_MIN_U32, FLATOp.FLAT_ATOMIC_MAX_I32, FLATOp.FLAT_ATOMIC_MAX_U32, FLATOp.FLAT_ATOMIC_AND_B32, FLATOp.FLAT_ATOMIC_OR_B32, FLATOp.FLAT_ATOMIC_XOR_B32, FLATOp.FLAT_ATOMIC_INC_U32, FLATOp.FLAT_ATOMIC_DEC_U32, FLATOp.FLAT_ATOMIC_SWAP_B64, FLATOp.FLAT_ATOMIC_CMPSWAP_B64, FLATOp.FLAT_ATOMIC_ADD_U64, FLATOp.FLAT_ATOMIC_SUB_U64, FLATOp.FLAT_ATOMIC_MIN_I64, FLATOp.FLAT_ATOMIC_MIN_U64, FLATOp.FLAT_ATOMIC_MAX_I64, FLATOp.FLAT_ATOMIC_MAX_U64, FLATOp.FLAT_ATOMIC_AND_B64, FLATOp.FLAT_ATOMIC_OR_B64, FLATOp.FLAT_ATOMIC_XOR_B64, FLATOp.FLAT_ATOMIC_INC_U64, FLATOp.FLAT_ATOMIC_DEC_U64, FLATOp.FLAT_ATOMIC_CMPSWAP_F32, FLATOp.FLAT_ATOMIC_MIN_F32, FLATOp.FLAT_ATOMIC_MAX_F32, FLATOp.FLAT_ATOMIC_ADD_F32})
  vdst = VGPRField(63, 56)
  addr = VGPRField(39, 32)
  data = VGPRField(47, 40)
  saddr = SGPRField(54, 48, default=NULL)
  offset = BitField(12, 0)
  seg = FixedBitField(17, 16, 0)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(15, 15)
  sve = BitField(55, 55)

class GLOBAL(Inst):
  encoding = FixedBitField(31, 26, 0b110111)
  op = EnumBitField(24, 18, GLOBALOp, {GLOBALOp.GLOBAL_LOAD_U8, GLOBALOp.GLOBAL_LOAD_I8, GLOBALOp.GLOBAL_LOAD_U16, GLOBALOp.GLOBAL_LOAD_I16, GLOBALOp.GLOBAL_LOAD_B32, GLOBALOp.GLOBAL_LOAD_B64, GLOBALOp.GLOBAL_LOAD_B96, GLOBALOp.GLOBAL_LOAD_B128, GLOBALOp.GLOBAL_STORE_B8, GLOBALOp.GLOBAL_STORE_B16, GLOBALOp.GLOBAL_STORE_B32, GLOBALOp.GLOBAL_STORE_B64, GLOBALOp.GLOBAL_STORE_B96, GLOBALOp.GLOBAL_STORE_B128, GLOBALOp.GLOBAL_LOAD_D16_U8, GLOBALOp.GLOBAL_LOAD_D16_I8, GLOBALOp.GLOBAL_LOAD_D16_B16, GLOBALOp.GLOBAL_LOAD_D16_HI_U8, GLOBALOp.GLOBAL_LOAD_D16_HI_I8, GLOBALOp.GLOBAL_LOAD_D16_HI_B16, GLOBALOp.GLOBAL_STORE_D16_HI_B8, GLOBALOp.GLOBAL_STORE_D16_HI_B16, GLOBALOp.GLOBAL_LOAD_ADDTID_B32, GLOBALOp.GLOBAL_STORE_ADDTID_B32, GLOBALOp.GLOBAL_LOAD_LDS_ADDTID_B32, GLOBALOp.GLOBAL_LOAD_LDS_U8, GLOBALOp.GLOBAL_LOAD_LDS_I8, GLOBALOp.GLOBAL_LOAD_LDS_U16, GLOBALOp.GLOBAL_LOAD_LDS_I16, GLOBALOp.GLOBAL_LOAD_LDS_B32, GLOBALOp.GLOBAL_ATOMIC_SWAP_B32, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32, GLOBALOp.GLOBAL_ATOMIC_ADD_U32, GLOBALOp.GLOBAL_ATOMIC_SUB_U32, GLOBALOp.GLOBAL_ATOMIC_CSUB_U32, GLOBALOp.GLOBAL_ATOMIC_MIN_I32, GLOBALOp.GLOBAL_ATOMIC_MIN_U32, GLOBALOp.GLOBAL_ATOMIC_MAX_I32, GLOBALOp.GLOBAL_ATOMIC_MAX_U32, GLOBALOp.GLOBAL_ATOMIC_AND_B32, GLOBALOp.GLOBAL_ATOMIC_OR_B32, GLOBALOp.GLOBAL_ATOMIC_XOR_B32, GLOBALOp.GLOBAL_ATOMIC_INC_U32, GLOBALOp.GLOBAL_ATOMIC_DEC_U32, GLOBALOp.GLOBAL_ATOMIC_SWAP_B64, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64, GLOBALOp.GLOBAL_ATOMIC_ADD_U64, GLOBALOp.GLOBAL_ATOMIC_SUB_U64, GLOBALOp.GLOBAL_ATOMIC_MIN_I64, GLOBALOp.GLOBAL_ATOMIC_MIN_U64, GLOBALOp.GLOBAL_ATOMIC_MAX_I64, GLOBALOp.GLOBAL_ATOMIC_MAX_U64, GLOBALOp.GLOBAL_ATOMIC_AND_B64, GLOBALOp.GLOBAL_ATOMIC_OR_B64, GLOBALOp.GLOBAL_ATOMIC_XOR_B64, GLOBALOp.GLOBAL_ATOMIC_INC_U64, GLOBALOp.GLOBAL_ATOMIC_DEC_U64, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_F32, GLOBALOp.GLOBAL_ATOMIC_MIN_F32, GLOBALOp.GLOBAL_ATOMIC_MAX_F32, GLOBALOp.GLOBAL_ATOMIC_ADD_F32})
  vdst = VGPRField(63, 56)
  addr = VGPRField(39, 32)
  data = VGPRField(47, 40)
  saddr = SGPRField(54, 48, default=NULL)
  offset = BitField(12, 0)
  seg = FixedBitField(17, 16, 2)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(15, 15)
  sve = BitField(55, 55)

class SCRATCH(Inst):
  encoding = FixedBitField(31, 26, 0b110111)
  op = EnumBitField(24, 18, SCRATCHOp, {SCRATCHOp.SCRATCH_LOAD_U8, SCRATCHOp.SCRATCH_LOAD_I8, SCRATCHOp.SCRATCH_LOAD_U16, SCRATCHOp.SCRATCH_LOAD_I16, SCRATCHOp.SCRATCH_LOAD_B32, SCRATCHOp.SCRATCH_LOAD_B64, SCRATCHOp.SCRATCH_LOAD_B96, SCRATCHOp.SCRATCH_LOAD_B128, SCRATCHOp.SCRATCH_STORE_B8, SCRATCHOp.SCRATCH_STORE_B16, SCRATCHOp.SCRATCH_STORE_B32, SCRATCHOp.SCRATCH_STORE_B64, SCRATCHOp.SCRATCH_STORE_B96, SCRATCHOp.SCRATCH_STORE_B128, SCRATCHOp.SCRATCH_LOAD_D16_U8, SCRATCHOp.SCRATCH_LOAD_D16_I8, SCRATCHOp.SCRATCH_LOAD_D16_B16, SCRATCHOp.SCRATCH_LOAD_D16_HI_U8, SCRATCHOp.SCRATCH_LOAD_D16_HI_I8, SCRATCHOp.SCRATCH_LOAD_D16_HI_B16, SCRATCHOp.SCRATCH_STORE_D16_HI_B8, SCRATCHOp.SCRATCH_STORE_D16_HI_B16, SCRATCHOp.SCRATCH_LOAD_LDS_U8, SCRATCHOp.SCRATCH_LOAD_LDS_I8, SCRATCHOp.SCRATCH_LOAD_LDS_U16, SCRATCHOp.SCRATCH_LOAD_LDS_I16, SCRATCHOp.SCRATCH_LOAD_LDS_B32})
  vdst = VGPRField(63, 56)
  addr = VGPRField(39, 32)
  data = VGPRField(47, 40)
  saddr = SGPRField(54, 48, default=NULL)
  offset = BitField(12, 0)
  seg = FixedBitField(17, 16, 1)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(15, 15)
  sve = BitField(55, 55)

class LDSDIR(Inst):
  encoding = FixedBitField(31, 24, 0b11001110)
  op = EnumBitField(21, 20, LDSDIROp, {LDSDIROp.LDS_PARAM_LOAD, LDSDIROp.LDS_DIRECT_LOAD})
  vdst = VGPRField(7, 0)
  attr = BitField(15, 10)
  attr_chan = BitField(9, 8)
  wait_vdst = BitField(19, 16)

class MIMG(Inst):
  encoding = FixedBitField(31, 26, 0b111100)
  op = EnumBitField(25, 18, MIMGOp, {MIMGOp.IMAGE_LOAD, MIMGOp.IMAGE_LOAD_MIP, MIMGOp.IMAGE_LOAD_PCK, MIMGOp.IMAGE_LOAD_PCK_SGN, MIMGOp.IMAGE_LOAD_MIP_PCK, MIMGOp.IMAGE_LOAD_MIP_PCK_SGN, MIMGOp.IMAGE_STORE, MIMGOp.IMAGE_STORE_MIP, MIMGOp.IMAGE_STORE_PCK, MIMGOp.IMAGE_STORE_MIP_PCK, MIMGOp.IMAGE_ATOMIC_SWAP, MIMGOp.IMAGE_ATOMIC_CMPSWAP, MIMGOp.IMAGE_ATOMIC_ADD, MIMGOp.IMAGE_ATOMIC_SUB, MIMGOp.IMAGE_ATOMIC_SMIN, MIMGOp.IMAGE_ATOMIC_UMIN, MIMGOp.IMAGE_ATOMIC_SMAX, MIMGOp.IMAGE_ATOMIC_UMAX, MIMGOp.IMAGE_ATOMIC_AND, MIMGOp.IMAGE_ATOMIC_OR, MIMGOp.IMAGE_ATOMIC_XOR, MIMGOp.IMAGE_ATOMIC_INC, MIMGOp.IMAGE_ATOMIC_DEC, MIMGOp.IMAGE_GET_RESINFO, MIMGOp.IMAGE_MSAA_LOAD, MIMGOp.IMAGE_BVH_INTERSECT_RAY, MIMGOp.IMAGE_BVH64_INTERSECT_RAY, MIMGOp.IMAGE_SAMPLE, MIMGOp.IMAGE_SAMPLE_D, MIMGOp.IMAGE_SAMPLE_L, MIMGOp.IMAGE_SAMPLE_B, MIMGOp.IMAGE_SAMPLE_LZ, MIMGOp.IMAGE_SAMPLE_C, MIMGOp.IMAGE_SAMPLE_C_D, MIMGOp.IMAGE_SAMPLE_C_L, MIMGOp.IMAGE_SAMPLE_C_B, MIMGOp.IMAGE_SAMPLE_C_LZ, MIMGOp.IMAGE_SAMPLE_O, MIMGOp.IMAGE_SAMPLE_D_O, MIMGOp.IMAGE_SAMPLE_L_O, MIMGOp.IMAGE_SAMPLE_B_O, MIMGOp.IMAGE_SAMPLE_LZ_O, MIMGOp.IMAGE_SAMPLE_C_O, MIMGOp.IMAGE_SAMPLE_C_D_O, MIMGOp.IMAGE_SAMPLE_C_L_O, MIMGOp.IMAGE_SAMPLE_C_B_O, MIMGOp.IMAGE_SAMPLE_C_LZ_O, MIMGOp.IMAGE_GATHER4, MIMGOp.IMAGE_GATHER4_L, MIMGOp.IMAGE_GATHER4_B, MIMGOp.IMAGE_GATHER4_LZ, MIMGOp.IMAGE_GATHER4_C, MIMGOp.IMAGE_GATHER4_C_LZ, MIMGOp.IMAGE_GATHER4_O, MIMGOp.IMAGE_GATHER4_LZ_O, MIMGOp.IMAGE_GATHER4_C_LZ_O, MIMGOp.IMAGE_GET_LOD, MIMGOp.IMAGE_SAMPLE_D_G16, MIMGOp.IMAGE_SAMPLE_C_D_G16, MIMGOp.IMAGE_SAMPLE_D_O_G16, MIMGOp.IMAGE_SAMPLE_C_D_O_G16, MIMGOp.IMAGE_SAMPLE_CL, MIMGOp.IMAGE_SAMPLE_D_CL, MIMGOp.IMAGE_SAMPLE_B_CL, MIMGOp.IMAGE_SAMPLE_C_CL, MIMGOp.IMAGE_SAMPLE_C_D_CL, MIMGOp.IMAGE_SAMPLE_C_B_CL, MIMGOp.IMAGE_SAMPLE_CL_O, MIMGOp.IMAGE_SAMPLE_D_CL_O, MIMGOp.IMAGE_SAMPLE_B_CL_O, MIMGOp.IMAGE_SAMPLE_C_CL_O, MIMGOp.IMAGE_SAMPLE_C_D_CL_O, MIMGOp.IMAGE_SAMPLE_C_B_CL_O, MIMGOp.IMAGE_SAMPLE_C_D_CL_G16, MIMGOp.IMAGE_SAMPLE_D_CL_O_G16, MIMGOp.IMAGE_SAMPLE_C_D_CL_O_G16, MIMGOp.IMAGE_SAMPLE_D_CL_G16, MIMGOp.IMAGE_GATHER4_CL, MIMGOp.IMAGE_GATHER4_B_CL, MIMGOp.IMAGE_GATHER4_C_CL, MIMGOp.IMAGE_GATHER4_C_L, MIMGOp.IMAGE_GATHER4_C_B, MIMGOp.IMAGE_GATHER4_C_B_CL, MIMGOp.IMAGE_GATHER4H})
  vdata = VGPRField(47, 40)
  vaddr = VGPRField(39, 32)
  srsrc = SRsrcField(52, 48)
  ssamp = SRsrcField(62, 58)
  dmask = BitField(11, 8)
  dim = BitField(4, 2)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(12, 12)
  tfe = BitField(53, 53)
  unrm = BitField(7, 7)
  nsa = BitField(0, 0)
  r128 = BitField(15, 15)
  a16 = BitField(16, 16)
  d16 = BitField(17, 17)
  lwe = BitField(54, 54)

class MTBUF(Inst):
  encoding = FixedBitField(31, 26, 0b111010)
  op = EnumBitField(18, 15, MTBUFOp, {MTBUFOp.TBUFFER_LOAD_FORMAT_X, MTBUFOp.TBUFFER_LOAD_FORMAT_XY, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW, MTBUFOp.TBUFFER_STORE_FORMAT_X, MTBUFOp.TBUFFER_STORE_FORMAT_XY, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_X, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XY, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZ, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZW, MTBUFOp.TBUFFER_STORE_D16_FORMAT_X, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XY, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZ, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZW})
  vdata = VGPRField(47, 40)
  vaddr = VGPRField(39, 32)
  srsrc = SRsrcField(52, 48)
  soffset = SSrcField(63, 56, default=NULL)
  offset = BitField(11, 0)
  format = BitField(25, 19)
  offen = BitField(54, 54)
  idxen = BitField(55, 55)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(12, 12)
  tfe = BitField(53, 53)

class MUBUF(Inst):
  encoding = FixedBitField(31, 26, 0b111000)
  op = EnumBitField(25, 18, MUBUFOp, {MUBUFOp.BUFFER_LOAD_FORMAT_X, MUBUFOp.BUFFER_LOAD_FORMAT_XY, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW, MUBUFOp.BUFFER_STORE_FORMAT_X, MUBUFOp.BUFFER_STORE_FORMAT_XY, MUBUFOp.BUFFER_STORE_FORMAT_XYZ, MUBUFOp.BUFFER_STORE_FORMAT_XYZW, MUBUFOp.BUFFER_LOAD_D16_FORMAT_X, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XY, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZ, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZW, MUBUFOp.BUFFER_STORE_D16_FORMAT_X, MUBUFOp.BUFFER_STORE_D16_FORMAT_XY, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZ, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZW, MUBUFOp.BUFFER_LOAD_U8, MUBUFOp.BUFFER_LOAD_I8, MUBUFOp.BUFFER_LOAD_U16, MUBUFOp.BUFFER_LOAD_I16, MUBUFOp.BUFFER_LOAD_B32, MUBUFOp.BUFFER_LOAD_B64, MUBUFOp.BUFFER_LOAD_B96, MUBUFOp.BUFFER_LOAD_B128, MUBUFOp.BUFFER_STORE_B8, MUBUFOp.BUFFER_STORE_B16, MUBUFOp.BUFFER_STORE_B32, MUBUFOp.BUFFER_STORE_B64, MUBUFOp.BUFFER_STORE_B96, MUBUFOp.BUFFER_STORE_B128, MUBUFOp.BUFFER_LOAD_D16_U8, MUBUFOp.BUFFER_LOAD_D16_I8, MUBUFOp.BUFFER_LOAD_D16_B16, MUBUFOp.BUFFER_LOAD_D16_HI_U8, MUBUFOp.BUFFER_LOAD_D16_HI_I8, MUBUFOp.BUFFER_LOAD_D16_HI_B16, MUBUFOp.BUFFER_STORE_D16_HI_B8, MUBUFOp.BUFFER_STORE_D16_HI_B16, MUBUFOp.BUFFER_LOAD_D16_HI_FORMAT_X, MUBUFOp.BUFFER_STORE_D16_HI_FORMAT_X, MUBUFOp.BUFFER_GL0_INV, MUBUFOp.BUFFER_GL1_INV, MUBUFOp.BUFFER_LOAD_LDS_U8, MUBUFOp.BUFFER_LOAD_LDS_I8, MUBUFOp.BUFFER_LOAD_LDS_U16, MUBUFOp.BUFFER_LOAD_LDS_I16, MUBUFOp.BUFFER_LOAD_LDS_B32, MUBUFOp.BUFFER_LOAD_LDS_FORMAT_X, MUBUFOp.BUFFER_ATOMIC_SWAP_B32, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B32, MUBUFOp.BUFFER_ATOMIC_ADD_U32, MUBUFOp.BUFFER_ATOMIC_SUB_U32, MUBUFOp.BUFFER_ATOMIC_CSUB_U32, MUBUFOp.BUFFER_ATOMIC_MIN_I32, MUBUFOp.BUFFER_ATOMIC_MIN_U32, MUBUFOp.BUFFER_ATOMIC_MAX_I32, MUBUFOp.BUFFER_ATOMIC_MAX_U32, MUBUFOp.BUFFER_ATOMIC_AND_B32, MUBUFOp.BUFFER_ATOMIC_OR_B32, MUBUFOp.BUFFER_ATOMIC_XOR_B32, MUBUFOp.BUFFER_ATOMIC_INC_U32, MUBUFOp.BUFFER_ATOMIC_DEC_U32, MUBUFOp.BUFFER_ATOMIC_SWAP_B64, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B64, MUBUFOp.BUFFER_ATOMIC_ADD_U64, MUBUFOp.BUFFER_ATOMIC_SUB_U64, MUBUFOp.BUFFER_ATOMIC_MIN_I64, MUBUFOp.BUFFER_ATOMIC_MIN_U64, MUBUFOp.BUFFER_ATOMIC_MAX_I64, MUBUFOp.BUFFER_ATOMIC_MAX_U64, MUBUFOp.BUFFER_ATOMIC_AND_B64, MUBUFOp.BUFFER_ATOMIC_OR_B64, MUBUFOp.BUFFER_ATOMIC_XOR_B64, MUBUFOp.BUFFER_ATOMIC_INC_U64, MUBUFOp.BUFFER_ATOMIC_DEC_U64, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_F32, MUBUFOp.BUFFER_ATOMIC_MIN_F32, MUBUFOp.BUFFER_ATOMIC_MAX_F32, MUBUFOp.BUFFER_ATOMIC_ADD_F32})
  vdata = VGPRField(47, 40)
  vaddr = VGPRField(39, 32)
  srsrc = SRsrcField(52, 48)
  soffset = SSrcField(63, 56, default=NULL)
  offset = BitField(11, 0)
  offen = BitField(54, 54)
  idxen = BitField(55, 55)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)
  slc = BitField(12, 12)
  tfe = BitField(53, 53)

class SMEM(Inst):
  encoding = FixedBitField(31, 26, 0b111101)
  op = EnumBitField(25, 18, SMEMOp, {SMEMOp.S_LOAD_B32, SMEMOp.S_LOAD_B64, SMEMOp.S_LOAD_B128, SMEMOp.S_LOAD_B256, SMEMOp.S_LOAD_B512, 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_GL1_INV, SMEMOp.S_DCACHE_INV, SMEMOp.S_ATC_PROBE, SMEMOp.S_ATC_PROBE_BUFFER})
  sdata = SGPRField(12, 6)
  sbase = SBaseField(5, 0)
  soffset = SGPRField(63, 57, default=NULL)
  offset = BitField(52, 32)
  glc = BitField(14, 14)
  dlc = BitField(13, 13)

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_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_U32, SOP2Op.S_SUB_U32, SOP2Op.S_ADD_I32, SOP2Op.S_SUB_I32, SOP2Op.S_ADDC_U32, SOP2Op.S_SUBB_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_F32, SOP2Op.S_MAX_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_F16, SOP2Op.S_MAX_F16, SOP2Op.S_MUL_F16, SOP2Op.S_FMAC_F16})
  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_CMPK_EQ_I32, SOPKOp.S_CMPK_LG_I32, SOPKOp.S_CMPK_GT_I32, SOPKOp.S_CMPK_GE_I32, SOPKOp.S_CMPK_LT_I32, SOPKOp.S_CMPK_LE_I32, SOPKOp.S_CMPK_EQ_U32, SOPKOp.S_CMPK_LG_U32, SOPKOp.S_CMPK_GT_U32, SOPKOp.S_CMPK_GE_U32, SOPKOp.S_CMPK_LT_U32, SOPKOp.S_CMPK_LE_U32, SOPKOp.S_ADDK_I32, SOPKOp.S_MULK_I32, SOPKOp.S_GETREG_B32, SOPKOp.S_SETREG_B32, SOPKOp.S_CALL_B64, SOPKOp.S_SUBVECTOR_LOOP_BEGIN, SOPKOp.S_SUBVECTOR_LOOP_END, SOPKOp.S_WAITCNT_VSCNT, SOPKOp.S_WAITCNT_VMCNT, SOPKOp.S_WAITCNT_EXPCNT, SOPKOp.S_WAITCNT_LGKMCNT})
  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_SET_INST_PREFETCH_DISTANCE, SOPPOp.S_CLAUSE, SOPPOp.S_DELAY_ALU, SOPPOp.S_WAITCNT_DEPCTR, SOPPOp.S_WAITCNT, SOPPOp.S_WAIT_IDLE, SOPPOp.S_WAIT_EVENT, SOPPOp.S_TRAP, SOPPOp.S_ROUND_MODE, SOPPOp.S_DENORM_MODE, 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_CBRANCH_CDBGSYS, SOPPOp.S_CBRANCH_CDBGUSER, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER, SOPPOp.S_ENDPGM, SOPPOp.S_ENDPGM_SAVED, SOPPOp.S_ENDPGM_ORDERED_PS_DONE, 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_BARRIER})
  simm16 = BitField(15, 0)

class VINTERP(Inst):
  encoding = FixedBitField(31, 24, 0b11001101)
  op = EnumBitField(22, 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(16, 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})
  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_DOT2ACC_F32_F16, VOP2Op.V_ADD_F32, VOP2Op.V_SUB_F32, VOP2Op.V_SUBREV_F32, VOP2Op.V_FMAC_DX9_ZERO_F32, 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_F32, VOP2Op.V_MAX_F32, VOP2Op.V_MIN_I32, VOP2Op.V_MAX_I32, VOP2Op.V_MIN_U32, VOP2Op.V_MAX_U32, 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_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_ADD_F16, VOP2Op.V_SUB_F16, VOP2Op.V_SUBREV_F16, VOP2Op.V_MUL_F16, VOP2Op.V_FMAC_F16, VOP2Op.V_MAX_F16, VOP2Op.V_MIN_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_F_F16, 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_T_F16, VOP3Op.V_CMPX_F_F32, 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_T_F32, VOP3Op.V_CMPX_F_F64, 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_T_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_F_I32, 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_T_I32, VOP3Op.V_CMPX_F_U32, 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_T_U32, VOP3Op.V_CMPX_F_I64, 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_T_I64, VOP3Op.V_CMPX_F_U64, 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_T_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_CNDMASK_B32, VOP3Op.V_ADD_F32, VOP3Op.V_SUB_F32, VOP3Op.V_SUBREV_F32, VOP3Op.V_FMAC_DX9_ZERO_F32, 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_F32, VOP3Op.V_MAX_F32, VOP3Op.V_MIN_I32, VOP3Op.V_MAX_I32, VOP3Op.V_MIN_U32, VOP3Op.V_MAX_U32, 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_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_ADD_F16, VOP3Op.V_SUB_F16, VOP3Op.V_SUBREV_F16, VOP3Op.V_MUL_F16, VOP3Op.V_FMAC_F16, VOP3Op.V_MAX_F16, VOP3Op.V_MIN_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_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_F32, VOP3Op.V_MIN3_I32, VOP3Op.V_MIN3_U32, VOP3Op.V_MAX3_F32, VOP3Op.V_MAX3_I32, VOP3Op.V_MAX3_U32, VOP3Op.V_MED3_F32, 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_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_F16, VOP3Op.V_MIN3_I16, VOP3Op.V_MIN3_U16, VOP3Op.V_MAX3_F16, VOP3Op.V_MAX3_I16, VOP3Op.V_MAX3_U16, VOP3Op.V_MED3_F16, 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_F32, VOP3Op.V_MINMAX_F32, VOP3Op.V_MAXMIN_F16, VOP3Op.V_MINMAX_F16, 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_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_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_ADD_F64, VOP3Op.V_MUL_F64, VOP3Op.V_MIN_F64, VOP3Op.V_MAX_F64, 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_LSHLREV_B64, VOP3Op.V_LSHRREV_B64, VOP3Op.V_ASHRREV_I64, VOP3Op.V_WRITELANE_B32, VOP3Op.V_AND_B16, VOP3Op.V_OR_B16, VOP3Op.V_XOR_B16})
  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_PK_MIN_F16, VOP3POp.V_PK_MAX_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_FMA_MIX_F32, VOP3POp.V_FMA_MIXLO_F16, VOP3POp.V_FMA_MIXHI_F16, 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})
  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_U64_U32, VOP3SDOp.V_MAD_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_F_F16, 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_T_F16, VOPCOp.V_CMP_F_F32, 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_T_F32, VOPCOp.V_CMP_F_F64, 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_T_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_F_I32, 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_T_I32, VOPCOp.V_CMP_F_U32, 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_T_U32, VOPCOp.V_CMP_F_I64, 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_T_I64, VOPCOp.V_CMP_F_U64, 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_T_U64, VOPCOp.V_CMP_CLASS_F16, VOPCOp.V_CMP_CLASS_F32, VOPCOp.V_CMP_CLASS_F64, VOPCOp.V_CMPX_F_F16, 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_T_F16, VOPCOp.V_CMPX_F_F32, 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_T_F32, VOPCOp.V_CMPX_F_F64, 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_T_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_F_I32, 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_T_I32, VOPCOp.V_CMPX_F_U32, 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_T_U32, VOPCOp.V_CMPX_F_I64, 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_T_I64, VOPCOp.V_CMPX_F_U64, 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_T_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 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_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_U32, SOP2Op.S_SUB_U32, SOP2Op.S_ADD_I32, SOP2Op.S_SUB_I32, SOP2Op.S_ADDC_U32, SOP2Op.S_SUBB_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_F32, SOP2Op.S_MAX_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_F16, SOP2Op.S_MAX_F16, SOP2Op.S_MUL_F16, SOP2Op.S_FMAC_F16})
  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_CMPK_EQ_I32, SOPKOp.S_CMPK_LG_I32, SOPKOp.S_CMPK_GT_I32, SOPKOp.S_CMPK_GE_I32, SOPKOp.S_CMPK_LT_I32, SOPKOp.S_CMPK_LE_I32, SOPKOp.S_CMPK_EQ_U32, SOPKOp.S_CMPK_LG_U32, SOPKOp.S_CMPK_GT_U32, SOPKOp.S_CMPK_GE_U32, SOPKOp.S_CMPK_LT_U32, SOPKOp.S_CMPK_LE_U32, SOPKOp.S_ADDK_I32, SOPKOp.S_MULK_I32, SOPKOp.S_GETREG_B32, SOPKOp.S_SETREG_B32, SOPKOp.S_SETREG_IMM32_B32, SOPKOp.S_CALL_B64, SOPKOp.S_SUBVECTOR_LOOP_BEGIN, SOPKOp.S_SUBVECTOR_LOOP_END, SOPKOp.S_WAITCNT_VSCNT, SOPKOp.S_WAITCNT_VMCNT, SOPKOp.S_WAITCNT_EXPCNT, SOPKOp.S_WAITCNT_LGKMCNT})
  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(16, 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})
  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_DOT2ACC_F32_F16, VOP2Op.V_ADD_F32, VOP2Op.V_SUB_F32, VOP2Op.V_SUBREV_F32, VOP2Op.V_FMAC_DX9_ZERO_F32, 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_F32, VOP2Op.V_MAX_F32, VOP2Op.V_MIN_I32, VOP2Op.V_MAX_I32, VOP2Op.V_MIN_U32, VOP2Op.V_MAX_U32, 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_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_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_MAX_F16, VOP2Op.V_MIN_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_PK_MIN_F16, VOP3POp.V_PK_MAX_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_FMA_MIX_F32, VOP3POp.V_FMA_MIXLO_F16, VOP3POp.V_FMA_MIXHI_F16, 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})
  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_U64_U32, VOP3SDOp.V_MAD_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_F_F16, 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_T_F16, VOP3Op.V_CMP_F_F32, 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_T_F32, VOP3Op.V_CMP_F_F64, 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_T_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_F_I32, 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_T_I32, VOP3Op.V_CMP_F_U32, 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_T_U32, VOP3Op.V_CMP_F_I64, 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_T_I64, VOP3Op.V_CMP_F_U64, 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_T_U64, VOP3Op.V_CMP_CLASS_F16, VOP3Op.V_CMP_CLASS_F32, VOP3Op.V_CMP_CLASS_F64, VOP3Op.V_CMPX_F_F16, 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_T_F16, VOP3Op.V_CMPX_F_F32, 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_T_F32, VOP3Op.V_CMPX_F_F64, 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_T_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_F_I32, 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_T_I32, VOP3Op.V_CMPX_F_U32, 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_T_U32, VOP3Op.V_CMPX_F_I64, 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_T_I64, VOP3Op.V_CMPX_F_U64, 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_T_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_CNDMASK_B32, VOP3Op.V_ADD_F32, VOP3Op.V_SUB_F32, VOP3Op.V_SUBREV_F32, VOP3Op.V_FMAC_DX9_ZERO_F32, 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_F32, VOP3Op.V_MAX_F32, VOP3Op.V_MIN_I32, VOP3Op.V_MAX_I32, VOP3Op.V_MIN_U32, VOP3Op.V_MAX_U32, 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_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_ADD_F16, VOP3Op.V_SUB_F16, VOP3Op.V_SUBREV_F16, VOP3Op.V_MUL_F16, VOP3Op.V_FMAC_F16, VOP3Op.V_MAX_F16, VOP3Op.V_MIN_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_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_F32, VOP3Op.V_MIN3_I32, VOP3Op.V_MIN3_U32, VOP3Op.V_MAX3_F32, VOP3Op.V_MAX3_I32, VOP3Op.V_MAX3_U32, VOP3Op.V_MED3_F32, 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_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_F16, VOP3Op.V_MIN3_I16, VOP3Op.V_MIN3_U16, VOP3Op.V_MAX3_F16, VOP3Op.V_MAX3_I16, VOP3Op.V_MAX3_U16, VOP3Op.V_MED3_F16, 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_F32, VOP3Op.V_MINMAX_F32, VOP3Op.V_MAXMIN_F16, VOP3Op.V_MINMAX_F16, 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_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_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_ADD_F64, VOP3Op.V_MUL_F64, VOP3Op.V_MIN_F64, VOP3Op.V_MAX_F64, 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_LSHLREV_B64, VOP3Op.V_LSHRREV_B64, VOP3Op.V_ASHRREV_I64, VOP3Op.V_READLANE_B32, VOP3Op.V_WRITELANE_B32, VOP3Op.V_AND_B16, VOP3Op.V_OR_B16, VOP3Op.V_XOR_B16})
  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_F_F16, 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_T_F16, VOPCOp.V_CMP_F_F32, 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_T_F32, VOPCOp.V_CMP_F_F64, 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_T_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_F_I32, 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_T_I32, VOPCOp.V_CMP_F_U32, 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_T_U32, VOPCOp.V_CMP_F_I64, 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_T_I64, VOPCOp.V_CMP_F_U64, 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_T_U64, VOPCOp.V_CMP_CLASS_F16, VOPCOp.V_CMP_CLASS_F32, VOPCOp.V_CMP_CLASS_F64, VOPCOp.V_CMPX_F_F16, 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_T_F16, VOPCOp.V_CMPX_F_F32, 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_T_F32, VOPCOp.V_CMPX_F_F64, 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_T_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_F_I32, 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_T_I32, VOPCOp.V_CMPX_F_U32, 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_T_U32, VOPCOp.V_CMPX_F_I64, 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_T_I64, VOPCOp.V_CMPX_F_U64, 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_T_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(16, 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_F_F16, 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_T_F16, VOP3Op.V_CMP_F_F32, 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_T_F32, VOP3Op.V_CMP_F_F64, 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_T_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_F_I32, 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_T_I32, VOP3Op.V_CMP_F_U32, 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_T_U32, VOP3Op.V_CMP_F_I64, 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_T_I64, VOP3Op.V_CMP_F_U64, 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_T_U64, VOP3Op.V_CMP_CLASS_F16, VOP3Op.V_CMP_CLASS_F32, VOP3Op.V_CMP_CLASS_F64, VOP3Op.V_CMPX_F_F16, 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_T_F16, VOP3Op.V_CMPX_F_F32, 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_T_F32, VOP3Op.V_CMPX_F_F64, 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_T_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_F_I32, 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_T_I32, VOP3Op.V_CMPX_F_U32, 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_T_U32, VOP3Op.V_CMPX_F_I64, 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_T_I64, VOP3Op.V_CMPX_F_U64, 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_T_U64, VOP3Op.V_CMPX_CLASS_F16, VOP3Op.V_CMPX_CLASS_F32, VOP3Op.V_CMPX_CLASS_F64, VOP3Op.V_READFIRSTLANE_B32, 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_cmpstore_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_F32)
ds_min_f32 = functools.partial(DS, DSOp.DS_MIN_F32)
ds_max_f32 = functools.partial(DS, DSOp.DS_MAX_F32)
ds_nop = functools.partial(DS, DSOp.DS_NOP)
ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32)
ds_gws_sema_release_all = functools.partial(DS, DSOp.DS_GWS_SEMA_RELEASE_ALL)
ds_gws_init = functools.partial(DS, DSOp.DS_GWS_INIT)
ds_gws_sema_v = functools.partial(DS, DSOp.DS_GWS_SEMA_V)
ds_gws_sema_br = functools.partial(DS, DSOp.DS_GWS_SEMA_BR)
ds_gws_sema_p = functools.partial(DS, DSOp.DS_GWS_SEMA_P)
ds_gws_barrier = functools.partial(DS, DSOp.DS_GWS_BARRIER)
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_cmpstore_rtn_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F32)
ds_min_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_RTN_F32)
ds_max_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_RTN_F32)
ds_wrap_rtn_b32 = functools.partial(DS, DSOp.DS_WRAP_RTN_B32)
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_ordered_count = functools.partial(DS, DSOp.DS_ORDERED_COUNT)
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_cmpstore_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_F64)
ds_min_f64 = functools.partial(DS, DSOp.DS_MIN_F64)
ds_max_f64 = functools.partial(DS, DSOp.DS_MAX_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_cmpstore_rtn_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F64)
ds_min_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_RTN_F64)
ds_max_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_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_add_gs_reg_rtn = functools.partial(DS, DSOp.DS_ADD_GS_REG_RTN)
ds_sub_gs_reg_rtn = functools.partial(DS, DSOp.DS_SUB_GS_REG_RTN)
ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64)
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_bvh_stack_rtn_b32 = functools.partial(DS, DSOp.DS_BVH_STACK_RTN_B32)
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_store_b96 = functools.partial(DS, DSOp.DS_STORE_B96)
ds_store_b128 = functools.partial(DS, DSOp.DS_STORE_B128)
ds_load_b96 = functools.partial(DS, DSOp.DS_LOAD_B96)
ds_load_b128 = functools.partial(DS, DSOp.DS_LOAD_B128)
exp = functools.partial(EXP, EXPOp.EXP)
flat_load_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U8)
flat_load_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I8)
flat_load_u16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U16)
flat_load_i16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I16)
flat_load_b32 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B32)
flat_load_b64 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B64)
flat_load_b96 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B96)
flat_load_b128 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B128)
flat_store_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_B8)
flat_store_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_B16)
flat_store_b32 = functools.partial(FLAT, FLATOp.FLAT_STORE_B32)
flat_store_b64 = functools.partial(FLAT, FLATOp.FLAT_STORE_B64)
flat_store_b96 = functools.partial(FLAT, FLATOp.FLAT_STORE_B96)
flat_store_b128 = functools.partial(FLAT, FLATOp.FLAT_STORE_B128)
flat_load_d16_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_U8)
flat_load_d16_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_I8)
flat_load_d16_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_B16)
flat_load_d16_hi_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_U8)
flat_load_d16_hi_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_I8)
flat_load_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_B16)
flat_store_d16_hi_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B8)
flat_store_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B16)
flat_atomic_swap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B32)
flat_atomic_cmpswap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B32)
flat_atomic_add_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U32)
flat_atomic_sub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U32)
flat_atomic_csub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CSUB_U32)
flat_atomic_min_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I32)
flat_atomic_min_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U32)
flat_atomic_max_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I32)
flat_atomic_max_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U32)
flat_atomic_and_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B32)
flat_atomic_or_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B32)
flat_atomic_xor_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B32)
flat_atomic_inc_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U32)
flat_atomic_dec_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U32)
flat_atomic_swap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B64)
flat_atomic_cmpswap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B64)
flat_atomic_add_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U64)
flat_atomic_sub_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U64)
flat_atomic_min_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I64)
flat_atomic_min_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U64)
flat_atomic_max_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I64)
flat_atomic_max_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U64)
flat_atomic_and_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B64)
flat_atomic_or_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B64)
flat_atomic_xor_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B64)
flat_atomic_inc_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U64)
flat_atomic_dec_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U64)
flat_atomic_cmpswap_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_F32)
flat_atomic_min_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_F32)
flat_atomic_max_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_F32)
flat_atomic_add_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F32)
global_load_u8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_U8)
global_load_i8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_I8)
global_load_u16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_U16)
global_load_i16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_I16)
global_load_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_B32)
global_load_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_B64)
global_load_b96 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_B96)
global_load_b128 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_B128)
global_store_b8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B8)
global_store_b16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B16)
global_store_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B32)
global_store_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B64)
global_store_b96 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B96)
global_store_b128 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_B128)
global_load_d16_u8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_U8)
global_load_d16_i8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_I8)
global_load_d16_b16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_B16)
global_load_d16_hi_u8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_HI_U8)
global_load_d16_hi_i8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_HI_I8)
global_load_d16_hi_b16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_D16_HI_B16)
global_store_d16_hi_b8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_D16_HI_B8)
global_store_d16_hi_b16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_D16_HI_B16)
global_load_addtid_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_ADDTID_B32)
global_store_addtid_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_STORE_ADDTID_B32)
global_load_lds_addtid_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_ADDTID_B32)
global_load_lds_u8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_U8)
global_load_lds_i8 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_I8)
global_load_lds_u16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_U16)
global_load_lds_i16 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_I16)
global_load_lds_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_LOAD_LDS_B32)
global_atomic_swap_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_SWAP_B32)
global_atomic_cmpswap_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32)
global_atomic_add_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_ADD_U32)
global_atomic_sub_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_SUB_U32)
global_atomic_csub_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_CSUB_U32)
global_atomic_min_i32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MIN_I32)
global_atomic_min_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MIN_U32)
global_atomic_max_i32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MAX_I32)
global_atomic_max_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MAX_U32)
global_atomic_and_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_AND_B32)
global_atomic_or_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_OR_B32)
global_atomic_xor_b32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_XOR_B32)
global_atomic_inc_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_INC_U32)
global_atomic_dec_u32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_DEC_U32)
global_atomic_swap_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_SWAP_B64)
global_atomic_cmpswap_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64)
global_atomic_add_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_ADD_U64)
global_atomic_sub_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_SUB_U64)
global_atomic_min_i64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MIN_I64)
global_atomic_min_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MIN_U64)
global_atomic_max_i64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MAX_I64)
global_atomic_max_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MAX_U64)
global_atomic_and_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_AND_B64)
global_atomic_or_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_OR_B64)
global_atomic_xor_b64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_XOR_B64)
global_atomic_inc_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_INC_U64)
global_atomic_dec_u64 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_DEC_U64)
global_atomic_cmpswap_f32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_F32)
global_atomic_min_f32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MIN_F32)
global_atomic_max_f32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_MAX_F32)
global_atomic_add_f32 = functools.partial(GLOBAL, GLOBALOp.GLOBAL_ATOMIC_ADD_F32)
lds_param_load = functools.partial(LDSDIR, LDSDIROp.LDS_PARAM_LOAD)
lds_direct_load = functools.partial(LDSDIR, LDSDIROp.LDS_DIRECT_LOAD)
image_load = functools.partial(MIMG, MIMGOp.IMAGE_LOAD)
image_load_mip = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP)
image_load_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK)
image_load_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK_SGN)
image_load_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK)
image_load_mip_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK_SGN)
image_store = functools.partial(MIMG, MIMGOp.IMAGE_STORE)
image_store_mip = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP)
image_store_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_PCK)
image_store_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP_PCK)
image_atomic_swap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SWAP)
image_atomic_cmpswap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_CMPSWAP)
image_atomic_add = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_ADD)
image_atomic_sub = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SUB)
image_atomic_smin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMIN)
image_atomic_umin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMIN)
image_atomic_smax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMAX)
image_atomic_umax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMAX)
image_atomic_and = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_AND)
image_atomic_or = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_OR)
image_atomic_xor = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_XOR)
image_atomic_inc = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_INC)
image_atomic_dec = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_DEC)
image_get_resinfo = functools.partial(MIMG, MIMGOp.IMAGE_GET_RESINFO)
image_msaa_load = functools.partial(MIMG, MIMGOp.IMAGE_MSAA_LOAD)
image_bvh_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH_INTERSECT_RAY)
image_bvh64_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH64_INTERSECT_RAY)
image_sample = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE)
image_sample_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D)
image_sample_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L)
image_sample_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B)
image_sample_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ)
image_sample_c = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C)
image_sample_c_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D)
image_sample_c_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L)
image_sample_c_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B)
image_sample_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ)
image_sample_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_O)
image_sample_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O)
image_sample_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L_O)
image_sample_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_O)
image_sample_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ_O)
image_sample_c_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_O)
image_sample_c_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O)
image_sample_c_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L_O)
image_sample_c_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_O)
image_sample_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ_O)
image_gather4 = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4)
image_gather4_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_L)
image_gather4_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B)
image_gather4_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ)
image_gather4_c = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C)
image_gather4_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ)
image_gather4_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_O)
image_gather4_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ_O)
image_gather4_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ_O)
image_get_lod = functools.partial(MIMG, MIMGOp.IMAGE_GET_LOD)
image_sample_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_G16)
image_sample_c_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_G16)
image_sample_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O_G16)
image_sample_c_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O_G16)
image_sample_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL)
image_sample_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL)
image_sample_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL)
image_sample_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL)
image_sample_c_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL)
image_sample_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL)
image_sample_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL_O)
image_sample_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O)
image_sample_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL_O)
image_sample_c_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL_O)
image_sample_c_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O)
image_sample_c_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL_O)
image_sample_c_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_G16)
image_sample_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O_G16)
image_sample_c_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O_G16)
image_sample_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_G16)
image_gather4_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_CL)
image_gather4_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B_CL)
image_gather4_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_CL)
image_gather4_c_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_L)
image_gather4_c_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B)
image_gather4_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B_CL)
image_gather4h = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4H)
tbuffer_load_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_X)
tbuffer_load_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XY)
tbuffer_load_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ)
tbuffer_load_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW)
tbuffer_store_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_X)
tbuffer_store_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XY)
tbuffer_store_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ)
tbuffer_store_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW)
tbuffer_load_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_X)
tbuffer_load_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XY)
tbuffer_load_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZ)
tbuffer_load_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZW)
tbuffer_store_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_X)
tbuffer_store_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XY)
tbuffer_store_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZ)
tbuffer_store_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZW)
buffer_load_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_X)
buffer_load_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XY)
buffer_load_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ)
buffer_load_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW)
buffer_store_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_X)
buffer_store_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XY)
buffer_store_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZ)
buffer_store_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZW)
buffer_load_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_X)
buffer_load_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XY)
buffer_load_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZ)
buffer_load_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZW)
buffer_store_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_X)
buffer_store_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XY)
buffer_store_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZ)
buffer_store_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZW)
buffer_load_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U8)
buffer_load_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I8)
buffer_load_u16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U16)
buffer_load_i16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I16)
buffer_load_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B32)
buffer_load_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B64)
buffer_load_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B96)
buffer_load_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B128)
buffer_store_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B8)
buffer_store_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B16)
buffer_store_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B32)
buffer_store_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B64)
buffer_store_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B96)
buffer_store_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B128)
buffer_load_d16_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_U8)
buffer_load_d16_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_I8)
buffer_load_d16_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_B16)
buffer_load_d16_hi_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_U8)
buffer_load_d16_hi_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_I8)
buffer_load_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_B16)
buffer_store_d16_hi_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B8)
buffer_store_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B16)
buffer_load_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_FORMAT_X)
buffer_store_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_FORMAT_X)
buffer_gl0_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL0_INV)
buffer_gl1_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL1_INV)
buffer_load_lds_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_U8)
buffer_load_lds_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_I8)
buffer_load_lds_u16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_U16)
buffer_load_lds_i16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_I16)
buffer_load_lds_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_B32)
buffer_load_lds_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_LDS_FORMAT_X)
buffer_atomic_swap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B32)
buffer_atomic_cmpswap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B32)
buffer_atomic_add_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U32)
buffer_atomic_sub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U32)
buffer_atomic_csub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CSUB_U32)
buffer_atomic_min_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I32)
buffer_atomic_min_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U32)
buffer_atomic_max_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I32)
buffer_atomic_max_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U32)
buffer_atomic_and_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B32)
buffer_atomic_or_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B32)
buffer_atomic_xor_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B32)
buffer_atomic_inc_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U32)
buffer_atomic_dec_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U32)
buffer_atomic_swap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B64)
buffer_atomic_cmpswap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B64)
buffer_atomic_add_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U64)
buffer_atomic_sub_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U64)
buffer_atomic_min_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I64)
buffer_atomic_min_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U64)
buffer_atomic_max_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I64)
buffer_atomic_max_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U64)
buffer_atomic_and_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B64)
buffer_atomic_or_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B64)
buffer_atomic_xor_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B64)
buffer_atomic_inc_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U64)
buffer_atomic_dec_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U64)
buffer_atomic_cmpswap_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_F32)
buffer_atomic_min_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_F32)
buffer_atomic_max_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_F32)
buffer_atomic_add_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F32)
scratch_load_u8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_U8)
scratch_load_i8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_I8)
scratch_load_u16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_U16)
scratch_load_i16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_I16)
scratch_load_b32 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_B32)
scratch_load_b64 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_B64)
scratch_load_b96 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_B96)
scratch_load_b128 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_B128)
scratch_store_b8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B8)
scratch_store_b16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B16)
scratch_store_b32 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B32)
scratch_store_b64 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B64)
scratch_store_b96 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B96)
scratch_store_b128 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_B128)
scratch_load_d16_u8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_U8)
scratch_load_d16_i8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_I8)
scratch_load_d16_b16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_B16)
scratch_load_d16_hi_u8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_HI_U8)
scratch_load_d16_hi_i8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_HI_I8)
scratch_load_d16_hi_b16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_D16_HI_B16)
scratch_store_d16_hi_b8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_D16_HI_B8)
scratch_store_d16_hi_b16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_STORE_D16_HI_B16)
scratch_load_lds_u8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_LDS_U8)
scratch_load_lds_i8 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_LDS_I8)
scratch_load_lds_u16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_LDS_U16)
scratch_load_lds_i16 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_LDS_I16)
scratch_load_lds_b32 = functools.partial(SCRATCH, SCRATCHOp.SCRATCH_LOAD_LDS_B32)
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_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_gl1_inv = functools.partial(SMEM, SMEMOp.S_GL1_INV)
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_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_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_u32 = functools.partial(SOP2, SOP2Op.S_ADD_U32)
s_sub_u32 = functools.partial(SOP2, SOP2Op.S_SUB_U32)
s_add_i32 = functools.partial(SOP2, SOP2Op.S_ADD_I32)
s_sub_i32 = functools.partial(SOP2, SOP2Op.S_SUB_I32)
s_addc_u32 = functools.partial(SOP2, SOP2Op.S_ADDC_U32)
s_subb_u32 = functools.partial(SOP2, SOP2Op.S_SUBB_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_f32 = functools.partial(SOP2, SOP2Op.S_MIN_F32)
s_max_f32 = functools.partial(SOP2, SOP2Op.S_MAX_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_f16 = functools.partial(SOP2, SOP2Op.S_MIN_F16)
s_max_f16 = functools.partial(SOP2, SOP2Op.S_MAX_F16)
s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16)
s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16)
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_cmpk_eq_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_I32)
s_cmpk_lg_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_I32)
s_cmpk_gt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_I32)
s_cmpk_ge_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_I32)
s_cmpk_lt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_I32)
s_cmpk_le_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_I32)
s_cmpk_eq_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_U32)
s_cmpk_lg_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_U32)
s_cmpk_gt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_U32)
s_cmpk_ge_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_U32)
s_cmpk_lt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_U32)
s_cmpk_le_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_U32)
s_addk_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_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_subvector_loop_begin = functools.partial(SOPK, SOPKOp.S_SUBVECTOR_LOOP_BEGIN)
s_subvector_loop_end = functools.partial(SOPK, SOPKOp.S_SUBVECTOR_LOOP_END)
s_waitcnt_vscnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VSCNT)
s_waitcnt_vmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VMCNT)
s_waitcnt_expcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_EXPCNT)
s_waitcnt_lgkmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_LGKMCNT)
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_set_inst_prefetch_distance = functools.partial(SOPP, SOPPOp.S_SET_INST_PREFETCH_DISTANCE)
s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE)
s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU)
s_waitcnt_depctr = functools.partial(SOPP, SOPPOp.S_WAITCNT_DEPCTR)
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_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_cbranch_cdbgsys = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS)
s_cbranch_cdbguser = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGUSER)
s_cbranch_cdbgsys_or_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER)
s_cbranch_cdbgsys_and_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER)
s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM)
s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED)
s_endpgm_ordered_ps_done = functools.partial(SOPP, SOPPOp.S_ENDPGM_ORDERED_PS_DONE)
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_barrier = functools.partial(SOPP, SOPPOp.S_BARRIER)
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_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32_E32)
v_dot2acc_f32_f16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2ACC_F32_F16_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_fmac_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_DX9_ZERO_F32_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_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F32_E32)
v_max_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F32_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_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_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_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_max_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F16_E32)
v_min_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_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_f_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_F16_E64)
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_t_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_F16_E64)
v_cmp_f_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_F32_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_t_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_F32_E64)
v_cmp_f_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_F64_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_t_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_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_f_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_I32_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_t_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_I32_E64)
v_cmp_f_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_U32_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_t_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_U32_E64)
v_cmp_f_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_I64_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_t_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_I64_E64)
v_cmp_f_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_F_U64_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_t_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMP_T_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_f_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_F16_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_t_f16_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_F16_E64)
v_cmpx_f_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_F32_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_t_f32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_F32_E64)
v_cmpx_f_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_F64_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_t_f64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_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_f_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_I32_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_t_i32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_I32_E64)
v_cmpx_f_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_U32_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_t_u32_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_U32_E64)
v_cmpx_f_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_I64_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_t_i64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_I64_E64)
v_cmpx_f_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_F_U64_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_t_u64_e64 = functools.partial(VOP3_SDST, VOP3Op.V_CMPX_T_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_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_fmac_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_DX9_ZERO_F32_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_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_F32_E64)
v_max_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F32_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_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_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_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_max_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F16_E64)
v_min_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_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_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_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_F32)
v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32)
v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32)
v_max3_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_F32)
v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32)
v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32)
v_med3_f32 = functools.partial(VOP3, VOP3Op.V_MED3_F32)
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_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_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_F16)
v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16)
v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16)
v_max3_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_F16)
v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16)
v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16)
v_med3_f16 = functools.partial(VOP3, VOP3Op.V_MED3_F16)
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_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F32)
v_minmax_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_F32)
v_maxmin_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F16)
v_minmax_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_F16)
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_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_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_add_f64 = functools.partial(VOP3, VOP3Op.V_ADD_F64)
v_mul_f64 = functools.partial(VOP3, VOP3Op.V_MUL_F64)
v_min_f64 = functools.partial(VOP3, VOP3Op.V_MIN_F64)
v_max_f64 = functools.partial(VOP3, VOP3Op.V_MAX_F64)
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_lshlrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64)
v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64)
v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64)
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_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_pk_min_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_F16)
v_pk_max_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_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_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_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_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_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_U64_U32)
v_mad_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_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_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F16_E32)
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_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F16_E32)
v_cmp_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F32_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_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F32_E32)
v_cmp_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F64_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_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_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_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I32_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_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I32_E32)
v_cmp_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U32_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_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U32_E32)
v_cmp_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I64_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_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I64_E32)
v_cmp_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U64_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_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_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_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F16_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_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F16_E32)
v_cmpx_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F32_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_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F32_E32)
v_cmpx_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F64_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_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_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_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I32_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_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I32_E32)
v_cmpx_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U32_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_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U32_E32)
v_cmpx_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I64_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_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I64_E32)
v_cmpx_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U64_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_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_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_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_F32)
v_dual_min_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_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)