//! \file
/*
**  Copyright (C) - Triton
**
**  This program is under the terms of the Apache License 2.0.
*/

#ifndef TRITON_X86SPECIFICATIONS_H
#define TRITON_X86SPECIFICATIONS_H

#include <unordered_map>
#include <string>

#include <triton/archEnums.hpp>
#include <triton/architecture.hpp>
#include <triton/dllexport.hpp>
#include <triton/register.hpp>



//! The Triton namespace
namespace triton {
/*!
 *  \addtogroup triton
 *  @{
 */

  //! The Architecture namespace
  namespace arch {
  /*!
   *  \ingroup triton
   *  \addtogroup arch
   *  @{
   */

    //! The x86 namespace
    namespace x86 {
    /*!
     *  \ingroup arch
     *  \addtogroup x86
     *  @{
     */

      //! \class x86Specifications
      /*! \brief The x86Specifications class defines specifications about the x86 and x86_64 CPU */
      class x86Specifications {
        protected:
          //! List of registers specification available for this architecture.
          std::unordered_map<triton::arch::register_e, const triton::arch::Register> id2reg;
          std::unordered_map<std::string, triton::arch::register_e> name2id;

        public:
          //! Constructor.
          TRITON_EXPORT x86Specifications(triton::arch::architecture_e);

          //! Converts a capstone's register id to a triton's register id.
          TRITON_EXPORT triton::arch::register_e capstoneRegisterToTritonRegister(triton::uint32 id) const;

          //! Converts a capstone's instruction id to a triton's instruction id.
          TRITON_EXPORT triton::uint32 capstoneInstructionToTritonInstruction(triton::uint32 id) const;

          //! Converts a capstone's prefix id to a triton's prefix id.
          TRITON_EXPORT triton::arch::x86::prefix_e capstonePrefixToTritonPrefix(triton::uint32 id) const;
      };

      //! x86 NOP instruction
      const triton::arch::Instruction nop = triton::arch::Instruction("\x90", 1);

      //! The list of opcodes.
      enum instruction_e {
        ID_INS_INVALID = 0, //!< invalid

