# autogenerated from AMD ISA XML - do not edit
from tinygrad.runtime.autogen.amd.common import Fmt, OpType
from tinygrad.runtime.autogen.amd.rdna4.enum import DSOp, SMEMOp, SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VBUFFEROp, VDSDIROp, VEXPORTOp, VFLATOp, VGLOBALOp, VIMAGEOp, VINTERPOp, VOP1Op, VOP2Op, VOP3Op, VOP3POp, VOP3SDOp, VOPCOp, VOPDOp, VSAMPLEOp, VSCRATCHOp

# instruction operand info: {Op: {field: (Fmt, size_bits, OpType)}}
OPERANDS = {
  VBUFFEROp.BUFFER_ATOMIC_ADD_F32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_ADD_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_ADD_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_AND_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_AND_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_COND_SUB_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_DEC_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_DEC_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_INC_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_INC_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MAX_I32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MAX_I64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MAX_NUM_F32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MAX_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MAX_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MIN_I32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MIN_I64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MIN_NUM_F32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MIN_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_MIN_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_OR_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_OR_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_PK_ADD_BF16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_PK_ADD_F16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_SUB_CLAMP_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_SUB_U32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_SUB_U64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_SWAP_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_SWAP_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_XOR_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_ATOMIC_XOR_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_B128: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_B96: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_B16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_HI_B16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_HI_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_HI_I8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_HI_U8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_I8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_D16_U8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_I16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_I8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_U16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_LOAD_U8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B128: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B32: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B64: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_B96: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_HI_B16: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_HI_B8: {"rsrc": (Fmt.FMT_RSRC_SCRATCH, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_D16_HI_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.BUFFER_STORE_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  DSOp.DS_ADD_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_ADD_RTN_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_ADD_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_ADD_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_ADD_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_ADD_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_AND_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_AND_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_AND_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_AND_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_APPEND: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_BPERMUTE_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_BPERMUTE_FI_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_BVH_STACK_PUSH4_POP1_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B128, 128, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_BVH_STACK_PUSH8_POP1_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B256, 256, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_BVH_STACK_PUSH8_POP2_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B256, 256, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_CMPSTORE_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_CMPSTORE_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_CMPSTORE_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_CMPSTORE_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_CONDXCHG32_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_COND_SUB_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_COND_SUB_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_CONSUME: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_DEC_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_DEC_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_DEC_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_DEC_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VDSDIROp.DS_DIRECT_LOAD: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_INC_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_INC_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_INC_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_INC_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_2ADDR_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B32, 64, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_2ADDR_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B64, 128, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_2ADDR_STRIDE64_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B32, 64, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_2ADDR_STRIDE64_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B64, 128, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_ADDTID_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_B128: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B128, 128, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_B96: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B96, 96, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_I16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_I8: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_I8_D16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_I8_D16_HI: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U16_D16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U16_D16_HI: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U8: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U8_D16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  DSOp.DS_LOAD_U8_D16_HI: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_I32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_I64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MAX_NUM_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_NUM_F64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MAX_NUM_RTN_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_NUM_RTN_F64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MAX_RTN_I32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_RTN_I64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MAX_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MAX_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MAX_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_I32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_I64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_NUM_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_NUM_F64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_NUM_RTN_F32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_NUM_RTN_F64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_RTN_I32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_RTN_I64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MIN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MIN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MSKOR_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MSKOR_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_MSKOR_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_MSKOR_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_OR_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_OR_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_OR_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_OR_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  VDSDIROp.DS_PARAM_LOAD: {"attr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_ATTR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_PERMUTE_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_PK_ADD_BF16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR)},
  DSOp.DS_PK_ADD_F16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  DSOp.DS_PK_ADD_RTN_BF16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR)},
  DSOp.DS_PK_ADD_RTN_F16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  DSOp.DS_RSUB_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_RSUB_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_RSUB_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_RSUB_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_2ADDR_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B32, 64, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_2ADDR_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B64, 128, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B32, 64, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_PK2_B64, 128, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_STOREXCHG_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_STORE_2ADDR_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_2ADDR_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_STORE_2ADDR_STRIDE64_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_2ADDR_STRIDE64_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "data1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_STORE_ADDTID_B32: {"data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B128: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B128, 128, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B16: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B16_D16_HI: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK2_B16, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B8: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B8, 8, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B8_D16_HI: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_PK4_B8, 32, OpType.OPR_VGPR)},
  DSOp.DS_STORE_B96: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B96, 96, OpType.OPR_VGPR)},
  DSOp.DS_SUB_CLAMP_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_SUB_CLAMP_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_SUB_RTN_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_SUB_RTN_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_SUB_U32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  DSOp.DS_SUB_U64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  DSOp.DS_SWIZZLE_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_XOR_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_XOR_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  DSOp.DS_XOR_RTN_B32: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  DSOp.DS_XOR_RTN_B64: {"addr": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "data0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  VEXPORTOp.EXPORT: {"tgt": (Fmt.FMT_ANY, 128, OpType.OPR_TGT), "vsrc0": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc2": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc3": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_ADD_F32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_ADD_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_ADD_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_AND_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_AND_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_CMPSWAP_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_CMPSWAP_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_COND_SUB_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_DEC_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_DEC_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_INC_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_INC_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MAX_I32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MAX_I64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MAX_NUM_F32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MAX_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MAX_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MIN_I32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MIN_I64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MIN_NUM_F32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MIN_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_MIN_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_OR_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_OR_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_PK_ADD_BF16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_PK_ADD_F16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_SUB_CLAMP_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_SUB_U32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_SUB_U64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_SWAP_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_SWAP_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_XOR_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_ATOMIC_XOR_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_B128: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_B96: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_B16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_HI_B16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_HI_I8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_HI_U8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_I8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_D16_U8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_I16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_I8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_U16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_LOAD_U8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B128: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B32: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B64: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_B96: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_D16_HI_B16: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VFLATOp.FLAT_STORE_D16_HI_B8: {"vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_ADD_F32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_ADD_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_ADD_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_AND_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_AND_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_COND_SUB_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_DEC_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_DEC_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_INC_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_INC_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MAX_I32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MAX_I64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MAX_NUM_F32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MAX_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MAX_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MIN_I32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MIN_I64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MIN_NUM_F32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MIN_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_MIN_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_ORDERED_ADD_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_OR_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_OR_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_BF16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_PK_ADD_F16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_SUB_CLAMP_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_SUB_U32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_SUB_U64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_SWAP_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_SWAP_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_XOR_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_ATOMIC_XOR_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_ADDTID_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_B128: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_B96: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_BLOCK: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 1024, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_B16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_HI_B16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_HI_I8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_HI_U8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_I8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_D16_U8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_I16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_I8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_TR_B128: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_TR_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_U16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_LOAD_U8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_ADDTID_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B128: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B32: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B64: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_B96: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_BLOCK: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 1024, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_D16_HI_B16: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VGLOBALOp.GLOBAL_STORE_D16_HI_B8: {"saddr": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_ADD_FLT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_ADD_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_AND: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_CMPSWAP: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_DEC_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_INC_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MAX_FLT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MAX_INT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MAX_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MIN_FLT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MIN_INT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_MIN_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_OR: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_PK_ADD_BF16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_PK_ADD_F16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_SUB_UINT: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_SWAP: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_ATOMIC_XOR: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_BVH64_INTERSECT_RAY: {"rsrc": (Fmt.FMT_IMG_BVH, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_BVH8_INTERSECT_RAY: {"rsrc": (Fmt.FMT_IMG_BVH, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 320, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_BVH_DUAL_INTERSECT_RAY: {"rsrc": (Fmt.FMT_IMG_BVH, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 320, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_BVH_INTERSECT_RAY: {"rsrc": (Fmt.FMT_IMG_BVH, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4H: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_B: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_B_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_B: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_B_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_L: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_LZ: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_C_LZ_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_L: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_LZ: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_LZ_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GATHER4_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_GET_LOD: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_GET_RESINFO: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD_MIP: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD_MIP_PCK: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD_MIP_PCK_SGN: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD_PCK: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_LOAD_PCK_SGN: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_MSAA_LOAD: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_B: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_B_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_B_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_B_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_B: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_B_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_B_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_B_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_CL_O_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_D_O_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_L: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_LZ: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_LZ_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_L_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_C_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_CL: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_CL_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_CL_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_CL_O_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_D_O_G16: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_L: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_LZ: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_LZ_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_L_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSAMPLEOp.IMAGE_SAMPLE_O: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "samp": (Fmt.FMT_SAMP, 128, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_STORE: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_STORE_MIP: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_STORE_MIP_PCK: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VIMAGEOp.IMAGE_STORE_PCK: {"rsrc": (Fmt.FMT_IMG, 256, OpType.OPR_SREG), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_B128: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_B32: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_B64: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_B96: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_BLOCK: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 1024, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_B16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_HI_B16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_HI_I8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_HI_U8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_I8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_D16_U8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_I16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_I8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_U16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_LOAD_U8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B128: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B32: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B64: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_B96: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_BLOCK: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 1024, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_D16_HI_B16: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VSCRATCHOp.SCRATCH_STORE_D16_HI_B8: {"saddr": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "vaddr": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR), "vsrc": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  SOP2Op.S_ABSDIFF_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_ABS_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPKOp.S_ADDK_CO_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SIMM16)},
  SOP2Op.S_ADD_CO_CI_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_ADD_CO_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_ADD_CO_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_ADD_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_ADD_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_ADD_NC_U64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_ALLOC_VGPR: {"ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_AND_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_AND_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT0_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT0_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT0_WREXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT0_WREXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_AND_NOT1_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_AND_NOT1_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT1_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT1_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT1_WREXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_AND_NOT1_WREXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_AND_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_AND_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_ASHR_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_ASHR_I64: {"sdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SMEMOp.S_ATC_PROBE: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_B8, 8, OpType.OPR_SIMM8), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_ATC_PROBE_BUFFER: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_B8, 8, OpType.OPR_SIMM8), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SOP1Op.S_BARRIER_SIGNAL: {"ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC_BARRIER_ID)},
  SOP1Op.S_BARRIER_SIGNAL_ISFIRST: {"ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC_BARRIER_ID)},
  SOPPOp.S_BARRIER_WAIT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_BCNT0_I32_B32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BCNT0_I32_B64: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_BCNT1_I32_B32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BCNT1_I32_B64: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_BFE_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_BFE_I64: {"sdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_BFE_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_BFE_U64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_BFM_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_BFM_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_BITCMP0_B32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_BITCMP0_B64: {"ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_BITCMP1_B32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_BITCMP1_B64: {"ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BITREPLICATE_B64_B32: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BITSET0_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BITSET0_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BITSET1_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BITSET1_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPPOp.S_BRANCH: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOP1Op.S_BREV_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_BREV_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SMEMOp.S_BUFFER_LOAD_B128: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_B256: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 256, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_B32: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_B512: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 512, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_B64: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_B96: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 96, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_I16: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_I8: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_U16: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_LOAD_U8: {"sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_BUFFER_PREFETCH_DATA: {"ioffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM24), "sbase": (Fmt.FMT_RSRC_SCALAR, 128, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM5), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET_NOK)},
  SOPKOp.S_CALL_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_EXECNZ: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_EXECZ: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_SCC0: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_SCC1: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_VCCNZ: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOPPOp.S_CBRANCH_VCCZ: {"simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_LABEL)},
  SOP1Op.S_CEIL_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_CEIL_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPPOp.S_CLAUSE: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_CLAUSE)},
  SOP1Op.S_CLS_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CLS_I32_I64: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_CLZ_I32_U32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CLZ_I32_U64: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOPKOp.S_CMOVK_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_CMOV_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CMOV_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_EQ_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_EQ_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_EQ_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_EQ_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_EQ_U64: {"ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GE_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GE_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GE_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GE_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GT_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GT_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GT_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_GT_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LE_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LE_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LE_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LE_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LG_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LG_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LG_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LG_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LG_U64: {"ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LT_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LT_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LT_I32: {"ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_LT_U32: {"ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NEQ_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NEQ_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NGE_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NGE_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NGT_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NGT_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLE_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLE_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLG_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLG_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLT_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_NLT_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_O_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_O_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_U_F16: {"ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOPCOp.S_CMP_U_F32: {"ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_CSELECT_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_CSELECT_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_CTZ_I32_B32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CTZ_I32_B64: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_F16_F32: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_F32_F16: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_F32_I32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_F32_U32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_HI_F32_F16: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_I32_F32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_CVT_PK_RTZ_F16_F32: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_CVT_U32_F32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPPOp.S_DECPERFLEVEL: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_DELAY_ALU: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_DELAY)},
  SOPPOp.S_DENORM_MODE: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_FLOOR_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_FLOOR_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_FMAAK_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_FMAC_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_FMAC_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_FMAMK_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_GETPC_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST)},
  SOPKOp.S_GETREG_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_HWREG)},
  SOPPOp.S_INCPERFLEVEL: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SMEMOp.S_LOAD_B128: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_B256: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 256, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_B32: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_B512: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 512, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_B64: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 64, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_B96: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_ANY, 96, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_I16: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_I8: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_U16: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SMEMOp.S_LOAD_U8: {"sbase": (Fmt.FMT_BUF, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET)},
  SOP2Op.S_LSHL1_ADD_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHL2_ADD_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHL3_ADD_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHL4_ADD_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHL_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHL_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHR_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_LSHR_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MAXIMUM_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_MAXIMUM_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MAX_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MAX_NUM_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_MAX_NUM_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MAX_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MINIMUM_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_MINIMUM_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MIN_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MIN_NUM_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_MIN_NUM_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MIN_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOPKOp.S_MOVK_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_MOVRELD_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_MOVRELD_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_MOVRELSD_2_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG)},
  SOP1Op.S_MOVRELS_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG)},
  SOP1Op.S_MOVRELS_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG)},
  SOP1Op.S_MOV_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_MOV_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SSRC)},
  SOPKOp.S_MULK_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SIMM16)},
  SOP2Op.S_MUL_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_MUL_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MUL_HI_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MUL_HI_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MUL_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_MUL_U64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_NAND_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_NAND_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_NAND_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_NAND_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOPPOp.S_NOP: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOP2Op.S_NOR_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_NOR_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_NOR_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_NOR_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_NOT_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_NOT_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_OR_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_OR_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_OR_NOT0_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_OR_NOT0_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_OR_NOT1_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_OR_NOT1_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_OR_NOT1_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_OR_NOT1_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_OR_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_OR_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_PACK_HH_B32_B16: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_PACK_HL_B32_B16: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_PACK_LH_B32_B16: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_PACK_LL_B32_B16: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SSRC)},
  SMEMOp.S_PREFETCH_DATA: {"ioffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM24), "sbase": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM5), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET_NOK)},
  SMEMOp.S_PREFETCH_DATA_PC_REL: {"ioffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM24), "sdata": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM5), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET_NOK)},
  SMEMOp.S_PREFETCH_INST: {"ioffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM24), "sbase": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG), "sdata": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM5), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET_NOK)},
  SMEMOp.S_PREFETCH_INST_PC_REL: {"ioffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM24), "sdata": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SIMM5), "soffset": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SMEM_OFFSET_NOK)},
  SOP1Op.S_QUADMASK_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_QUADMASK_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_RFE_B64: {"ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG)},
  SOP1Op.S_RNDNE_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_RNDNE_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPPOp.S_ROUND_MODE: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_SENDMSG: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SENDMSG)},
  SOPPOp.S_SENDMSGHALT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SENDMSG)},
  SOP1Op.S_SENDMSG_RTN_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SENDMSG_RTN)},
  SOP1Op.S_SENDMSG_RTN_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SENDMSG_RTN)},
  SOPPOp.S_SETHALT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_SETKILL: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_SETPC_B64: {"ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG)},
  SOPPOp.S_SETPRIO: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPKOp.S_SETREG_B32: {"sdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SDST), "simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_HWREG)},
  SOPKOp.S_SETREG_IMM32_B32: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_HWREG)},
  SOP1Op.S_SEXT_I32_I16: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_SEXT_I32_I8: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SSRC)},
  SOPPOp.S_SLEEP: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SLEEP)},
  SOP1Op.S_SLEEP_VAR: {"ssrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_CO_CI_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_CO_I32: {"sdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_CO_U32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_SUB_NC_U64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_SWAPPC_B64: {"sdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SREG)},
  SOPPOp.S_TRAP: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOP1Op.S_TRUNC_F16: {"sdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SSRC)},
  SOP1Op.S_TRUNC_F32: {"sdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC)},
  SOPPOp.S_TTRACEDATA_IMM: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPKOp.S_VERSION: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VERSION)},
  SOPPOp.S_WAIT_ALU: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_WAIT_ALU)},
  SOPPOp.S_WAIT_BVHCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_DSCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_EVENT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_WAIT_EVENT)},
  SOPPOp.S_WAIT_EXPCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_KMCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_LOADCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_LOADCNT_DSCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_WAIT_MEM_DS)},
  SOPPOp.S_WAIT_SAMPLECNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_STORECNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SIMM16)},
  SOPPOp.S_WAIT_STORECNT_DSCNT: {"simm16": (Fmt.FMT_NUM_B16, 16, OpType.OPR_WAIT_MEM_DS)},
  SOP1Op.S_WQM_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_WQM_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_XNOR_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_XNOR_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_XNOR_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_XNOR_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP2Op.S_XOR_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP2Op.S_XOR_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SDST), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC), "ssrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  SOP1Op.S_XOR_SAVEEXEC_B32: {"sdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SSRC)},
  SOP1Op.S_XOR_SAVEEXEC_B64: {"sdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SREG), "ssrc0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SSRC)},
  VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_D16_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_FORMAT_X: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 32, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_FORMAT_XY: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_FORMAT_XYZ: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 96, OpType.OPR_VGPR)},
  VBUFFEROp.TBUFFER_STORE_FORMAT_XYZW: {"rsrc": (Fmt.FMT_RSRC_TYPED, 128, OpType.OPR_SREG), "soffset": (Fmt.FMT_ANY, 32, OpType.OPR_SREG_M0), "vaddr": (Fmt.FMT_ANY, 64, OpType.OPR_VGPR), "vdata": (Fmt.FMT_ANY, 128, OpType.OPR_VGPR)},
  VOP3Op.V_ADD3_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_ADD_CO_CI_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_ADD_CO_CI_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_ADD_CO_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_ADD_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_ADD_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_ADD_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_LSHL_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_NC_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_NC_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_NC_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_ADD_NC_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ADD_NC_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ALIGNBIT_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ALIGNBYTE_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_AND_B16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_AND_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_AND_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_AND_OR_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ASHRREV_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_ASHRREV_I32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ASHRREV_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_ASHRREV_I64: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_BCNT_U32_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_BFE_I32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_BFE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_BFI_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_BFM_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_BFREV_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_BFREV_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CEIL_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CEIL_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CEIL_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CEIL_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CEIL_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CEIL_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_CLS_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CLS_I32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CLZ_I32_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CLZ_I32_U32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_CLASS_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_CLASS_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_CLASS_F32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_CLASS_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_CLASS_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_CLASS_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_EQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_EQ_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_EQ_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_EQ_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_EQ_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_GT_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_GT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_GT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LG_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LG_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_LT_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_LT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_LT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NEQ_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NEQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NEQ_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NEQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NEQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NEQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NGE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NGE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NGE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NGT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NGT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NGT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NGT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NLE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLG_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLG_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NLG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_NLT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_NLT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_NLT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_O_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_O_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_O_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_O_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_O_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_O_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_U_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_U_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_U_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMPX_U_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMPX_U_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_EXEC)},
  VOPCOp.V_CMPX_U_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_CLASS_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_CLASS_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_CLASS_F32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_CLASS_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_CLASS_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_CLASS_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_EQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_EQ_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_EQ_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_EQ_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_EQ_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_GT_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_GT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_GT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LG_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LG_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LT_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_LT_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_LT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_LT_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NEQ_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NEQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NEQ_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NEQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NEQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NEQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NE_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NE_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NE_I64: {"src0": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NE_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NE_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NE_U64: {"src0": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NGE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NGE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NGE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NGT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NGT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NGT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NGT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLE_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLE_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NLE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLG_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLG_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NLG_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLT_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_NLT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_NLT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_NLT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_O_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_O_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_O_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_O_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_O_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_O_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_U_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_U_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_U_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPCOp.V_CMP_U_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CMP_U_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG)},
  VOPCOp.V_CMP_U_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CNDMASK_B16: {"src1": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_CNDMASK_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CNDMASK_B32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_COS_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_COS_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_COS_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_COS_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CTZ_I32_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CTZ_I32_B32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CUBEID_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CUBEMA_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CUBESC_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CUBETC_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F16_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F16_F32: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F16_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F16_I16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F16_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F16_U16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_BF8: {"src0": (Fmt.FMT_NUM_BF8, 8, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_BF8: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_BF8, 8, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_F16: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_FP8: {"src0": (Fmt.FMT_NUM_FP8, 8, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_FP8: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_FP8, 8, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_I32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_U32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_UBYTE0: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_UBYTE0: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_UBYTE1: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_UBYTE1: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_UBYTE2: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_UBYTE2: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F32_UBYTE3: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F32_UBYTE3: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F64_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F64_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F64_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F64_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_F64_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_F64_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_FLOOR_I32_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_FLOOR_I32_F32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_I16_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_I16_F16: {"vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_I32_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_I32_F32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_I32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_I32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_I32_I16: {"src0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_I32_I16: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_NEAREST_I32_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_NEAREST_I32_F32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_NORM_I16_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_NORM_I16_F16: {"vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_NORM_U16_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_NORM_U16_F16: {"vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_OFF_F32_I4: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_OFF_F32_I4: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_BF8_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_BF8, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_PK_F32_BF8: {"src0": (Fmt.FMT_NUM_PK2_BF8, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F32, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_F32_BF8: {"src0": (Fmt.FMT_NUM_PK2_BF8, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F32, 64, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_PK_F32_FP8: {"src0": (Fmt.FMT_NUM_PK2_FP8, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F32, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_F32_FP8: {"src0": (Fmt.FMT_NUM_PK2_FP8, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F32, 64, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_FP8_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_FP8, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_I16_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_I16_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_NORM_I16_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_NORM_I16_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_NORM_U16_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_NORM_U16_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_CVT_PK_RTZ_F16_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_RTZ_F16_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_U16_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_U16_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_PK_U8_F32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_SR_BF8_F32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_BF8, 8, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_SR_FP8_F32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_FP8, 8, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_U16_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_U16_F16: {"vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_U32_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_U32_F32: {"vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_U32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_U32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_CVT_U32_U16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_CVT_U32_U16: {"vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_DIV_FIXUP_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_DIV_FIXUP_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_DIV_FIXUP_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_DIV_FMAS_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_DIV_FMAS_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3SDOp.V_DIV_SCALE_F32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_DIV_SCALE_F64: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_DOT2_BF16_BF16: {"src1": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_BF16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_BF16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR)},
  VOP3Op.V_DOT2_F16_F16: {"src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT2_F32_BF16: {"src1": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT2_F32_F16: {"src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_F32_BF8_BF8: {"src0": (Fmt.FMT_NUM_PK4_BF8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_BF8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_F32_BF8_FP8: {"src0": (Fmt.FMT_NUM_PK4_BF8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_FP8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_F32_FP8_BF8: {"src0": (Fmt.FMT_NUM_PK4_FP8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_BF8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_F32_FP8_FP8: {"src0": (Fmt.FMT_NUM_PK4_FP8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_FP8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_I32_IU8: {"src0": (Fmt.FMT_NUM_PK4_IU8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_IU8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT4_U32_U8: {"src0": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT8_I32_IU4: {"src0": (Fmt.FMT_NUM_PK8_IU4, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK8_IU4, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_DOT8_U32_U4: {"src0": (Fmt.FMT_NUM_PK8_U4, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK8_U4, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_ADD_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_ADD_NC_U32: {"srcy0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_AND_B32: {"srcy0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_CNDMASK_B32: {"srcy0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_DOT2ACC_F32_BF16: {"srcy0": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_PK2_BF16, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_DOT2ACC_F32_F16: {"srcy0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_FMAAK_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_FMAC_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_FMAMK_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_LSHLREV_B32: {"srcy0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_MAX_NUM_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_MIN_NUM_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_MOV_B32: {"srcy0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_MUL_DX9_ZERO_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_MUL_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_SUBREV_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOPDOp.V_DUAL_SUB_F32: {"srcy0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdsty": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrcy1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_EXP_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_EXP_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_EXP_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_EXP_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FLOOR_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FLOOR_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_FLOOR_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FLOOR_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FLOOR_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_FLOOR_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP2Op.V_FMAAK_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_FMAAK_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_FMAC_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FMAC_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_FMAC_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FMAC_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_FMAMK_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_FMAMK_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FMA_DX9_ZERO_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FMA_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FMA_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FMA_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3POp.V_FMA_MIXHI_F16: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_FMA_MIXLO_F16: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_FMA_MIX_F32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FRACT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FRACT_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_FRACT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FRACT_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FRACT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_FRACT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_EXP_I16_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_EXP_I16_F16: {"vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_EXP_I32_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_EXP_I32_F32: {"vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_EXP_I32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_EXP_I32_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_MANT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_MANT_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_MANT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_MANT_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_FREXP_MANT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_FREXP_MANT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P10_F16_F32: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P10_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P10_RTZ_F16_F32: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P2_F16_F32: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P2_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VINTERPOp.V_INTERP_P2_RTZ_F16_F32: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_LDEXP_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_LDEXP_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_LDEXP_F32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LDEXP_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_LERP_U8: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_LOG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_LOG_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_LOG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LOG_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHLREV_B16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_LSHLREV_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHLREV_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_LSHLREV_B64: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_LSHLREV_B64: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_LSHL_ADD_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHL_OR_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHRREV_B16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_LSHRREV_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHRREV_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_LSHRREV_B64: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3SDOp.V_MAD_CO_I64_I32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I64, 64, OpType.OPR_VGPR)},
  VOP3SDOp.V_MAD_CO_U64_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_I32_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_I32_I24: {"src1": (Fmt.FMT_NUM_I24, 24, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I24, 24, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_U32_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAD_U32_U24: {"src1": (Fmt.FMT_NUM_U24, 24, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U24, 24, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAX3_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUM3_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUM3_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUMMINIMUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUMMINIMUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXIMUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MAXMIN_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXMIN_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAXMIN_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAXMIN_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MAX_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MAX_NUM_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MAX_NUM_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MAX_NUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_NUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MAX_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MAX_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MBCNT_HI_U32_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MBCNT_LO_U32_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MED3_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MIN3_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUM3_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUM3_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUMMAXIMUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUMMAXIMUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINIMUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MINMAX_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINMAX_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MINMAX_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MINMAX_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MIN_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MIN_NUM_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_NUM_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MIN_NUM_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_NUM_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MIN_NUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_NUM_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MIN_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MIN_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_MOVRELD_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MOVRELD_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_MOVRELSD_2_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MOVRELSD_2_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR)},
  VOP1Op.V_MOVRELSD_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MOVRELSD_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR)},
  VOP1Op.V_MOVRELS_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MOVRELS_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR)},
  VOP1Op.V_MOV_B16: {"src0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MOV_B16: {"vdst": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_MOV_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MOV_B32: {"vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MQSAD_PK_U16_U8: {"src0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MQSAD_U32_U8: {"src0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B128, 128, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B128, 128, OpType.OPR_VGPR)},
  VOP3Op.V_MSAD_U8: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MULLIT_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_DX9_ZERO_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_DX9_ZERO_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_HI_I32: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_HI_I32_I24: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_HI_I32_I24: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_HI_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_HI_U32_U24: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_HI_U32_U24: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_I32_I24: {"src0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_I32_I24: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_LO_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_LO_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_MUL_U32_U24: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_MUL_U32_U24: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_NOT_B16: {"src0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_NOT_B16: {"vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_NOT_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_NOT_B32: {"vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_OR3_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_OR_B16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_OR_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_OR_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_PACK_B32_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_PERMLANE16_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_PERMLANE16_VAR_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_PERMLANE64_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_PERMLANEX16_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_PERMLANEX16_VAR_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_PERM_B32: {"src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_ADD_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_ADD_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_ADD_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_ASHRREV_I16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP2Op.V_PK_FMAC_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_FMA_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_LSHLREV_B16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_LSHRREV_B16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAD_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAD_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAXIMUM_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAX_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAX_NUM_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MAX_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MINIMUM_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MIN_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MIN_NUM_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MIN_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MUL_F16: {"src0": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_MUL_LO_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_SUB_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP3POp.V_PK_SUB_U16: {"src0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3Op.V_QSAD_PK_U16_U8: {"src0": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_B64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_B64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_RCP_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_RCP_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_RCP_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_RCP_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_RCP_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_RCP_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_RCP_IFLAG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_RCP_IFLAG_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_READFIRSTLANE_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG)},
  VOP3Op.V_READFIRSTLANE_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG)},
  VOP3Op.V_READLANE_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC_LANESEL), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SREG)},
  VOP1Op.V_RNDNE_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_RNDNE_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_RNDNE_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_RNDNE_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_RNDNE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_RNDNE_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_RSQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_RSQ_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_RSQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_RSQ_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_RSQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_RSQ_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_SAD_HI_U8: {"src1": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SAD_U16: {"src1": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_U16, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SAD_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SAD_U8: {"src1": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK4_U8, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SAT_PK_U8_I16: {"src0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_PK2_U8, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SAT_PK_U8_I16: {"vdst": (Fmt.FMT_NUM_PK2_U8, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_PK2_I16, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SIN_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SIN_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_SIN_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SIN_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SQRT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SQRT_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_SQRT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SQRT_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SQRT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_SQRT_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP2Op.V_SUBREV_CO_CI_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_SUBREV_CO_CI_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "src2": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_SUBREV_CO_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_SUBREV_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SUBREV_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_SUBREV_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUBREV_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_SUBREV_NC_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUBREV_NC_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_SUB_CO_CI_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_SUB_CO_CI_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3SDOp.V_SUB_CO_U32: {"sdst": (Fmt.FMT_NUM_M64, 64, OpType.OPR_SREG), "src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_SUB_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_F16: {"src1": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_SUB_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_F32: {"src1": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_NC_I16: {"src1": (Fmt.FMT_NUM_I16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_NC_I32: {"src1": (Fmt.FMT_NUM_I32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_I32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_NC_U16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_SUB_NC_U32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_SUB_NC_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SWAPREL_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_SWAP_B16: {"src0": (Fmt.FMT_NUM_B16, 16, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_SWAP_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_BF16_16X16X32_BF16: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_BF16, 256, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_BF16, 128, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F16_16X16X32_F16: {"src0": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_F16, 256, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F16, 128, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_BF16: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_BF16, 256, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_BF8, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_FP8, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_F16: {"src0": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_F16, 256, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8: {"src0": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_BF8, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8: {"src0": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_FP8, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_I32_16X16X32_IU4: {"src0": (Fmt.FMT_WMMA_AB_16X16_IU4, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_IU4, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_I32_16X16X32_IU8: {"src0": (Fmt.FMT_WMMA_AB_16X16_IU8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_IU8, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_SWMMAC_I32_16X16X64_IU4: {"src0": (Fmt.FMT_WMMA_AB_16X32_IU4, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X64_IU4, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_INDEX_SET, 32, OpType.OPR_SRC_VGPR), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3Op.V_S_EXP_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SREG_LITERAL), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_EXP_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_LOG_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SREG_LITERAL), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_LOG_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_RCP_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SREG_LITERAL), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_RCP_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_RSQ_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SREG_LITERAL), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_RSQ_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_SQRT_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SREG_LITERAL), "vdst": (Fmt.FMT_NUM_PK2_F16, 32, OpType.OPR_SREG)},
  VOP3Op.V_S_SQRT_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SSRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SREG)},
  VOP3Op.V_TRIG_PREOP_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP1Op.V_TRUNC_F16: {"src0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP3Op.V_TRUNC_F16: {"vdst": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F16, 16, OpType.OPR_VGPR)},
  VOP1Op.V_TRUNC_F32: {"src0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_TRUNC_F32: {"vdst": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_F32, 32, OpType.OPR_VGPR)},
  VOP1Op.V_TRUNC_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3Op.V_TRUNC_F64: {"src0": (Fmt.FMT_NUM_F64, 64, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_F64, 64, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_BF16_16X16X16_BF16: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_BF16, 128, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_BF16, 128, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F16_16X16X16_F16: {"src0": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F16, 128, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F16, 128, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_BF16: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_BF16, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8: {"src0": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_F16: {"src0": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_F16, 128, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8: {"src0": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_BF8, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8: {"src0": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_FP8, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_F32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_I32_16X16X16_IU4: {"src0": (Fmt.FMT_WMMA_AB_16X16_IU4, 32, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_IU4, 32, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_I32_16X16X16_IU8: {"src0": (Fmt.FMT_WMMA_AB_16X16_IU8, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X16_IU8, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3POp.V_WMMA_I32_16X16X32_IU4: {"src0": (Fmt.FMT_WMMA_AB_16X32_IU4, 64, OpType.OPR_SRC_VGPR), "src1": (Fmt.FMT_WMMA_AB_16X32_IU4, 64, OpType.OPR_SRC_VGPR), "src2": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_SRC_VGPR_OR_INLINE), "vdst": (Fmt.FMT_WMMA_DC_16X16_I32, 256, OpType.OPR_VGPR)},
  VOP3Op.V_WRITELANE_B32: {"src0": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC), "src1": (Fmt.FMT_NUM_B32, 32, OpType.OPR_SSRC_LANESEL), "vdst": (Fmt.FMT_NUM_B32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_XAD_U32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP2Op.V_XNOR_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_XNOR_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_XOR3_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "src2": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_XOR_B16: {"src1": (Fmt.FMT_NUM_U16, 16, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U16, 16, OpType.OPR_VGPR)},
  VOP2Op.V_XOR_B32: {"src0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
  VOP3Op.V_XOR_B32: {"src1": (Fmt.FMT_NUM_U32, 32, OpType.OPR_SRC), "vdst": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR), "vsrc0": (Fmt.FMT_NUM_U32, 32, OpType.OPR_VGPR)},
}