        ID_INS_AAA, //!< AAA
        ID_INS_AAD, //!< AAD
        ID_INS_AAM, //!< AAM
        ID_INS_AAS, //!< AAS
        ID_INS_FABS, //!< FABS
        ID_INS_ADC, //!< ADC
        ID_INS_ADCX, //!< ADCX
        ID_INS_ADD, //!< ADD
        ID_INS_ADDPD, //!< ADDPD
        ID_INS_ADDPS, //!< ADDPS
        ID_INS_ADDSD, //!< ADDSD
        ID_INS_ADDSS, //!< ADDSS
        ID_INS_ADDSUBPD, //!< ADDSUBPD
        ID_INS_ADDSUBPS, //!< ADDSUBPS
        ID_INS_ADOX, //!< ADOX
        ID_INS_AESDEC, //!< AESDEC
        ID_INS_AESDECLAST, //!< AESDECLAST
        ID_INS_AESENC, //!< AESENC
        ID_INS_AESENCLAST, //!< AESENCLAST
        ID_INS_AESIMC, //!< AESIMC
        ID_INS_AESKEYGENASSIST, //!< AESKEYGENASSIST
        ID_INS_AND, //!< AND
        ID_INS_ANDN, //!< ANDN
        ID_INS_ANDNPD, //!< ANDNPD
        ID_INS_ANDNPS, //!< ANDNPS
        ID_INS_ANDPD, //!< ANDPD
        ID_INS_ANDPS, //!< ANDPS
        ID_INS_ARPL, //!< ARPL
        ID_INS_BEXTR, //!< BEXTR
        ID_INS_BLCFILL, //!< BLCFILL
        ID_INS_BLCI, //!< BLCI
        ID_INS_BLCIC, //!< BLCIC
        ID_INS_BLCMSK, //!< BLCMSK
        ID_INS_BLCS, //!< BLCS
        ID_INS_BLENDPD, //!< BLENDPD
        ID_INS_BLENDPS, //!< BLENDPS
        ID_INS_BLENDVPD, //!< BLENDVPD
        ID_INS_BLENDVPS, //!< BLENDVPS
        ID_INS_BLSFILL, //!< BLSFILL
        ID_INS_BLSI, //!< BLSI
        ID_INS_BLSIC, //!< BLSIC
        ID_INS_BLSMSK, //!< BLSMSK
        ID_INS_BLSR, //!< BLSR
        ID_INS_BOUND, //!< BOUND
        ID_INS_BSF, //!< BSF
        ID_INS_BSR, //!< BSR
        ID_INS_BSWAP, //!< BSWAP
        ID_INS_BT, //!< BT
        ID_INS_BTC, //!< BTC
        ID_INS_BTR, //!< BTR
        ID_INS_BTS, //!< BTS
        ID_INS_BZHI, //!< BZHI
        ID_INS_CALL, //!< CALL
        ID_INS_CBW, //!< CBW
        ID_INS_CDQ, //!< CDQ
        ID_INS_CDQE, //!< CDQE
        ID_INS_CLAC, //!< CLAC
        ID_INS_CLC, //!< CLC
        ID_INS_CLD, //!< CLD
        ID_INS_CLFLUSH, //!< CLFLUSH
        ID_INS_CLGI, //!< CLGI
        ID_INS_CLI, //!< CLI
        ID_INS_CLTS, //!< CLTS
        ID_INS_CMC, //!< CMC
        ID_INS_CMOVA, //!< CMOVA
        ID_INS_CMOVAE, //!< CMOVAE
        ID_INS_CMOVB, //!< CMOVB
        ID_INS_CMOVBE, //!< CMOVBE
        ID_INS_CMOVE, //!< CMOVE
        ID_INS_CMOVG, //!< CMOVG
        ID_INS_CMOVGE, //!< CMOVGE
        ID_INS_CMOVL, //!< CMOVL
        ID_INS_CMOVLE, //!< CMOVLE
        ID_INS_CMOVNE, //!< CMOVNE
        ID_INS_CMOVNO, //!< CMOVNO
        ID_INS_CMOVNP, //!< CMOVNP
        ID_INS_CMOVNS, //!< CMOVNS
        ID_INS_CMOVO, //!< CMOVO
        ID_INS_CMOVP, //!< CMOVP
        ID_INS_CMOVS, //!< CMOVS
        ID_INS_CMP, //!< CMP
        ID_INS_CMPPD, //!< CMPPD
        ID_INS_CMPPS, //!< CMPPS
        ID_INS_CMPSB, //!< CMPSB
        ID_INS_CMPSD, //!< CMPSD
        ID_INS_CMPSQ, //!< CMPSQ
        ID_INS_CMPSS, //!< CMPSS
        ID_INS_CMPSW, //!< CMPSW
        ID_INS_CMPXCHG, //!< CMPXCHG
        ID_INS_CMPXCHG16B, //!< CMPXCHG16B
        ID_INS_CMPXCHG8B, //!< CMPXCHG8B
        ID_INS_COMISD, //!< COMISD
        ID_INS_COMISS, //!< COMISS
        ID_INS_CPUID, //!< CPUID
        ID_INS_CQO, //!< CQO
        ID_INS_CRC32, //!< CRC32
        ID_INS_CVTDQ2PD, //!< CVTDQ2PD
        ID_INS_CVTDQ2PS, //!< CVTDQ2PS
        ID_INS_CVTPD2DQ, //!< CVTPD2DQ
        ID_INS_CVTPD2PI, //!< CVTPD2PI
        ID_INS_CVTPD2PS, //!< CVTPD2PS
        ID_INS_CVTPI2PD, //!< CVTPI2PD
        ID_INS_CVTPI2PS, //!< CVTPI2PS
        ID_INS_CVTPS2DQ, //!< CVTPS2DQ
        ID_INS_CVTPS2PD, //!< CVTPS2PD
        ID_INS_CVTPS2PI, //!< CVTPS2PI
        ID_INS_CVTSD2SI, //!< CVTSD2SI
        ID_INS_CVTSD2SS, //!< CVTSD2SS
        ID_INS_CVTSI2SD, //!< CVTSI2SD
        ID_INS_CVTSI2SS, //!< CVTSI2SS
        ID_INS_CVTSS2SD, //!< CVTSS2SD
        ID_INS_CVTSS2SI, //!< CVTSS2SI
        ID_INS_CVTTPD2DQ, //!< CVTTPD2DQ
        ID_INS_CVTTPD2PI, //!< CVTTPD2PI
        ID_INS_CVTTPS2DQ, //!< CVTTPS2DQ
        ID_INS_CVTTPS2PI, //!< CVTTPS2PI
        ID_INS_CVTTSD2SI, //!< CVTTSD2SI
        ID_INS_CVTTSS2SI, //!< CVTTSS2SI
        ID_INS_CWD, //!< CWD
        ID_INS_CWDE, //!< CWDE
        ID_INS_DAA, //!< DAA
        ID_INS_DAS, //!< DAS
        ID_INS_DATA16, //!< DATA16
        ID_INS_DEC, //!< DEC
        ID_INS_DIV, //!< DIV
        ID_INS_DIVPD, //!< DIVPD
        ID_INS_DIVPS, //!< DIVPS
        ID_INS_DIVSD, //!< DIVSD
        ID_INS_DIVSS, //!< DIVSS
        ID_INS_DPPD, //!< DPPD
        ID_INS_DPPS, //!< DPPS
        ID_INS_EMMS, //!< EMMS
        ID_INS_ENCLS, //!< ENCLS
        ID_INS_ENCLU, //!< ENCLU
        ID_INS_ENDBR32, //!< ENDBR32
        ID_INS_ENDBR64, //!< ENDBR64
        ID_INS_ENTER, //!< ENTER
        ID_INS_EXTRACTPS, //!< EXTRACTPS
        ID_INS_EXTRQ, //!< EXTRQ
        ID_INS_F2XM1, //!< F2XM1
        ID_INS_FADD, //!< FADD
        ID_INS_FADDP, //!< FADDP
        ID_INS_FBLD, //!< FBLD
        ID_INS_FBSTP, //!< FBSTP
        ID_INS_FCHS, //!< FCHS
        ID_INS_FCMOVB, //!< FCMOVB
        ID_INS_FCMOVBE, //!< FCMOVBE
        ID_INS_FCMOVE, //!< FCMOVE
        ID_INS_FCMOVNB, //!< FCMOVNB
        ID_INS_FCMOVNBE, //!< FCMOVNBE
        ID_INS_FCMOVNE, //!< FCMOVNE
        ID_INS_FCMOVNU, //!< FCMOVNU
        ID_INS_FCMOVU, //!< FCMOVU
        ID_INS_FCOM, //!< FCOM
        ID_INS_FCOMI, //!< FCOMI
        ID_INS_FCOMP, //!< FCOMP
        ID_INS_FCOMPI, //!< FCOMPI
        ID_INS_FCOMPP, //!< FCOMPP
        ID_INS_FCOS, //!< FCOS
        ID_INS_FDECSTP, //!< FDECSTP
        ID_INS_FDIV, //!< FDIV
        ID_INS_FDIVP, //!< FDIVP
        ID_INS_FDIVR, //!< FDIVR
        ID_INS_FDIVRP, //!< FDIVRP
        ID_INS_FEMMS, //!< FEMMS
        ID_INS_FFREE, //!< FFREE
        ID_INS_FIADD, //!< FIADD
        ID_INS_FICOM, //!< FICOM
        ID_INS_FICOMP, //!< FICOMP
        ID_INS_FIDIV, //!< FIDIV
        ID_INS_FIDIVR, //!< FIDIVR
        ID_INS_FILD, //!< FILD
        ID_INS_FIMUL, //!< FIMUL
        ID_INS_FINCSTP, //!< FINCSTP
        ID_INS_FIST, //!< FIST
        ID_INS_FISTP, //!< FISTP
        ID_INS_FISTTP, //!< FISTTP
        ID_INS_FISUB, //!< FISUB
        ID_INS_FISUBR, //!< FISUBR
        ID_INS_FLD, //!< FLD
        ID_INS_FLD1, //!< FLD1
        ID_INS_FLDCW, //!< FLDCW
        ID_INS_FLDENV, //!< FLDENV
        ID_INS_FLDL2E, //!< FLDL2E
        ID_INS_FLDL2T, //!< FLDL2T
        ID_INS_FLDLG2, //!< FLDLG2
        ID_INS_FLDLN2, //!< FLDLN2
        ID_INS_FLDPI, //!< FLDPI
        ID_INS_FLDZ, //!< FLDZ
        ID_INS_FMUL, //!< FMUL
        ID_INS_FMULP, //!< FMULP
        ID_INS_FNCLEX, //!< FNCLEX
        ID_INS_FNINIT, //!< FNINIT
        ID_INS_FNOP, //!< FNOP
        ID_INS_FNSAVE, //!< FNSAVE
        ID_INS_FNSTCW, //!< FNSTCW
        ID_INS_FNSTENV, //!< FNSTENV
        ID_INS_FNSTSW, //!< FNSTSW
        ID_INS_FPATAN, //!< FPATAN
        ID_INS_FPREM, //!< FPREM
        ID_INS_FPREM1, //!< FPREM1
        ID_INS_FPTAN, //!< FPTAN
        ID_INS_FRNDINT, //!< FRNDINT
        ID_INS_FRSTOR, //!< FRSTOR
        ID_INS_FSCALE, //!< FSCALE
        ID_INS_FSETPM, //!< FSETPM
        ID_INS_FSIN, //!< FSIN
        ID_INS_FSINCOS, //!< FSINCOS
        ID_INS_FSQRT, //!< FSQRT
        ID_INS_FST, //!< FST
        ID_INS_FSTP, //!< FSTP
        ID_INS_FSTPNCE, //!< FSTPNCE
        ID_INS_FSUB, //!< FSUB
        ID_INS_FSUBP, //!< FSUBP
        ID_INS_FSUBR, //!< FSUBR
        ID_INS_FSUBRP, //!< FSUBRP
        ID_INS_FTST, //!< FTST
        ID_INS_FUCOM, //!< FUCOM
        ID_INS_FUCOMI, //!< FUCOMI
        ID_INS_FUCOMP, //!< FUCOMP
        ID_INS_FUCOMPI, //!< FUCOMPI
        ID_INS_FUCOMPP, //!< FUCOMPP
        ID_INS_FXAM, //!< FXAM
        ID_INS_FXCH, //!< FXCH
        ID_INS_FXRSTOR, //!< FXRSTOR
        ID_INS_FXRSTOR64, //!< FXRSTOR64
        ID_INS_FXSAVE, //!< FXSAVE
        ID_INS_FXSAVE64, //!< FXSAVE64
        ID_INS_FXTRACT, //!< FXTRACT
        ID_INS_FYL2X, //!< FYL2X
        ID_INS_FYL2XP1, //!< FYL2XP1
        ID_INS_GETSEC, //!< GETSEC
        ID_INS_HADDPD, //!< HADDPD
        ID_INS_HADDPS, //!< HADDPS
        ID_INS_HLT, //!< HLT
        ID_INS_HSUBPD, //!< HSUBPD
        ID_INS_HSUBPS, //!< HSUBPS
        ID_INS_IDIV, //!< IDIV
        ID_INS_IMUL, //!< IMUL
        ID_INS_IN, //!< IN
        ID_INS_INC, //!< INC
        ID_INS_INSB, //!< INSB
        ID_INS_INSD, //!< INSD
        ID_INS_INSERTPS, //!< INSERTPS
        ID_INS_INSERTQ, //!< INSERTQ
        ID_INS_INSW, //!< INSW
        ID_INS_INT, //!< INT
        ID_INS_INT1, //!< INT1
        ID_INS_INT3, //!< INT3
        ID_INS_INTO, //!< INTO
        ID_INS_INVD, //!< INVD
        ID_INS_INVEPT, //!< INVEPT
        ID_INS_INVLPG, //!< INVLPG
        ID_INS_INVLPGA, //!< INVLPGA
        ID_INS_INVPCID, //!< INVPCID
        ID_INS_INVVPID, //!< INVVPID
        ID_INS_IRET, //!< IRET
        ID_INS_IRETD, //!< IRETD
        ID_INS_IRETQ, //!< IRETQ
        ID_INS_JA, //!< JA
        ID_INS_JAE, //!< JAE
        ID_INS_JB, //!< JB
        ID_INS_JBE, //!< JBE
        ID_INS_JCXZ, //!< JCXZ
        ID_INS_JE, //!< JE
        ID_INS_JECXZ, //!< JECXZ
        ID_INS_JG, //!< JG
        ID_INS_JGE, //!< JGE
        ID_INS_JL, //!< JL
        ID_INS_JLE, //!< JLE
        ID_INS_JMP, //!< JMP
        ID_INS_JNE, //!< JNE
        ID_INS_JNO, //!< JNO
        ID_INS_JNP, //!< JNP
        ID_INS_JNS, //!< JNS
        ID_INS_JO, //!< JO
        ID_INS_JP, //!< JP
        ID_INS_JRCXZ, //!< JRCXZ
        ID_INS_JS, //!< JS
        ID_INS_KANDB, //!< KANDB
        ID_INS_KANDD, //!< KANDD
        ID_INS_KANDNB, //!< KANDNB
        ID_INS_KANDND, //!< KANDND
        ID_INS_KANDNQ, //!< KANDNQ
        ID_INS_KANDNW, //!< KANDNW
        ID_INS_KANDQ, //!< KANDQ
        ID_INS_KANDW, //!< KANDW
        ID_INS_KMOVB, //!< KMOVB
        ID_INS_KMOVD, //!< KMOVD
        ID_INS_KMOVQ, //!< KMOVQ
        ID_INS_KMOVW, //!< KMOVW
        ID_INS_KNOTB, //!< KNOTB
        ID_INS_KNOTD, //!< KNOTD
        ID_INS_KNOTQ, //!< KNOTQ
        ID_INS_KNOTW, //!< KNOTW
        ID_INS_KORB, //!< KORB
        ID_INS_KORD, //!< KORD
        ID_INS_KORQ, //!< KORQ
        ID_INS_KORTESTW, //!< KORTESTW
        ID_INS_KORW, //!< KORW
        ID_INS_KSHIFTLW, //!< KSHIFTLW
        ID_INS_KSHIFTRW, //!< KSHIFTRW
        ID_INS_KUNPCKBW, //!< KUNPCKBW
        ID_INS_KXNORB, //!< KXNORB
        ID_INS_KXNORD, //!< KXNORD
        ID_INS_KXNORQ, //!< KXNORQ
        ID_INS_KXNORW, //!< KXNORW
        ID_INS_KXORB, //!< KXORB
        ID_INS_KXORD, //!< KXORD
        ID_INS_KXORQ, //!< KXORQ
        ID_INS_KXORW, //!< KXORW
        ID_INS_LAHF, //!< LAHF
        ID_INS_LAR, //!< LAR
        ID_INS_LCALL, //!< LCALL
        ID_INS_LDDQU, //!< LDDQU
        ID_INS_LDMXCSR, //!< LDMXCSR
        ID_INS_LDS, //!< LDS
        ID_INS_LEA, //!< LEA
        ID_INS_LEAVE, //!< LEAVE
        ID_INS_LES, //!< LES
        ID_INS_LFENCE, //!< LFENCE
        ID_INS_LFS, //!< LFS
        ID_INS_LGDT, //!< LGDT
        ID_INS_LGS, //!< LGS
        ID_INS_LIDT, //!< LIDT
        ID_INS_LJMP, //!< LJMP
        ID_INS_LLDT, //!< LLDT
        ID_INS_LMSW, //!< LMSW
        ID_INS_LODSB, //!< LODSB
        ID_INS_LODSD, //!< LODSD
        ID_INS_LODSQ, //!< LODSQ
        ID_INS_LODSW, //!< LODSW
        ID_INS_LOOP, //!< LOOP
        ID_INS_LOOPE, //!< LOOPE
        ID_INS_LOOPNE, //!< LOOPNE
        ID_INS_LSL, //!< LSL
        ID_INS_LSS, //!< LSS
        ID_INS_LTR, //!< LTR
        ID_INS_LZCNT, //!< LZCNT
        ID_INS_MASKMOVDQU, //!< MASKMOVDQU
        ID_INS_MASKMOVQ, //!< MASKMOVQ
        ID_INS_MAXPD, //!< MAXPD
        ID_INS_MAXPS, //!< MAXPS
        ID_INS_MAXSD, //!< MAXSD
        ID_INS_MAXSS, //!< MAXSS
        ID_INS_MFENCE, //!< MFENCE
        ID_INS_MINPD, //!< MINPD
        ID_INS_MINPS, //!< MINPS
        ID_INS_MINSD, //!< MINSD
        ID_INS_MINSS, //!< MINSS
        ID_INS_MONITOR, //!< MONITOR
        ID_INS_MONTMUL, //!< MONTMUL
        ID_INS_MOV, //!< MOV
        ID_INS_MOVABS, //!< MOVABS
        ID_INS_MOVAPD, //!< MOVAPD
        ID_INS_MOVAPS, //!< MOVAPS
        ID_INS_MOVBE, //!< MOVBE
        ID_INS_MOVD, //!< MOVD
        ID_INS_MOVDDUP, //!< MOVDDUP
        ID_INS_MOVDQ2Q, //!< MOVDQ2Q
        ID_INS_MOVDQA, //!< MOVDQA
        ID_INS_MOVDQU, //!< MOVDQU
        ID_INS_MOVHLPS, //!< MOVHLPS
        ID_INS_MOVHPD, //!< MOVHPD
        ID_INS_MOVHPS, //!< MOVHPS
        ID_INS_MOVLHPS, //!< MOVLHPS
        ID_INS_MOVLPD, //!< MOVLPD
        ID_INS_MOVLPS, //!< MOVLPS
        ID_INS_MOVMSKPD, //!< MOVMSKPD
        ID_INS_MOVMSKPS, //!< MOVMSKPS
        ID_INS_MOVNTDQ, //!< MOVNTDQ
        ID_INS_MOVNTDQA, //!< MOVNTDQA
        ID_INS_MOVNTI, //!< MOVNTI
        ID_INS_MOVNTPD, //!< MOVNTPD
        ID_INS_MOVNTPS, //!< MOVNTPS
        ID_INS_MOVNTQ, //!< MOVNTQ
        ID_INS_MOVNTSD, //!< MOVNTSD
        ID_INS_MOVNTSS, //!< MOVNTSS
        ID_INS_MOVQ, //!< MOVQ
        ID_INS_MOVQ2DQ, //!< MOVQ2DQ
        ID_INS_MOVSB, //!< MOVSB
        ID_INS_MOVSD, //!< MOVSD
        ID_INS_MOVSHDUP, //!< MOVSHDUP
        ID_INS_MOVSLDUP, //!< MOVSLDUP
        ID_INS_MOVSQ, //!< MOVSQ
        ID_INS_MOVSS, //!< MOVSS
        ID_INS_MOVSW, //!< MOVSW
        ID_INS_MOVSX, //!< MOVSX
        ID_INS_MOVSXD, //!< MOVSXD
        ID_INS_MOVUPD, //!< MOVUPD
        ID_INS_MOVUPS, //!< MOVUPS
        ID_INS_MOVZX, //!< MOVZX
        ID_INS_MPSADBW, //!< MPSADBW
        ID_INS_MUL, //!< MUL
        ID_INS_MULPD, //!< MULPD
        ID_INS_MULPS, //!< MULPS
        ID_INS_MULSD, //!< MULSD
        ID_INS_MULSS, //!< MULSS
        ID_INS_MULX, //!< MULX
        ID_INS_MWAIT, //!< MWAIT
        ID_INS_NEG, //!< NEG
        ID_INS_NOP, //!< NOP
        ID_INS_NOT, //!< NOT
        ID_INS_OR, //!< OR
        ID_INS_ORPD, //!< ORPD
        ID_INS_ORPS, //!< ORPS
        ID_INS_OUT, //!< OUT
        ID_INS_OUTSB, //!< OUTSB
        ID_INS_OUTSD, //!< OUTSD
        ID_INS_OUTSW, //!< OUTSW
        ID_INS_PABSB, //!< PABSB
        ID_INS_PABSD, //!< PABSD
        ID_INS_PABSW, //!< PABSW
        ID_INS_PACKSSDW, //!< PACKSSDW
        ID_INS_PACKSSWB, //!< PACKSSWB
        ID_INS_PACKUSDW, //!< PACKUSDW
        ID_INS_PACKUSWB, //!< PACKUSWB
        ID_INS_PADDB, //!< PADDB
        ID_INS_PADDD, //!< PADDD
        ID_INS_PADDQ, //!< PADDQ
        ID_INS_PADDSB, //!< PADDSB
        ID_INS_PADDSW, //!< PADDSW
        ID_INS_PADDUSB, //!< PADDUSB
        ID_INS_PADDUSW, //!< PADDUSW
        ID_INS_PADDW, //!< PADDW
        ID_INS_PALIGNR, //!< PALIGNR
        ID_INS_PAND, //!< PAND
        ID_INS_PANDN, //!< PANDN
        ID_INS_PAUSE, //!< PAUSE
        ID_INS_PAVGB, //!< PAVGB
        ID_INS_PAVGUSB, //!< PAVGUSB
        ID_INS_PAVGW, //!< PAVGW
        ID_INS_PBLENDVB, //!< PBLENDVB
        ID_INS_PBLENDW, //!< PBLENDW
        ID_INS_PCLMULQDQ, //!< PCLMULQDQ
        ID_INS_PCMPEQB, //!< PCMPEQB
        ID_INS_PCMPEQD, //!< PCMPEQD
        ID_INS_PCMPEQQ, //!< PCMPEQQ
        ID_INS_PCMPEQW, //!< PCMPEQW
        ID_INS_PCMPESTRI, //!< PCMPESTRI
        ID_INS_PCMPESTRM, //!< PCMPESTRM
        ID_INS_PCMPGTB, //!< PCMPGTB
        ID_INS_PCMPGTD, //!< PCMPGTD
        ID_INS_PCMPGTQ, //!< PCMPGTQ
        ID_INS_PCMPGTW, //!< PCMPGTW
        ID_INS_PCMPISTRI, //!< PCMPISTRI
        ID_INS_PCMPISTRM, //!< PCMPISTRM
        ID_INS_PDEP, //!< PDEP
        ID_INS_PEXT, //!< PEXT
        ID_INS_PEXTRB, //!< PEXTRB
        ID_INS_PEXTRD, //!< PEXTRD
        ID_INS_PEXTRQ, //!< PEXTRQ
        ID_INS_PEXTRW, //!< PEXTRW
        ID_INS_PF2ID, //!< PF2ID
        ID_INS_PF2IW, //!< PF2IW
        ID_INS_PFACC, //!< PFACC
        ID_INS_PFADD, //!< PFADD
        ID_INS_PFCMPEQ, //!< PFCMPEQ
        ID_INS_PFCMPGE, //!< PFCMPGE
        ID_INS_PFCMPGT, //!< PFCMPGT
        ID_INS_PFMAX, //!< PFMAX
        ID_INS_PFMIN, //!< PFMIN
        ID_INS_PFMUL, //!< PFMUL
        ID_INS_PFNACC, //!< PFNACC
        ID_INS_PFPNACC, //!< PFPNACC
        ID_INS_PFRCP, //!< PFRCP
        ID_INS_PFRCPIT1, //!< PFRCPIT1
        ID_INS_PFRCPIT2, //!< PFRCPIT2
        ID_INS_PFRSQIT1, //!< PFRSQIT1
        ID_INS_PFRSQRT, //!< PFRSQRT
        ID_INS_PFSUB, //!< PFSUB
        ID_INS_PFSUBR, //!< PFSUBR
        ID_INS_PHADDD, //!< PHADDD
        ID_INS_PHADDSW, //!< PHADDSW
        ID_INS_PHADDW, //!< PHADDW
        ID_INS_PHMINPOSUW, //!< PHMINPOSUW
        ID_INS_PHSUBD, //!< PHSUBD
        ID_INS_PHSUBSW, //!< PHSUBSW
        ID_INS_PHSUBW, //!< PHSUBW
        ID_INS_PI2FD, //!< PI2FD
        ID_INS_PI2FW, //!< PI2FW
        ID_INS_PINSRB, //!< PINSRB
        ID_INS_PINSRD, //!< PINSRD
        ID_INS_PINSRQ, //!< PINSRQ
        ID_INS_PINSRW, //!< PINSRW
        ID_INS_PMADDUBSW, //!< PMADDUBSW
        ID_INS_PMADDWD, //!< PMADDWD
        ID_INS_PMAXSB, //!< PMAXSB
        ID_INS_PMAXSD, //!< PMAXSD
        ID_INS_PMAXSW, //!< PMAXSW
        ID_INS_PMAXUB, //!< PMAXUB
        ID_INS_PMAXUD, //!< PMAXUD
        ID_INS_PMAXUW, //!< PMAXUW
        ID_INS_PMINSB, //!< PMINSB
        ID_INS_PMINSD, //!< PMINSD
        ID_INS_PMINSW, //!< PMINSW
        ID_INS_PMINUB, //!< PMINUB
        ID_INS_PMINUD, //!< PMINUD
        ID_INS_PMINUW, //!< PMINUW
        ID_INS_PMOVMSKB, //!< PMOVMSKB
        ID_INS_PMOVSXBD, //!< PMOVSXBD
        ID_INS_PMOVSXBQ, //!< PMOVSXBQ
        ID_INS_PMOVSXBW, //!< PMOVSXBW
        ID_INS_PMOVSXDQ, //!< PMOVSXDQ
        ID_INS_PMOVSXWD, //!< PMOVSXWD
        ID_INS_PMOVSXWQ, //!< PMOVSXWQ
        ID_INS_PMOVZXBD, //!< PMOVZXBD
        ID_INS_PMOVZXBQ, //!< PMOVZXBQ
        ID_INS_PMOVZXBW, //!< PMOVZXBW
        ID_INS_PMOVZXDQ, //!< PMOVZXDQ
        ID_INS_PMOVZXWD, //!< PMOVZXWD
        ID_INS_PMOVZXWQ, //!< PMOVZXWQ
        ID_INS_PMULDQ, //!< PMULDQ
        ID_INS_PMULHRSW, //!< PMULHRSW
        ID_INS_PMULHRW, //!< PMULHRW
        ID_INS_PMULHUW, //!< PMULHUW
        ID_INS_PMULHW, //!< PMULHW
        ID_INS_PMULLD, //!< PMULLD
        ID_INS_PMULLW, //!< PMULLW
        ID_INS_PMULUDQ, //!< PMULUDQ
        ID_INS_POP, //!< POP
        ID_INS_POPAL, //!< POPAL
        ID_INS_POPAW, //!< POPAW
        ID_INS_POPCNT, //!< POPCNT
        ID_INS_POPF, //!< POPF
        ID_INS_POPFD, //!< POPFD
        ID_INS_POPFQ, //!< POPFQ
        ID_INS_POR, //!< POR
        ID_INS_PREFETCH, //!< PREFETCH
        ID_INS_PREFETCHNTA, //!< PREFETCHNTA
        ID_INS_PREFETCHT0, //!< PREFETCHT0
        ID_INS_PREFETCHT1, //!< PREFETCHT1
        ID_INS_PREFETCHT2, //!< PREFETCHT2
        ID_INS_PREFETCHW, //!< PREFETCHW
        ID_INS_PSADBW, //!< PSADBW
        ID_INS_PSHUFB, //!< PSHUFB
        ID_INS_PSHUFD, //!< PSHUFD
        ID_INS_PSHUFHW, //!< PSHUFHW
        ID_INS_PSHUFLW, //!< PSHUFLW
        ID_INS_PSHUFW, //!< PSHUFW
        ID_INS_PSIGNB, //!< PSIGNB
        ID_INS_PSIGND, //!< PSIGND
        ID_INS_PSIGNW, //!< PSIGNW
        ID_INS_PSLLD, //!< PSLLD
        ID_INS_PSLLDQ, //!< PSLLDQ
        ID_INS_PSLLQ, //!< PSLLQ
        ID_INS_PSLLW, //!< PSLLW
        ID_INS_PSRAD, //!< PSRAD
        ID_INS_PSRAW, //!< PSRAW
        ID_INS_PSRLD, //!< PSRLD
        ID_INS_PSRLDQ, //!< PSRLDQ
        ID_INS_PSRLQ, //!< PSRLQ
        ID_INS_PSRLW, //!< PSRLW
        ID_INS_PSUBB, //!< PSUBB
        ID_INS_PSUBD, //!< PSUBD
        ID_INS_PSUBQ, //!< PSUBQ
        ID_INS_PSUBSB, //!< PSUBSB
        ID_INS_PSUBSW, //!< PSUBSW
        ID_INS_PSUBUSB, //!< PSUBUSB
        ID_INS_PSUBUSW, //!< PSUBUSW
        ID_INS_PSUBW, //!< PSUBW
        ID_INS_PSWAPD, //!< PSWAPD
        ID_INS_PTEST, //!< PTEST
        ID_INS_PUNPCKHBW, //!< PUNPCKHBW
        ID_INS_PUNPCKHDQ, //!< PUNPCKHDQ
        ID_INS_PUNPCKHQDQ, //!< PUNPCKHQDQ
        ID_INS_PUNPCKHWD, //!< PUNPCKHWD
        ID_INS_PUNPCKLBW, //!< PUNPCKLBW
        ID_INS_PUNPCKLDQ, //!< PUNPCKLDQ
        ID_INS_PUNPCKLQDQ, //!< PUNPCKLQDQ
        ID_INS_PUNPCKLWD, //!< PUNPCKLWD
        ID_INS_PUSH, //!< PUSH
        ID_INS_PUSHAL, //!< PUSHAL
        ID_INS_PUSHAW, //!< PUSHAW
        ID_INS_PUSHF, //!< PUSHF
        ID_INS_PUSHFD, //!< PUSHFD
        ID_INS_PUSHFQ, //!< PUSHFQ
        ID_INS_PXOR, //!< PXOR
        ID_INS_RCL, //!< RCL
        ID_INS_RCPPS, //!< RCPPS
        ID_INS_RCPSS, //!< RCPSS
        ID_INS_RCR, //!< RCR
        ID_INS_RDFSBASE, //!< RDFSBASE
        ID_INS_RDGSBASE, //!< RDGSBASE
        ID_INS_RDMSR, //!< RDMSR
        ID_INS_RDPMC, //!< RDPMC
        ID_INS_RDRAND, //!< RDRAND
        ID_INS_RDSEED, //!< RDSEED
        ID_INS_RDTSC, //!< RDTSC
        ID_INS_RDTSCP, //!< RDTSCP
        ID_INS_RET, //!< RET
        ID_INS_RETF, //!< RETF
        ID_INS_RETFQ, //!< RETFQ
        ID_INS_ROL, //!< ROL
        ID_INS_ROR, //!< ROR
        ID_INS_RORX, //!< RORX
        ID_INS_ROUNDPD, //!< ROUNDPD
        ID_INS_ROUNDPS, //!< ROUNDPS
        ID_INS_ROUNDSD, //!< ROUNDSD
        ID_INS_ROUNDSS, //!< ROUNDSS
        ID_INS_RSM, //!< RSM
        ID_INS_RSQRTPS, //!< RSQRTPS
        ID_INS_RSQRTSS, //!< RSQRTSS
        ID_INS_SAHF, //!< SAHF
        ID_INS_SAL, //!< SAL
        ID_INS_SALC, //!< SALC
        ID_INS_SAR, //!< SAR
        ID_INS_SARX, //!< SARX
        ID_INS_SBB, //!< SBB
        ID_INS_SCASB, //!< SCASB
        ID_INS_SCASD, //!< SCASD
        ID_INS_SCASQ, //!< SCASQ
        ID_INS_SCASW, //!< SCASW
        ID_INS_SETA, //!< SETA
        ID_INS_SETAE, //!< SETAE
        ID_INS_SETB, //!< SETB
        ID_INS_SETBE, //!< SETBE
        ID_INS_SETE, //!< SETE
        ID_INS_SETG, //!< SETG
        ID_INS_SETGE, //!< SETGE
        ID_INS_SETL, //!< SETL
        ID_INS_SETLE, //!< SETLE
        ID_INS_SETNE, //!< SETNE
        ID_INS_SETNO, //!< SETNO
        ID_INS_SETNP, //!< SETNP
        ID_INS_SETNS, //!< SETNS
        ID_INS_SETO, //!< SETO
        ID_INS_SETP, //!< SETP
        ID_INS_SETS, //!< SETS
        ID_INS_SFENCE, //!< SFENCE
        ID_INS_SGDT, //!< SGDT
        ID_INS_SHA1MSG1, //!< SHA1MSG1
        ID_INS_SHA1MSG2, //!< SHA1MSG2
        ID_INS_SHA1NEXTE, //!< SHA1NEXTE
        ID_INS_SHA1RNDS4, //!< SHA1RNDS4
        ID_INS_SHA256MSG1, //!< SHA256MSG1
        ID_INS_SHA256MSG2, //!< SHA256MSG2
        ID_INS_SHA256RNDS2, //!< SHA256RNDS2
        ID_INS_SHL, //!< SHL
        ID_INS_SHLD, //!< SHLD
        ID_INS_SHLX, //!< SHLX
        ID_INS_SHR, //!< SHR
        ID_INS_SHRD, //!< SHRD
        ID_INS_SHRX, //!< SHRX
        ID_INS_SHUFPD, //!< SHUFPD
        ID_INS_SHUFPS, //!< SHUFPS
        ID_INS_SIDT, //!< SIDT
        ID_INS_SKINIT, //!< SKINIT
        ID_INS_SLDT, //!< SLDT
        ID_INS_SMSW, //!< SMSW
        ID_INS_SQRTPD, //!< SQRTPD
        ID_INS_SQRTPS, //!< SQRTPS
        ID_INS_SQRTSD, //!< SQRTSD
        ID_INS_SQRTSS, //!< SQRTSS
        ID_INS_STAC, //!< STAC
        ID_INS_STC, //!< STC
        ID_INS_STD, //!< STD
        ID_INS_STGI, //!< STGI
        ID_INS_STI, //!< STI
        ID_INS_STMXCSR, //!< STMXCSR
        ID_INS_STOSB, //!< STOSB
        ID_INS_STOSD, //!< STOSD
        ID_INS_STOSQ, //!< STOSQ
        ID_INS_STOSW, //!< STOSW
        ID_INS_STR, //!< STR
        ID_INS_SUB, //!< SUB
        ID_INS_SUBPD, //!< SUBPD
        ID_INS_SUBPS, //!< SUBPS
        ID_INS_SUBSD, //!< SUBSD
        ID_INS_SUBSS, //!< SUBSS
        ID_INS_SWAPGS, //!< SWAPGS
        ID_INS_SYSCALL, //!< SYSCALL
        ID_INS_SYSENTER, //!< SYSENTER
        ID_INS_SYSEXIT, //!< SYSEXIT
        ID_INS_SYSRET, //!< SYSRET
        ID_INS_T1MSKC, //!< T1MSKC
        ID_INS_TEST, //!< TEST
        ID_INS_TZCNT, //!< TZCNT
        ID_INS_TZMSK, //!< TZMSK
        ID_INS_UCOMISD, //!< UCOMISD
        ID_INS_UCOMISS, //!< UCOMISS
        ID_INS_UD2, //!< UD2
        ID_INS_UD2B, //!< UD2B
        ID_INS_UNPCKHPD, //!< UNPCKHPD
        ID_INS_UNPCKHPS, //!< UNPCKHPS
        ID_INS_UNPCKLPD, //!< UNPCKLPD
        ID_INS_UNPCKLPS, //!< UNPCKLPS
        ID_INS_VADDPD, //!< VADDPD
        ID_INS_VADDPS, //!< VADDPS
        ID_INS_VADDSD, //!< VADDSD
        ID_INS_VADDSS, //!< VADDSS
        ID_INS_VADDSUBPD, //!< VADDSUBPD
        ID_INS_VADDSUBPS, //!< VADDSUBPS
        ID_INS_VAESDEC, //!< VAESDEC
        ID_INS_VAESDECLAST, //!< VAESDECLAST
        ID_INS_VAESENC, //!< VAESENC
        ID_INS_VAESENCLAST, //!< VAESENCLAST
        ID_INS_VAESIMC, //!< VAESIMC
        ID_INS_VAESKEYGENASSIST, //!< VAESKEYGENASSIST
        ID_INS_VALIGND, //!< VALIGND
        ID_INS_VALIGNQ, //!< VALIGNQ
        ID_INS_VANDNPD, //!< VANDNPD
        ID_INS_VANDNPS, //!< VANDNPS
        ID_INS_VANDPD, //!< VANDPD
        ID_INS_VANDPS, //!< VANDPS
        ID_INS_VBLENDMPD, //!< VBLENDMPD
        ID_INS_VBLENDMPS, //!< VBLENDMPS
        ID_INS_VBLENDPD, //!< VBLENDPD
        ID_INS_VBLENDPS, //!< VBLENDPS
        ID_INS_VBLENDVPD, //!< VBLENDVPD
        ID_INS_VBLENDVPS, //!< VBLENDVPS
        ID_INS_VBROADCASTF128, //!< VBROADCASTF128
        ID_INS_VBROADCASTI128, //!< VBROADCASTI128
        ID_INS_VBROADCASTI32X4, //!< VBROADCASTI32X4
        ID_INS_VBROADCASTI64X4, //!< VBROADCASTI64X4
        ID_INS_VBROADCASTSD, //!< VBROADCASTSD
        ID_INS_VBROADCASTSS, //!< VBROADCASTSS
        ID_INS_VCMP, //!< VCMP
        ID_INS_VCMPPD, //!< VCMPPD
        ID_INS_VCMPPS, //!< VCMPPS
        ID_INS_VCMPSD, //!< VCMPSD
        ID_INS_VCMPSS, //!< VCMPSS
        ID_INS_VCOMISD, //!< VCOMISD
        ID_INS_VCOMISS, //!< VCOMISS
        ID_INS_VCVTDQ2PD, //!< VCVTDQ2PD
        ID_INS_VCVTDQ2PS, //!< VCVTDQ2PS
        ID_INS_VCVTPD2DQ, //!< VCVTPD2DQ
        ID_INS_VCVTPD2DQX, //!< VCVTPD2DQX
        ID_INS_VCVTPD2PS, //!< VCVTPD2PS
        ID_INS_VCVTPD2PSX, //!< VCVTPD2PSX
        ID_INS_VCVTPD2UDQ, //!< VCVTPD2UDQ
        ID_INS_VCVTPH2PS, //!< VCVTPH2PS
        ID_INS_VCVTPS2DQ, //!< VCVTPS2DQ
        ID_INS_VCVTPS2PD, //!< VCVTPS2PD
        ID_INS_VCVTPS2PH, //!< VCVTPS2PH
        ID_INS_VCVTPS2UDQ, //!< VCVTPS2UDQ
        ID_INS_VCVTSD2SI, //!< VCVTSD2SI
        ID_INS_VCVTSD2SS, //!< VCVTSD2SS
        ID_INS_VCVTSD2USI, //!< VCVTSD2USI
        ID_INS_VCVTSI2SD, //!< VCVTSI2SD
        ID_INS_VCVTSI2SS, //!< VCVTSI2SS
        ID_INS_VCVTSS2SD, //!< VCVTSS2SD
        ID_INS_VCVTSS2SI, //!< VCVTSS2SI
        ID_INS_VCVTSS2USI, //!< VCVTSS2USI
        ID_INS_VCVTTPD2DQ, //!< VCVTTPD2DQ
        ID_INS_VCVTTPD2DQX, //!< VCVTTPD2DQX
        ID_INS_VCVTTPD2UDQ, //!< VCVTTPD2UDQ
        ID_INS_VCVTTPS2DQ, //!< VCVTTPS2DQ
        ID_INS_VCVTTPS2UDQ, //!< VCVTTPS2UDQ
        ID_INS_VCVTTSD2SI, //!< VCVTTSD2SI
        ID_INS_VCVTTSD2USI, //!< VCVTTSD2USI
        ID_INS_VCVTTSS2SI, //!< VCVTTSS2SI
        ID_INS_VCVTTSS2USI, //!< VCVTTSS2USI
        ID_INS_VCVTUDQ2PD, //!< VCVTUDQ2PD
        ID_INS_VCVTUDQ2PS, //!< VCVTUDQ2PS
        ID_INS_VCVTUSI2SD, //!< VCVTUSI2SD
        ID_INS_VCVTUSI2SS, //!< VCVTUSI2SS
        ID_INS_VDIVPD, //!< VDIVPD
        ID_INS_VDIVPS, //!< VDIVPS
        ID_INS_VDIVSD, //!< VDIVSD
        ID_INS_VDIVSS, //!< VDIVSS
        ID_INS_VDPPD, //!< VDPPD
        ID_INS_VDPPS, //!< VDPPS
        ID_INS_VERR, //!< VERR
        ID_INS_VERW, //!< VERW
        ID_INS_VEXTRACTF128, //!< VEXTRACTF128
        ID_INS_VEXTRACTF32X4, //!< VEXTRACTF32X4
        ID_INS_VEXTRACTF64X4, //!< VEXTRACTF64X4
        ID_INS_VEXTRACTI128, //!< VEXTRACTI128
        ID_INS_VEXTRACTI32X4, //!< VEXTRACTI32X4
        ID_INS_VEXTRACTI64X4, //!< VEXTRACTI64X4
        ID_INS_VEXTRACTPS, //!< VEXTRACTPS
        ID_INS_VFMADD132PD, //!< VFMADD132PD
        ID_INS_VFMADD132PS, //!< VFMADD132PS
        ID_INS_VFMADD132SD, //!< VFMADD132SD
        ID_INS_VFMADD132SS, //!< VFMADD132SS
        ID_INS_VFMADD213PD, //!< VFMADD213PD
        ID_INS_VFMADD213PS, //!< VFMADD213PS
        ID_INS_VFMADD213SD, //!< VFMADD213SD
        ID_INS_VFMADD213SS, //!< VFMADD213SS
        ID_INS_VFMADD231PD, //!< VFMADD231PD
        ID_INS_VFMADD231PS, //!< VFMADD231PS
        ID_INS_VFMADD231SD, //!< VFMADD231SD
        ID_INS_VFMADD231SS, //!< VFMADD231SS
        ID_INS_VFMADDPD, //!< VFMADDPD
        ID_INS_VFMADDPS, //!< VFMADDPS
        ID_INS_VFMADDSD, //!< VFMADDSD
        ID_INS_VFMADDSS, //!< VFMADDSS
        ID_INS_VFMADDSUB132PD, //!< VFMADDSUB132PD
        ID_INS_VFMADDSUB132PS, //!< VFMADDSUB132PS
        ID_INS_VFMADDSUB213PD, //!< VFMADDSUB213PD
        ID_INS_VFMADDSUB213PS, //!< VFMADDSUB213PS
        ID_INS_VFMADDSUB231PD, //!< VFMADDSUB231PD
        ID_INS_VFMADDSUB231PS, //!< VFMADDSUB231PS
        ID_INS_VFMADDSUBPD, //!< VFMADDSUBPD
        ID_INS_VFMADDSUBPS, //!< VFMADDSUBPS
        ID_INS_VFMSUB132PD, //!< VFMSUB132PD
        ID_INS_VFMSUB132PS, //!< VFMSUB132PS
        ID_INS_VFMSUB132SD, //!< VFMSUB132SD
        ID_INS_VFMSUB132SS, //!< VFMSUB132SS
        ID_INS_VFMSUB213PD, //!< VFMSUB213PD
        ID_INS_VFMSUB213PS, //!< VFMSUB213PS
        ID_INS_VFMSUB213SD, //!< VFMSUB213SD
        ID_INS_VFMSUB213SS, //!< VFMSUB213SS
        ID_INS_VFMSUB231PD, //!< VFMSUB231PD
        ID_INS_VFMSUB231PS, //!< VFMSUB231PS
        ID_INS_VFMSUB231SD, //!< VFMSUB231SD
        ID_INS_VFMSUB231SS, //!< VFMSUB231SS
        ID_INS_VFMSUBADD132PD, //!< VFMSUBADD132PD
        ID_INS_VFMSUBADD132PS, //!< VFMSUBADD132PS
        ID_INS_VFMSUBADD213PD, //!< VFMSUBADD213PD
        ID_INS_VFMSUBADD213PS, //!< VFMSUBADD213PS
        ID_INS_VFMSUBADD231PD, //!< VFMSUBADD231PD
        ID_INS_VFMSUBADD231PS, //!< VFMSUBADD231PS
        ID_INS_VFMSUBADDPD, //!< VFMSUBADDPD
        ID_INS_VFMSUBADDPS, //!< VFMSUBADDPS
        ID_INS_VFMSUBPD, //!< VFMSUBPD
        ID_INS_VFMSUBPS, //!< VFMSUBPS
        ID_INS_VFMSUBSD, //!< VFMSUBSD
        ID_INS_VFMSUBSS, //!< VFMSUBSS
        ID_INS_VFNMADD132PD, //!< VFNMADD132PD
        ID_INS_VFNMADD132PS, //!< VFNMADD132PS
        ID_INS_VFNMADD132SD, //!< VFNMADD132SD
        ID_INS_VFNMADD132SS, //!< VFNMADD132SS
        ID_INS_VFNMADD213PD, //!< VFNMADD213PD
        ID_INS_VFNMADD213PS, //!< VFNMADD213PS
        ID_INS_VFNMADD213SD, //!< VFNMADD213SD
        ID_INS_VFNMADD213SS, //!< VFNMADD213SS
        ID_INS_VFNMADD231PD, //!< VFNMADD231PD
        ID_INS_VFNMADD231PS, //!< VFNMADD231PS
        ID_INS_VFNMADD231SD, //!< VFNMADD231SD
        ID_INS_VFNMADD231SS, //!< VFNMADD231SS
        ID_INS_VFNMADDPD, //!< VFNMADDPD
        ID_INS_VFNMADDPS, //!< VFNMADDPS
        ID_INS_VFNMADDSD, //!< VFNMADDSD
        ID_INS_VFNMADDSS, //!< VFNMADDSS
        ID_INS_VFNMSUB132PD, //!< VFNMSUB132PD
        ID_INS_VFNMSUB132PS, //!< VFNMSUB132PS
        ID_INS_VFNMSUB132SD, //!< VFNMSUB132SD
        ID_INS_VFNMSUB132SS, //!< VFNMSUB132SS
        ID_INS_VFNMSUB213PD, //!< VFNMSUB213PD
        ID_INS_VFNMSUB213PS, //!< VFNMSUB213PS
        ID_INS_VFNMSUB213SD, //!< VFNMSUB213SD
        ID_INS_VFNMSUB213SS, //!< VFNMSUB213SS
        ID_INS_VFNMSUB231PD, //!< VFNMSUB231PD
        ID_INS_VFNMSUB231PS, //!< VFNMSUB231PS
        ID_INS_VFNMSUB231SD, //!< VFNMSUB231SD
        ID_INS_VFNMSUB231SS, //!< VFNMSUB231SS
        ID_INS_VFNMSUBPD, //!< VFNMSUBPD
        ID_INS_VFNMSUBPS, //!< VFNMSUBPS
        ID_INS_VFNMSUBSD, //!< VFNMSUBSD
        ID_INS_VFNMSUBSS, //!< VFNMSUBSS
        ID_INS_VFRCZPD, //!< VFRCZPD
        ID_INS_VFRCZPS, //!< VFRCZPS
        ID_INS_VFRCZSD, //!< VFRCZSD
        ID_INS_VFRCZSS, //!< VFRCZSS
        ID_INS_VGATHERDPD, //!< VGATHERDPD
        ID_INS_VGATHERDPS, //!< VGATHERDPS
        ID_INS_VGATHERPF0DPD, //!< VGATHERPF0DPD
        ID_INS_VGATHERPF0DPS, //!< VGATHERPF0DPS
        ID_INS_VGATHERPF0QPD, //!< VGATHERPF0QPD
        ID_INS_VGATHERPF0QPS, //!< VGATHERPF0QPS
        ID_INS_VGATHERPF1DPD, //!< VGATHERPF1DPD
        ID_INS_VGATHERPF1DPS, //!< VGATHERPF1DPS
        ID_INS_VGATHERPF1QPD, //!< VGATHERPF1QPD
        ID_INS_VGATHERPF1QPS, //!< VGATHERPF1QPS
        ID_INS_VGATHERQPD, //!< VGATHERQPD
        ID_INS_VGATHERQPS, //!< VGATHERQPS
        ID_INS_VHADDPD, //!< VHADDPD
        ID_INS_VHADDPS, //!< VHADDPS
        ID_INS_VHSUBPD, //!< VHSUBPD
        ID_INS_VHSUBPS, //!< VHSUBPS
        ID_INS_VINSERTF128, //!< VINSERTF128
        ID_INS_VINSERTF32X4, //!< VINSERTF32X4
        ID_INS_VINSERTF64X4, //!< VINSERTF64X4
        ID_INS_VINSERTI128, //!< VINSERTI128
        ID_INS_VINSERTI32X4, //!< VINSERTI32X4
        ID_INS_VINSERTI64X4, //!< VINSERTI64X4
        ID_INS_VINSERTPS, //!< VINSERTPS
        ID_INS_VLDDQU, //!< VLDDQU
        ID_INS_VLDMXCSR, //!< VLDMXCSR
        ID_INS_VMASKMOVDQU, //!< VMASKMOVDQU
        ID_INS_VMASKMOVPD, //!< VMASKMOVPD
        ID_INS_VMASKMOVPS, //!< VMASKMOVPS
        ID_INS_VMAXPD, //!< VMAXPD
        ID_INS_VMAXPS, //!< VMAXPS
        ID_INS_VMAXSD, //!< VMAXSD
        ID_INS_VMAXSS, //!< VMAXSS
        ID_INS_VMCALL, //!< VMCALL
        ID_INS_VMCLEAR, //!< VMCLEAR
        ID_INS_VMFUNC, //!< VMFUNC
        ID_INS_VMINPD, //!< VMINPD
        ID_INS_VMINPS, //!< VMINPS
        ID_INS_VMINSD, //!< VMINSD
        ID_INS_VMINSS, //!< VMINSS
        ID_INS_VMLAUNCH, //!< VMLAUNCH
        ID_INS_VMLOAD, //!< VMLOAD
        ID_INS_VMMCALL, //!< VMMCALL
        ID_INS_VMOVAPD, //!< VMOVAPD
        ID_INS_VMOVAPS, //!< VMOVAPS
        ID_INS_VMOVD, //!< VMOVD
        ID_INS_VMOVDDUP, //!< VMOVDDUP
        ID_INS_VMOVDQA, //!< VMOVDQA
        ID_INS_VMOVDQA32, //!< VMOVDQA32
        ID_INS_VMOVDQA64, //!< VMOVDQA64
        ID_INS_VMOVDQU, //!< VMOVDQU
        ID_INS_VMOVDQU16, //!< VMOVDQU16
        ID_INS_VMOVDQU32, //!< VMOVDQU32
        ID_INS_VMOVDQU64, //!< VMOVDQU64
        ID_INS_VMOVDQU8, //!< VMOVDQU8
        ID_INS_VMOVHLPS, //!< VMOVHLPS
        ID_INS_VMOVHPD, //!< VMOVHPD
        ID_INS_VMOVHPS, //!< VMOVHPS
        ID_INS_VMOVLHPS, //!< VMOVLHPS
        ID_INS_VMOVLPD, //!< VMOVLPD
        ID_INS_VMOVLPS, //!< VMOVLPS
        ID_INS_VMOVMSKPD, //!< VMOVMSKPD
        ID_INS_VMOVMSKPS, //!< VMOVMSKPS
        ID_INS_VMOVNTDQ, //!< VMOVNTDQ
        ID_INS_VMOVNTDQA, //!< VMOVNTDQA
        ID_INS_VMOVNTPD, //!< VMOVNTPD
        ID_INS_VMOVNTPS, //!< VMOVNTPS
        ID_INS_VMOVQ, //!< VMOVQ
        ID_INS_VMOVSD, //!< VMOVSD
        ID_INS_VMOVSHDUP, //!< VMOVSHDUP
        ID_INS_VMOVSLDUP, //!< VMOVSLDUP
        ID_INS_VMOVSS, //!< VMOVSS
        ID_INS_VMOVUPD, //!< VMOVUPD
        ID_INS_VMOVUPS, //!< VMOVUPS
        ID_INS_VMPSADBW, //!< VMPSADBW
        ID_INS_VMPTRLD, //!< VMPTRLD
        ID_INS_VMPTRST, //!< VMPTRST
        ID_INS_VMREAD, //!< VMREAD
        ID_INS_VMRESUME, //!< VMRESUME
        ID_INS_VMRUN, //!< VMRUN
        ID_INS_VMSAVE, //!< VMSAVE
        ID_INS_VMULPD, //!< VMULPD
        ID_INS_VMULPS, //!< VMULPS
        ID_INS_VMULSD, //!< VMULSD
        ID_INS_VMULSS, //!< VMULSS
        ID_INS_VMWRITE, //!< VMWRITE
        ID_INS_VMXOFF, //!< VMXOFF
        ID_INS_VMXON, //!< VMXON
        ID_INS_VORPD, //!< VORPD
        ID_INS_VORPS, //!< VORPS
        ID_INS_VPABSB, //!< VPABSB
        ID_INS_VPABSD, //!< VPABSD
        ID_INS_VPABSQ, //!< VPABSQ
        ID_INS_VPABSW, //!< VPABSW
        ID_INS_VPACKSSDW, //!< VPACKSSDW
        ID_INS_VPACKSSWB, //!< VPACKSSWB
        ID_INS_VPACKUSDW, //!< VPACKUSDW
        ID_INS_VPACKUSWB, //!< VPACKUSWB
        ID_INS_VPADDB, //!< VPADDB
        ID_INS_VPADDD, //!< VPADDD
        ID_INS_VPADDQ, //!< VPADDQ
        ID_INS_VPADDSB, //!< VPADDSB
        ID_INS_VPADDSW, //!< VPADDSW
        ID_INS_VPADDUSB, //!< VPADDUSB
        ID_INS_VPADDUSW, //!< VPADDUSW
        ID_INS_VPADDW, //!< VPADDW
        ID_INS_VPALIGNR, //!< VPALIGNR
        ID_INS_VPAND, //!< VPAND
        ID_INS_VPANDD, //!< VPANDD
        ID_INS_VPANDN, //!< VPANDN
        ID_INS_VPANDND, //!< VPANDND
        ID_INS_VPANDNQ, //!< VPANDNQ
        ID_INS_VPANDQ, //!< VPANDQ
        ID_INS_VPAVGB, //!< VPAVGB
        ID_INS_VPAVGW, //!< VPAVGW
        ID_INS_VPBLENDD, //!< VPBLENDD
        ID_INS_VPBLENDMD, //!< VPBLENDMD
        ID_INS_VPBLENDMQ, //!< VPBLENDMQ
        ID_INS_VPBLENDVB, //!< VPBLENDVB
        ID_INS_VPBLENDW, //!< VPBLENDW
        ID_INS_VPBROADCASTB, //!< VPBROADCASTB
        ID_INS_VPBROADCASTD, //!< VPBROADCASTD
        ID_INS_VPBROADCASTMB2Q, //!< VPBROADCASTMB2Q
        ID_INS_VPBROADCASTMW2D, //!< VPBROADCASTMW2D
        ID_INS_VPBROADCASTQ, //!< VPBROADCASTQ
        ID_INS_VPBROADCASTW, //!< VPBROADCASTW
        ID_INS_VPCLMULQDQ, //!< VPCLMULQDQ
        ID_INS_VPCMOV, //!< VPCMOV
        ID_INS_VPCMP, //!< VPCMP
        ID_INS_VPCMPD, //!< VPCMPD
        ID_INS_VPCMPEQB, //!< VPCMPEQB
        ID_INS_VPCMPEQD, //!< VPCMPEQD
        ID_INS_VPCMPEQQ, //!< VPCMPEQQ
        ID_INS_VPCMPEQW, //!< VPCMPEQW
        ID_INS_VPCMPESTRI, //!< VPCMPESTRI
        ID_INS_VPCMPESTRM, //!< VPCMPESTRM
        ID_INS_VPCMPGTB, //!< VPCMPGTB
        ID_INS_VPCMPGTD, //!< VPCMPGTD
        ID_INS_VPCMPGTQ, //!< VPCMPGTQ
        ID_INS_VPCMPGTW, //!< VPCMPGTW
        ID_INS_VPCMPISTRI, //!< VPCMPISTRI
        ID_INS_VPCMPISTRM, //!< VPCMPISTRM
        ID_INS_VPCMPQ, //!< VPCMPQ
        ID_INS_VPCMPUD, //!< VPCMPUD
        ID_INS_VPCMPUQ, //!< VPCMPUQ
        ID_INS_VPCOMB, //!< VPCOMB
        ID_INS_VPCOMD, //!< VPCOMD
        ID_INS_VPCOMQ, //!< VPCOMQ
        ID_INS_VPCOMUB, //!< VPCOMUB
        ID_INS_VPCOMUD, //!< VPCOMUD
        ID_INS_VPCOMUQ, //!< VPCOMUQ
        ID_INS_VPCOMUW, //!< VPCOMUW
        ID_INS_VPCOMW, //!< VPCOMW
        ID_INS_VPCONFLICTD, //!< VPCONFLICTD
        ID_INS_VPCONFLICTQ, //!< VPCONFLICTQ
        ID_INS_VPERM2F128, //!< VPERM2F128
        ID_INS_VPERM2I128, //!< VPERM2I128
        ID_INS_VPERMD, //!< VPERMD
        ID_INS_VPERMI2D, //!< VPERMI2D
        ID_INS_VPERMI2PD, //!< VPERMI2PD
        ID_INS_VPERMI2PS, //!< VPERMI2PS
        ID_INS_VPERMI2Q, //!< VPERMI2Q
        ID_INS_VPERMIL2PD, //!< VPERMIL2PD
        ID_INS_VPERMIL2PS, //!< VPERMIL2PS
        ID_INS_VPERMILPD, //!< VPERMILPD
        ID_INS_VPERMILPS, //!< VPERMILPS
        ID_INS_VPERMPD, //!< VPERMPD
        ID_INS_VPERMPS, //!< VPERMPS
        ID_INS_VPERMQ, //!< VPERMQ
        ID_INS_VPERMT2D, //!< VPERMT2D
        ID_INS_VPERMT2PD, //!< VPERMT2PD
        ID_INS_VPERMT2PS, //!< VPERMT2PS
        ID_INS_VPERMT2Q, //!< VPERMT2Q
        ID_INS_VPEXTRB, //!< VPEXTRB
        ID_INS_VPEXTRD, //!< VPEXTRD
        ID_INS_VPEXTRQ, //!< VPEXTRQ
        ID_INS_VPEXTRW, //!< VPEXTRW
        ID_INS_VPGATHERDD, //!< VPGATHERDD
        ID_INS_VPGATHERDQ, //!< VPGATHERDQ
        ID_INS_VPGATHERQD, //!< VPGATHERQD
        ID_INS_VPGATHERQQ, //!< VPGATHERQQ
        ID_INS_VPHADDBD, //!< VPHADDBD
        ID_INS_VPHADDBQ, //!< VPHADDBQ
        ID_INS_VPHADDBW, //!< VPHADDBW
        ID_INS_VPHADDD, //!< VPHADDD
        ID_INS_VPHADDDQ, //!< VPHADDDQ
        ID_INS_VPHADDSW, //!< VPHADDSW
        ID_INS_VPHADDUBD, //!< VPHADDUBD
        ID_INS_VPHADDUBQ, //!< VPHADDUBQ
        ID_INS_VPHADDUBW, //!< VPHADDUBW
        ID_INS_VPHADDUDQ, //!< VPHADDUDQ
        ID_INS_VPHADDUWD, //!< VPHADDUWD
        ID_INS_VPHADDUWQ, //!< VPHADDUWQ
        ID_INS_VPHADDW, //!< VPHADDW
        ID_INS_VPHADDWD, //!< VPHADDWD
        ID_INS_VPHADDWQ, //!< VPHADDWQ
        ID_INS_VPHMINPOSUW, //!< VPHMINPOSUW
        ID_INS_VPHSUBBW, //!< VPHSUBBW
        ID_INS_VPHSUBD, //!< VPHSUBD
        ID_INS_VPHSUBDQ, //!< VPHSUBDQ
        ID_INS_VPHSUBSW, //!< VPHSUBSW
        ID_INS_VPHSUBW, //!< VPHSUBW
        ID_INS_VPHSUBWD, //!< VPHSUBWD
        ID_INS_VPINSRB, //!< VPINSRB
        ID_INS_VPINSRD, //!< VPINSRD
        ID_INS_VPINSRQ, //!< VPINSRQ
        ID_INS_VPINSRW, //!< VPINSRW
        ID_INS_VPLZCNTD, //!< VPLZCNTD
        ID_INS_VPLZCNTQ, //!< VPLZCNTQ
        ID_INS_VPMACSDD, //!< VPMACSDD
        ID_INS_VPMACSDQH, //!< VPMACSDQH
        ID_INS_VPMACSDQL, //!< VPMACSDQL
        ID_INS_VPMACSSDD, //!< VPMACSSDD
        ID_INS_VPMACSSDQH, //!< VPMACSSDQH
        ID_INS_VPMACSSDQL, //!< VPMACSSDQL
        ID_INS_VPMACSSWD, //!< VPMACSSWD
        ID_INS_VPMACSSWW, //!< VPMACSSWW
        ID_INS_VPMACSWD, //!< VPMACSWD
        ID_INS_VPMACSWW, //!< VPMACSWW
        ID_INS_VPMADCSSWD, //!< VPMADCSSWD
        ID_INS_VPMADCSWD, //!< VPMADCSWD
        ID_INS_VPMADDUBSW, //!< VPMADDUBSW
        ID_INS_VPMADDWD, //!< VPMADDWD
        ID_INS_VPMASKMOVD, //!< VPMASKMOVD
        ID_INS_VPMASKMOVQ, //!< VPMASKMOVQ
        ID_INS_VPMAXSB, //!< VPMAXSB
        ID_INS_VPMAXSD, //!< VPMAXSD
        ID_INS_VPMAXSQ, //!< VPMAXSQ
        ID_INS_VPMAXSW, //!< VPMAXSW
        ID_INS_VPMAXUB, //!< VPMAXUB
        ID_INS_VPMAXUD, //!< VPMAXUD
        ID_INS_VPMAXUQ, //!< VPMAXUQ
        ID_INS_VPMAXUW, //!< VPMAXUW
        ID_INS_VPMINSB, //!< VPMINSB
        ID_INS_VPMINSD, //!< VPMINSD
        ID_INS_VPMINSQ, //!< VPMINSQ
        ID_INS_VPMINSW, //!< VPMINSW
        ID_INS_VPMINUB, //!< VPMINUB
        ID_INS_VPMINUD, //!< VPMINUD
        ID_INS_VPMINUQ, //!< VPMINUQ
        ID_INS_VPMINUW, //!< VPMINUW
        ID_INS_VPMOVDB, //!< VPMOVDB
        ID_INS_VPMOVDW, //!< VPMOVDW
        ID_INS_VPMOVMSKB, //!< VPMOVMSKB
        ID_INS_VPMOVQB, //!< VPMOVQB
        ID_INS_VPMOVQD, //!< VPMOVQD
        ID_INS_VPMOVQW, //!< VPMOVQW
        ID_INS_VPMOVSDB, //!< VPMOVSDB
        ID_INS_VPMOVSDW, //!< VPMOVSDW
        ID_INS_VPMOVSQB, //!< VPMOVSQB
        ID_INS_VPMOVSQD, //!< VPMOVSQD
        ID_INS_VPMOVSQW, //!< VPMOVSQW
        ID_INS_VPMOVSXBD, //!< VPMOVSXBD
        ID_INS_VPMOVSXBQ, //!< VPMOVSXBQ
        ID_INS_VPMOVSXBW, //!< VPMOVSXBW
        ID_INS_VPMOVSXDQ, //!< VPMOVSXDQ
        ID_INS_VPMOVSXWD, //!< VPMOVSXWD
        ID_INS_VPMOVSXWQ, //!< VPMOVSXWQ
        ID_INS_VPMOVUSDB, //!< VPMOVUSDB
        ID_INS_VPMOVUSDW, //!< VPMOVUSDW
        ID_INS_VPMOVUSQB, //!< VPMOVUSQB
        ID_INS_VPMOVUSQD, //!< VPMOVUSQD
        ID_INS_VPMOVUSQW, //!< VPMOVUSQW
        ID_INS_VPMOVZXBD, //!< VPMOVZXBD
        ID_INS_VPMOVZXBQ, //!< VPMOVZXBQ
        ID_INS_VPMOVZXBW, //!< VPMOVZXBW
        ID_INS_VPMOVZXDQ, //!< VPMOVZXDQ
        ID_INS_VPMOVZXWD, //!< VPMOVZXWD
        ID_INS_VPMOVZXWQ, //!< VPMOVZXWQ
        ID_INS_VPMULDQ, //!< VPMULDQ
        ID_INS_VPMULHRSW, //!< VPMULHRSW
        ID_INS_VPMULHUW, //!< VPMULHUW
        ID_INS_VPMULHW, //!< VPMULHW
        ID_INS_VPMULLD, //!< VPMULLD
        ID_INS_VPMULLW, //!< VPMULLW
        ID_INS_VPMULUDQ, //!< VPMULUDQ
        ID_INS_VPOR, //!< VPOR
        ID_INS_VPORD, //!< VPORD
        ID_INS_VPORQ, //!< VPORQ
        ID_INS_VPPERM, //!< VPPERM
        ID_INS_VPROTB, //!< VPROTB
        ID_INS_VPROTD, //!< VPROTD
        ID_INS_VPROTQ, //!< VPROTQ
        ID_INS_VPROTW, //!< VPROTW
        ID_INS_VPSADBW, //!< VPSADBW
        ID_INS_VPSCATTERDD, //!< VPSCATTERDD
        ID_INS_VPSCATTERDQ, //!< VPSCATTERDQ
        ID_INS_VPSCATTERQD, //!< VPSCATTERQD
        ID_INS_VPSCATTERQQ, //!< VPSCATTERQQ
        ID_INS_VPSHAB, //!< VPSHAB
        ID_INS_VPSHAD, //!< VPSHAD
        ID_INS_VPSHAQ, //!< VPSHAQ
        ID_INS_VPSHAW, //!< VPSHAW
        ID_INS_VPSHLB, //!< VPSHLB
        ID_INS_VPSHLD, //!< VPSHLD
        ID_INS_VPSHLQ, //!< VPSHLQ
        ID_INS_VPSHLW, //!< VPSHLW
        ID_INS_VPSHUFB, //!< VPSHUFB
        ID_INS_VPSHUFD, //!< VPSHUFD
        ID_INS_VPSHUFHW, //!< VPSHUFHW
        ID_INS_VPSHUFLW, //!< VPSHUFLW
        ID_INS_VPSIGNB, //!< VPSIGNB
        ID_INS_VPSIGND, //!< VPSIGND
        ID_INS_VPSIGNW, //!< VPSIGNW
        ID_INS_VPSLLD, //!< VPSLLD
        ID_INS_VPSLLDQ, //!< VPSLLDQ
        ID_INS_VPSLLQ, //!< VPSLLQ
        ID_INS_VPSLLVD, //!< VPSLLVD
        ID_INS_VPSLLVQ, //!< VPSLLVQ
        ID_INS_VPSLLW, //!< VPSLLW
        ID_INS_VPSRAD, //!< VPSRAD
        ID_INS_VPSRAQ, //!< VPSRAQ
        ID_INS_VPSRAVD, //!< VPSRAVD
        ID_INS_VPSRAVQ, //!< VPSRAVQ
        ID_INS_VPSRAW, //!< VPSRAW
        ID_INS_VPSRLD, //!< VPSRLD
        ID_INS_VPSRLDQ, //!< VPSRLDQ
        ID_INS_VPSRLQ, //!< VPSRLQ
        ID_INS_VPSRLVD, //!< VPSRLVD
        ID_INS_VPSRLVQ, //!< VPSRLVQ
        ID_INS_VPSRLW, //!< VPSRLW
        ID_INS_VPSUBB, //!< VPSUBB
        ID_INS_VPSUBD, //!< VPSUBD
        ID_INS_VPSUBQ, //!< VPSUBQ
        ID_INS_VPSUBSB, //!< VPSUBSB
        ID_INS_VPSUBSW, //!< VPSUBSW
        ID_INS_VPSUBUSB, //!< VPSUBUSB
        ID_INS_VPSUBUSW, //!< VPSUBUSW
        ID_INS_VPSUBW, //!< VPSUBW
        ID_INS_VPTEST, //!< VPTEST
        ID_INS_VPTESTMD, //!< VPTESTMD
        ID_INS_VPTESTMQ, //!< VPTESTMQ
        ID_INS_VPTESTNMD, //!< VPTESTNMD
        ID_INS_VPTESTNMQ, //!< VPTESTNMQ
        ID_INS_VPUNPCKHBW, //!< VPUNPCKHBW
        ID_INS_VPUNPCKHDQ, //!< VPUNPCKHDQ
        ID_INS_VPUNPCKHQDQ, //!< VPUNPCKHQDQ
        ID_INS_VPUNPCKHWD, //!< VPUNPCKHWD
        ID_INS_VPUNPCKLBW, //!< VPUNPCKLBW
        ID_INS_VPUNPCKLDQ, //!< VPUNPCKLDQ
        ID_INS_VPUNPCKLQDQ, //!< VPUNPCKLQDQ
        ID_INS_VPUNPCKLWD, //!< VPUNPCKLWD
        ID_INS_VPXOR, //!< VPXOR
        ID_INS_VPXORD, //!< VPXORD
        ID_INS_VPXORQ, //!< VPXORQ
        ID_INS_VRCP14PD, //!< VRCP14PD
        ID_INS_VRCP14PS, //!< VRCP14PS
        ID_INS_VRCP14SD, //!< VRCP14SD
        ID_INS_VRCP14SS, //!< VRCP14SS
        ID_INS_VRCP28PD, //!< VRCP28PD
        ID_INS_VRCP28PS, //!< VRCP28PS
        ID_INS_VRCP28SD, //!< VRCP28SD
        ID_INS_VRCP28SS, //!< VRCP28SS
        ID_INS_VRCPPS, //!< VRCPPS
        ID_INS_VRCPSS, //!< VRCPSS
        ID_INS_VRNDSCALEPD, //!< VRNDSCALEPD
        ID_INS_VRNDSCALEPS, //!< VRNDSCALEPS
        ID_INS_VRNDSCALESD, //!< VRNDSCALESD
        ID_INS_VRNDSCALESS, //!< VRNDSCALESS
        ID_INS_VROUNDPD, //!< VROUNDPD
        ID_INS_VROUNDPS, //!< VROUNDPS
        ID_INS_VROUNDSD, //!< VROUNDSD
        ID_INS_VROUNDSS, //!< VROUNDSS
        ID_INS_VRSQRT14PD, //!< VRSQRT14PD
        ID_INS_VRSQRT14PS, //!< VRSQRT14PS
        ID_INS_VRSQRT14SD, //!< VRSQRT14SD
        ID_INS_VRSQRT14SS, //!< VRSQRT14SS
        ID_INS_VRSQRT28PD, //!< VRSQRT28PD
        ID_INS_VRSQRT28PS, //!< VRSQRT28PS
        ID_INS_VRSQRT28SD, //!< VRSQRT28SD
        ID_INS_VRSQRT28SS, //!< VRSQRT28SS
        ID_INS_VRSQRTPS, //!< VRSQRTPS
        ID_INS_VRSQRTSS, //!< VRSQRTSS
        ID_INS_VSCATTERDPD, //!< VSCATTERDPD
        ID_INS_VSCATTERDPS, //!< VSCATTERDPS
        ID_INS_VSCATTERPF0DPD, //!< VSCATTERPF0DPD
        ID_INS_VSCATTERPF0DPS, //!< VSCATTERPF0DPS
        ID_INS_VSCATTERPF0QPD, //!< VSCATTERPF0QPD
        ID_INS_VSCATTERPF0QPS, //!< VSCATTERPF0QPS
        ID_INS_VSCATTERPF1DPD, //!< VSCATTERPF1DPD
        ID_INS_VSCATTERPF1DPS, //!< VSCATTERPF1DPS
        ID_INS_VSCATTERPF1QPD, //!< VSCATTERPF1QPD
        ID_INS_VSCATTERPF1QPS, //!< VSCATTERPF1QPS
        ID_INS_VSCATTERQPD, //!< VSCATTERQPD
        ID_INS_VSCATTERQPS, //!< VSCATTERQPS
        ID_INS_VSHUFPD, //!< VSHUFPD
        ID_INS_VSHUFPS, //!< VSHUFPS
        ID_INS_VSQRTPD, //!< VSQRTPD
        ID_INS_VSQRTPS, //!< VSQRTPS
        ID_INS_VSQRTSD, //!< VSQRTSD
        ID_INS_VSQRTSS, //!< VSQRTSS
        ID_INS_VSTMXCSR, //!< VSTMXCSR
        ID_INS_VSUBPD, //!< VSUBPD
        ID_INS_VSUBPS, //!< VSUBPS
        ID_INS_VSUBSD, //!< VSUBSD
        ID_INS_VSUBSS, //!< VSUBSS
        ID_INS_VTESTPD, //!< VTESTPD
        ID_INS_VTESTPS, //!< VTESTPS
        ID_INS_VUCOMISD, //!< VUCOMISD
        ID_INS_VUCOMISS, //!< VUCOMISS
        ID_INS_VUNPCKHPD, //!< VUNPCKHPD
        ID_INS_VUNPCKHPS, //!< VUNPCKHPS
        ID_INS_VUNPCKLPD, //!< VUNPCKLPD
        ID_INS_VUNPCKLPS, //!< VUNPCKLPS
        ID_INS_VXORPD, //!< VXORPD
        ID_INS_VXORPS, //!< VXORPS
        ID_INS_VZEROALL, //!< VZEROALL
        ID_INS_VZEROUPPER, //!< VZEROUPPER
        ID_INS_WAIT, //!< WAIT
        ID_INS_WBINVD, //!< WBINVD
        ID_INS_WRFSBASE, //!< WRFSBASE
        ID_INS_WRGSBASE, //!< WRGSBASE
        ID_INS_WRMSR, //!< WRMSR
        ID_INS_XABORT, //!< XABORT
        ID_INS_XACQUIRE, //!< XACQUIRE
        ID_INS_XADD, //!< XADD
        ID_INS_XBEGIN, //!< XBEGIN
        ID_INS_XCHG, //!< XCHG
        ID_INS_XCRYPTCBC, //!< XCRYPTCBC
        ID_INS_XCRYPTCFB, //!< XCRYPTCFB
        ID_INS_XCRYPTCTR, //!< XCRYPTCTR
        ID_INS_XCRYPTECB, //!< XCRYPTECB
        ID_INS_XCRYPTOFB, //!< XCRYPTOFB
        ID_INS_XEND, //!< XEND
        ID_INS_XGETBV, //!< XGETBV
        ID_INS_XLATB, //!< XLATB
        ID_INS_XOR, //!< XOR
        ID_INS_XORPD, //!< XORPD
        ID_INS_XORPS, //!< XORPS
        ID_INS_XRELEASE, //!< XRELEASE
        ID_INS_XRSTOR, //!< XRSTOR
        ID_INS_XRSTOR64, //!< XRSTOR64
        ID_INS_XSAVE, //!< XSAVE
        ID_INS_XSAVE64, //!< XSAVE64
        ID_INS_XSAVEOPT, //!< XSAVEOPT
        ID_INS_XSAVEOPT64, //!< XSAVEOPT64
        ID_INS_XSETBV, //!< XSETBV
        ID_INS_XSHA1, //!< XSHA1
        ID_INS_XSHA256, //!< XSHA256
        ID_INS_XSTORE, //!< XSTORE
        ID_INS_XTEST, //!< XTEST

        /* Must be the last item */
        ID_INS_LAST_ITEM //!< must be the last item
      };

    /*! @} End of x86 namespace */
    };
  /*! @} End of arch namespace */
  };
/*! @} End of triton namespace */
};

#endif /* TRITON_X86SPECIFICATIONS_H */
