LCOV - code coverage report
Current view: top level - asmjit - x86emitter.h (source / functions) Hit Total Coverage
Test: plumed test coverage (other modules) Lines: 19 33 57.6 %
Date: 2026-11-05 10:19:06 Functions: 2 11 18.2 %

          Line data    Source code
       1             : #ifdef __PLUMED_HAS_ASMJIT
       2             : // This file is part of AsmJit project <https://asmjit.com>
       3             : //
       4             : // See asmjit.h or LICENSE.md for license and copyright information
       5             : // SPDX-License-Identifier: Zlib
       6             : 
       7             : #ifndef ASMJIT_X86_X86EMITTER_H_INCLUDED
       8             : #define ASMJIT_X86_X86EMITTER_H_INCLUDED
       9             : 
      10             : #include "emitter.h"
      11             : #include "support.h"
      12             : #include "x86globals.h"
      13             : #include "x86operand.h"
      14             : 
      15             : ASMJIT_BEGIN_SUB_NAMESPACE(x86)
      16             : 
      17             : #define ASMJIT_INST_0x(NAME, ID) \
      18             :   inline Error NAME() { return _emitter()->_emitI(Inst::kId##ID); }
      19             : 
      20             : #define ASMJIT_INST_1x(NAME, ID, T0) \
      21             :   inline Error NAME(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID, o0); }
      22             : 
      23             : #define ASMJIT_INST_1c(NAME, ID, CONV, T0) \
      24             :   inline Error NAME(CondCode cc, const T0& o0) { return _emitter()->_emitI(CONV(cc), o0); } \
      25             :   inline Error NAME##a(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##a, o0); } \
      26             :   inline Error NAME##ae(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ae, o0); } \
      27             :   inline Error NAME##b(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##b, o0); } \
      28             :   inline Error NAME##be(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##be, o0); } \
      29             :   inline Error NAME##c(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##c, o0); } \
      30             :   inline Error NAME##e(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##e, o0); } \
      31             :   inline Error NAME##g(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##g, o0); } \
      32             :   inline Error NAME##ge(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ge, o0); } \
      33             :   inline Error NAME##l(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##l, o0); } \
      34             :   inline Error NAME##le(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##le, o0); } \
      35             :   inline Error NAME##na(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##na, o0); } \
      36             :   inline Error NAME##nae(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nae, o0); } \
      37             :   inline Error NAME##nb(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nb, o0); } \
      38             :   inline Error NAME##nbe(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nbe, o0); } \
      39             :   inline Error NAME##nc(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nc, o0); } \
      40             :   inline Error NAME##ne(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ne, o0); } \
      41             :   inline Error NAME##ng(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ng, o0); } \
      42             :   inline Error NAME##nge(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nge, o0); } \
      43             :   inline Error NAME##nl(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nl, o0); } \
      44             :   inline Error NAME##nle(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nle, o0); } \
      45             :   inline Error NAME##no(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##no, o0); } \
      46             :   inline Error NAME##np(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##np, o0); } \
      47             :   inline Error NAME##ns(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ns, o0); } \
      48             :   inline Error NAME##nz(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nz, o0); } \
      49             :   inline Error NAME##o(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##o, o0); } \
      50             :   inline Error NAME##p(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##p, o0); } \
      51             :   inline Error NAME##pe(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##pe, o0); } \
      52             :   inline Error NAME##po(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##po, o0); } \
      53             :   inline Error NAME##s(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##s, o0); } \
      54             :   inline Error NAME##z(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##z, o0); }
      55             : 
      56             : #define ASMJIT_INST_2x(NAME, ID, T0, T1) \
      57             :   inline Error NAME(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID, o0, o1); }
      58             : 
      59             : #define ASMJIT_INST_2c(NAME, ID, CONV, T0, T1) \
      60             :   inline Error NAME(CondCode cc, const T0& o0, const T1& o1) { return _emitter()->_emitI(CONV(cc), o0, o1); } \
      61             :   inline Error NAME##a(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##a, o0, o1); } \
      62             :   inline Error NAME##ae(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ae, o0, o1); } \
      63             :   inline Error NAME##b(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##b, o0, o1); } \
      64             :   inline Error NAME##be(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##be, o0, o1); } \
      65             :   inline Error NAME##c(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##c, o0, o1); } \
      66             :   inline Error NAME##e(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##e, o0, o1); } \
      67             :   inline Error NAME##g(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##g, o0, o1); } \
      68             :   inline Error NAME##ge(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ge, o0, o1); } \
      69             :   inline Error NAME##l(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##l, o0, o1); } \
      70             :   inline Error NAME##le(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##le, o0, o1); } \
      71             :   inline Error NAME##na(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##na, o0, o1); } \
      72             :   inline Error NAME##nae(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nae, o0, o1); } \
      73             :   inline Error NAME##nb(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nb, o0, o1); } \
      74             :   inline Error NAME##nbe(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nbe, o0, o1); } \
      75             :   inline Error NAME##nc(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nc, o0, o1); } \
      76             :   inline Error NAME##ne(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ne, o0, o1); } \
      77             :   inline Error NAME##ng(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ng, o0, o1); } \
      78             :   inline Error NAME##nge(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nge, o0, o1); } \
      79             :   inline Error NAME##nl(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nl, o0, o1); } \
      80             :   inline Error NAME##nle(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nle, o0, o1); } \
      81             :   inline Error NAME##no(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##no, o0, o1); } \
      82             :   inline Error NAME##np(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##np, o0, o1); } \
      83             :   inline Error NAME##ns(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ns, o0, o1); } \
      84             :   inline Error NAME##nz(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nz, o0, o1); } \
      85             :   inline Error NAME##o(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##o, o0, o1); } \
      86             :   inline Error NAME##p(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##p, o0, o1); } \
      87             :   inline Error NAME##pe(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##pe, o0, o1); } \
      88             :   inline Error NAME##po(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##po, o0, o1); } \
      89             :   inline Error NAME##s(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##s, o0, o1); } \
      90             :   inline Error NAME##z(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##z, o0, o1); }
      91             : 
      92             : #define ASMJIT_INST_3x(NAME, ID, T0, T1, T2) \
      93             :   inline Error NAME(const T0& o0, const T1& o1, const T2& o2) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2); }
      94             : 
      95             : #define ASMJIT_INST_4x(NAME, ID, T0, T1, T2, T3) \
      96             :   inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3); }
      97             : 
      98             : #define ASMJIT_INST_5x(NAME, ID, T0, T1, T2, T3, T4) \
      99             :   inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3, const T4& o4) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3, o4); }
     100             : 
     101             : #define ASMJIT_INST_6x(NAME, ID, T0, T1, T2, T3, T4, T5) \
     102             :   inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3, const T4& o4, const T5& o5) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3, o4, o5); }
     103             : 
     104             : //! \addtogroup asmjit_x86
     105             : //! \{
     106             : 
     107             : //! Emitter (X86 - explicit).
     108             : template<typename This>
     109             : struct EmitterExplicitT {
     110             :   //! \cond
     111             : 
     112             :   // These typedefs are used to describe implicit operands passed explicitly.
     113             :   typedef Gp Gp_AL;
     114             :   typedef Gp Gp_AH;
     115             :   typedef Gp Gp_CL;
     116             :   typedef Gp Gp_AX;
     117             :   typedef Gp Gp_DX;
     118             : 
     119             :   typedef Gp Gp_EAX;
     120             :   typedef Gp Gp_EBX;
     121             :   typedef Gp Gp_ECX;
     122             :   typedef Gp Gp_EDX;
     123             : 
     124             :   typedef Gp Gp_RAX;
     125             :   typedef Gp Gp_RBX;
     126             :   typedef Gp Gp_RCX;
     127             :   typedef Gp Gp_RDX;
     128             : 
     129             :   typedef Gp Gp_ZAX;
     130             :   typedef Gp Gp_ZBX;
     131             :   typedef Gp Gp_ZCX;
     132             :   typedef Gp Gp_ZDX;
     133             : 
     134             :   typedef Mem DS_ZAX; // ds:[zax]
     135             :   typedef Mem DS_ZDI; // ds:[zdi]
     136             :   typedef Mem ES_ZDI; // es:[zdi]
     137             :   typedef Mem DS_ZSI; // ds:[zsi]
     138             : 
     139             :   typedef Xmm XMM0;
     140             : 
     141             :   // These two are unfortunately reported by the sanitizer. We know what we do, however, the sanitizer doesn't.
     142             :   // I have tried to use reinterpret_cast instead, but that would generate bad code when compiled by MSC.
     143             :   ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline This* _emitter() noexcept { return static_cast<This*>(this); }
     144             :   ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline const This* _emitter() const noexcept { return static_cast<const This*>(this); }
     145             : 
     146             :   //! \endcond
     147             : 
     148             :   //! \name Native Registers
     149             :   //! \{
     150             : 
     151             :   //! Returns either GPD or GPQ register of the given `id` depending on the emitter's architecture.
     152             :   inline Gp gpz(uint32_t id) const noexcept { return Gp(_emitter()->_gpSignature, id); }
     153             : 
     154             :   inline Gp zax() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdAx); }
     155             :   inline Gp zcx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdCx); }
     156             :   inline Gp zdx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdDx); }
     157             :   inline Gp zbx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdBx); }
     158             :   inline Gp zsp() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdSp); }
     159             :   inline Gp zbp() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdBp); }
     160             :   inline Gp zsi() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdSi); }
     161             :   inline Gp zdi() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdDi); }
     162             : 
     163             :   //! \}
     164             : 
     165             :   //! \name Native Pointers
     166             :   //! \{
     167             : 
     168             :   //! Creates a target dependent pointer of which base register's id is `baseId`.
     169             :   inline Mem ptr_base(uint32_t baseId, int32_t off = 0, uint32_t size = 0) const noexcept {
     170             :     return Mem(OperandSignature::fromOpType(OperandType::kMem) |
     171             :                OperandSignature::fromMemBaseType(_emitter()->_gpSignature.regType()) |
     172             :                OperandSignature::fromSize(size),
     173             :                baseId, 0, off);
     174             :   }
     175             : 
     176             :   inline Mem ptr_zax(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdAx, off, size); }
     177             :   inline Mem ptr_zcx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdCx, off, size); }
     178             :   inline Mem ptr_zdx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdDx, off, size); }
     179             :   inline Mem ptr_zbx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdBx, off, size); }
     180             :   inline Mem ptr_zsp(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdSp, off, size); }
     181             :   inline Mem ptr_zbp(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdBp, off, size); }
     182             :   inline Mem ptr_zsi(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdSi, off, size); }
     183             :   inline Mem ptr_zdi(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdDi, off, size); }
     184             : 
     185             :   //! Creates an `intptr_t` memory operand depending on the current architecture.
     186             :   inline Mem intptr_ptr(const Gp& base, int32_t offset = 0) const noexcept {
     187             :     uint32_t nativeGpSize = _emitter()->registerSize();
     188             :     return Mem(base, offset, nativeGpSize);
     189             :   }
     190             :   //! \overload
     191             :   inline Mem intptr_ptr(const Gp& base, const Gp& index, uint32_t shift = 0, int32_t offset = 0) const noexcept {
     192             :     uint32_t nativeGpSize = _emitter()->registerSize();
     193             :     return Mem(base, index, shift, offset, nativeGpSize);
     194             :   }
     195             :   //! \overload
     196             :   inline Mem intptr_ptr(const Gp& base, const Vec& index, uint32_t shift = 0, int32_t offset = 0) const noexcept {
     197             :     uint32_t nativeGpSize = _emitter()->registerSize();
     198             :     return Mem(base, index, shift, offset, nativeGpSize);
     199             :   }
     200             :   //! \overload
     201             :   inline Mem intptr_ptr(const Label& base, int32_t offset = 0) const noexcept {
     202             :     uint32_t nativeGpSize = _emitter()->registerSize();
     203             :     return Mem(base, offset, nativeGpSize);
     204             :   }
     205             :   //! \overload
     206             :   inline Mem intptr_ptr(const Label& base, const Gp& index, uint32_t shift, int32_t offset = 0) const noexcept {
     207             :     uint32_t nativeGpSize = _emitter()->registerSize();
     208             :     return Mem(base, index, shift, offset, nativeGpSize);
     209             :   }
     210             :   //! \overload
     211             :   inline Mem intptr_ptr(const Label& base, const Vec& index, uint32_t shift, int32_t offset = 0) const noexcept {
     212             :     uint32_t nativeGpSize = _emitter()->registerSize();
     213             :     return Mem(base, index, shift, offset, nativeGpSize);
     214             :   }
     215             :   //! \overload
     216             :   inline Mem intptr_ptr(const Rip& rip, int32_t offset = 0) const noexcept {
     217             :     uint32_t nativeGpSize = _emitter()->registerSize();
     218             :     return Mem(rip, offset, nativeGpSize);
     219             :   }
     220             :   //! \overload
     221             :   inline Mem intptr_ptr(uint64_t base) const noexcept {
     222             :     uint32_t nativeGpSize = _emitter()->registerSize();
     223             :     return Mem(base, nativeGpSize);
     224             :   }
     225             :   //! \overload
     226             :   inline Mem intptr_ptr(uint64_t base, const Gp& index, uint32_t shift = 0) const noexcept {
     227             :     uint32_t nativeGpSize = _emitter()->registerSize();
     228             :     return Mem(base, index, shift, nativeGpSize);
     229             :   }
     230             :   //! \overload
     231             :   inline Mem intptr_ptr_abs(uint64_t base) const noexcept {
     232             :     uint32_t nativeGpSize = _emitter()->registerSize();
     233             :     return Mem(base, nativeGpSize, OperandSignature::fromValue<Mem::kSignatureMemAddrTypeMask>(Mem::AddrType::kAbs));
     234             :   }
     235             :   //! \overload
     236             :   inline Mem intptr_ptr_abs(uint64_t base, const Gp& index, uint32_t shift = 0) const noexcept {
     237             :     uint32_t nativeGpSize = _emitter()->registerSize();
     238             :     return Mem(base, index, shift, nativeGpSize, OperandSignature::fromValue<Mem::kSignatureMemAddrTypeMask>(Mem::AddrType::kRel));
     239             :   }
     240             : 
     241             :   //! \}
     242             : 
     243             :   //! \name Embed
     244             :   //! \{
     245             : 
     246             :   //! Embeds 8-bit integer data.
     247             :   inline Error db(uint8_t x, size_t repeatCount = 1) { return _emitter()->embedUInt8(x, repeatCount); }
     248             :   //! Embeds 16-bit integer data.
     249             :   inline Error dw(uint16_t x, size_t repeatCount = 1) { return _emitter()->embedUInt16(x, repeatCount); }
     250             :   //! Embeds 32-bit integer data.
     251             :   inline Error dd(uint32_t x, size_t repeatCount = 1) { return _emitter()->embedUInt32(x, repeatCount); }
     252             :   //! Embeds 64-bit integer data.
     253             :   inline Error dq(uint64_t x, size_t repeatCount = 1) { return _emitter()->embedUInt64(x, repeatCount); }
     254             : 
     255             :   //! Adds data in a given structure instance to the CodeBuffer.
     256             :   template<typename T>
     257             :   inline Error dstruct(const T& x) { return _emitter()->embed(&x, uint32_t(sizeof(T))); }
     258             : 
     259             :   //! \}
     260             : 
     261             : protected:
     262             :   //! \cond
     263             :   inline This& _addInstOptions(InstOptions options) noexcept {
     264             :     _emitter()->addInstOptions(options);
     265             :     return *_emitter();
     266             :   }
     267             :   //! \endcond
     268             : 
     269             : public:
     270             :   //! \name Short/Long Form Options
     271             :   //! \{
     272             : 
     273             :   //! Force short form of jmp/jcc instruction.
     274             :   inline This& short_() noexcept { return _addInstOptions(InstOptions::kShortForm); }
     275             :   //! Force long form of jmp/jcc instruction.
     276             :   inline This& long_() noexcept { return _addInstOptions(InstOptions::kLongForm); }
     277             : 
     278             :   //! \}
     279             : 
     280             :   //! \name Encoding Options
     281             :   //! \{
     282             : 
     283             :   //! Prefer MOD/RM encoding when both MOD/RM and MOD/MR forms are applicable.
     284             :   inline This& mod_rm() noexcept { return _addInstOptions(InstOptions::kX86_ModRM); }
     285             : 
     286             :   //! Prefer MOD/MR encoding when both MOD/RM and MOD/MR forms are applicable.
     287             :   inline This& mod_mr() noexcept { return _addInstOptions(InstOptions::kX86_ModMR); }
     288             : 
     289             :   //! \}
     290             : 
     291             :   //! \name Prefix Options
     292             :   //! \{
     293             : 
     294             :   //! Condition is likely to be taken (has only benefit on P4).
     295             :   inline This& taken() noexcept { return _addInstOptions(InstOptions::kTaken); }
     296             :   //! Condition is unlikely to be taken (has only benefit on P4).
     297             :   inline This& notTaken() noexcept { return _addInstOptions(InstOptions::kNotTaken); }
     298             : 
     299             :   //! Use LOCK prefix.
     300             :   inline This& lock() noexcept { return _addInstOptions(InstOptions::kX86_Lock); }
     301             :   //! Use XACQUIRE prefix.
     302             :   inline This& xacquire() noexcept { return _addInstOptions(InstOptions::kX86_XAcquire); }
     303             :   //! Use XRELEASE prefix.
     304             :   inline This& xrelease() noexcept { return _addInstOptions(InstOptions::kX86_XRelease); }
     305             : 
     306             :   //! Use BND/REPNE prefix.
     307             :   //!
     308             :   //! \note This is the same as using `repne()` or `repnz()` prefix.
     309             :   inline This& bnd() noexcept { return _addInstOptions(InstOptions::kX86_Repne); }
     310             : 
     311             :   //! Use REP/REPZ prefix.
     312             :   //!
     313             :   //! \note This is the same as using `repe()` or `repz()` prefix.
     314             :   inline This& rep(const Gp& zcx) noexcept {
     315             :     _emitter()->_extraReg.init(zcx);
     316             :     return _addInstOptions(InstOptions::kX86_Rep);
     317             :   }
     318             : 
     319             :   //! Use REP/REPE prefix.
     320             :   //!
     321             :   //! \note This is the same as using `rep()` or `repz()` prefix.
     322             :   inline This& repe(const Gp& zcx) noexcept { return rep(zcx); }
     323             : 
     324             :   //! Use REP/REPE prefix.
     325             :   //!
     326             :   //! \note This is the same as using `rep()` or `repe()` prefix.
     327             :   inline This& repz(const Gp& zcx) noexcept { return rep(zcx); }
     328             : 
     329             :   //! Use REPNE prefix.
     330             :   //!
     331             :   //! \note This is the same as using `bnd()` or `repnz()` prefix.
     332             :   inline This& repne(const Gp& zcx) noexcept {
     333             :     _emitter()->_extraReg.init(zcx);
     334             :     return _addInstOptions(InstOptions::kX86_Repne);
     335             :   }
     336             : 
     337             :   //! Use REPNE prefix.
     338             :   //!
     339             :   //! \note This is the same as using `bnd()` or `repne()` prefix.
     340             :   inline This& repnz(const Gp& zcx) noexcept { return repne(zcx); }
     341             : 
     342             :   //! \}
     343             : 
     344             :   //! \name REX Options
     345             :   //! \{
     346             : 
     347             :   //! Force REX prefix to be emitted even when it's not needed (X86_64).
     348             :   //!
     349             :   //! \note Don't use when using high 8-bit registers as REX prefix makes them inaccessible and `x86::Assembler`
     350             :   //! would fail to encode such instruction.
     351             :   inline This& rex() noexcept { return _addInstOptions(InstOptions::kX86_Rex); }
     352             : 
     353             :   //! Force REX.B prefix (X64) [It exists for special purposes only].
     354             :   inline This& rex_b() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeB); }
     355             :   //! Force REX.X prefix (X64) [It exists for special purposes only].
     356             :   inline This& rex_x() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeX); }
     357             :   //! Force REX.R prefix (X64) [It exists for special purposes only].
     358             :   inline This& rex_r() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeR); }
     359             :   //! Force REX.W prefix (X64) [It exists for special purposes only].
     360             :   inline This& rex_w() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeW); }
     361             : 
     362             :   //! \}
     363             : 
     364             :   //! \name VEX and EVEX Options
     365             :   //! \{
     366             : 
     367             :   //! Use VEX prefix instead of EVEX prefix (useful to select AVX_VNNI instruction instead of AVX512_VNNI).
     368             :   inline This& vex() noexcept { return _addInstOptions(InstOptions::kX86_Vex); }
     369             :   //! Force 3-byte VEX prefix (AVX+).
     370             :   inline This& vex3() noexcept { return _addInstOptions(InstOptions::kX86_Vex3); }
     371             :   //! Force 4-byte EVEX prefix (AVX512+).
     372             :   inline This& evex() noexcept { return _addInstOptions(InstOptions::kX86_Evex); }
     373             : 
     374             :   //! \}
     375             : 
     376             :   //! \name AVX-512 Options & Masking
     377             :   //! \{
     378             : 
     379             :   //! Use masking {k} (AVX512+).
     380             :   inline This& k(const KReg& kreg) noexcept {
     381             :     _emitter()->_extraReg.init(kreg);
     382             :     return *_emitter();
     383             :   }
     384             : 
     385             :   //! Use zeroing instead of merging (AVX512+).
     386             :   inline This& z() noexcept { return _addInstOptions(InstOptions::kX86_ZMask); }
     387             : 
     388             :   //! Suppress all exceptions (AVX512+).
     389             :   inline This& sae() noexcept { return _addInstOptions(InstOptions::kX86_SAE); }
     390             :   //! Static rounding mode {rn} (round-to-nearest even) and {sae} (AVX512+).
     391             :   inline This& rn_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RN_SAE); }
     392             :   //! Static rounding mode {rd} (round-down, toward -inf) and {sae} (AVX512+).
     393             :   inline This& rd_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RD_SAE); }
     394             :   //! Static rounding mode {ru} (round-up, toward +inf) and {sae} (AVX512+).
     395             :   inline This& ru_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RU_SAE); }
     396             :   //! Static rounding mode {rz} (round-toward-zero, truncate) and {sae} (AVX512+).
     397             :   inline This& rz_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RZ_SAE); }
     398             : 
     399             :   //! \}
     400             : 
     401             :   //! \name Core Instructions
     402             :   //! \{
     403             : 
     404             :   ASMJIT_INST_2x(adc, Adc, Gp, Gp)                                     // ANY
     405             :   ASMJIT_INST_2x(adc, Adc, Gp, Mem)                                    // ANY
     406             :   ASMJIT_INST_2x(adc, Adc, Gp, Imm)                                    // ANY
     407             :   ASMJIT_INST_2x(adc, Adc, Mem, Gp)                                    // ANY
     408             :   ASMJIT_INST_2x(adc, Adc, Mem, Imm)                                   // ANY
     409             :   ASMJIT_INST_2x(add, Add, Gp, Gp)                                     // ANY
     410             :   ASMJIT_INST_2x(add, Add, Gp, Mem)                                    // ANY
     411        4990 :   ASMJIT_INST_2x(add, Add, Gp, Imm)                                    // ANY
     412             :   ASMJIT_INST_2x(add, Add, Mem, Gp)                                    // ANY
     413             :   ASMJIT_INST_2x(add, Add, Mem, Imm)                                   // ANY
     414             :   ASMJIT_INST_2x(and_, And, Gp, Gp)                                    // ANY
     415             :   ASMJIT_INST_2x(and_, And, Gp, Mem)                                   // ANY
     416           0 :   ASMJIT_INST_2x(and_, And, Gp, Imm)                                   // ANY
     417             :   ASMJIT_INST_2x(and_, And, Mem, Gp)                                   // ANY
     418             :   ASMJIT_INST_2x(and_, And, Mem, Imm)                                  // ANY
     419             :   ASMJIT_INST_2x(bound, Bound, Gp, Mem)                                // X86
     420             :   ASMJIT_INST_2x(bsf, Bsf, Gp, Gp)                                     // ANY
     421             :   ASMJIT_INST_2x(bsf, Bsf, Gp, Mem)                                    // ANY
     422             :   ASMJIT_INST_2x(bsr, Bsr, Gp, Gp)                                     // ANY
     423             :   ASMJIT_INST_2x(bsr, Bsr, Gp, Mem)                                    // ANY
     424             :   ASMJIT_INST_1x(bswap, Bswap, Gp)                                     // ANY
     425             :   ASMJIT_INST_2x(bt, Bt, Gp, Gp)                                       // ANY
     426             :   ASMJIT_INST_2x(bt, Bt, Gp, Imm)                                      // ANY
     427             :   ASMJIT_INST_2x(bt, Bt, Mem, Gp)                                      // ANY
     428             :   ASMJIT_INST_2x(bt, Bt, Mem, Imm)                                     // ANY
     429             :   ASMJIT_INST_2x(btc, Btc, Gp, Gp)                                     // ANY
     430             :   ASMJIT_INST_2x(btc, Btc, Gp, Imm)                                    // ANY
     431             :   ASMJIT_INST_2x(btc, Btc, Mem, Gp)                                    // ANY
     432             :   ASMJIT_INST_2x(btc, Btc, Mem, Imm)                                   // ANY
     433             :   ASMJIT_INST_2x(btr, Btr, Gp, Gp)                                     // ANY
     434             :   ASMJIT_INST_2x(btr, Btr, Gp, Imm)                                    // ANY
     435             :   ASMJIT_INST_2x(btr, Btr, Mem, Gp)                                    // ANY
     436             :   ASMJIT_INST_2x(btr, Btr, Mem, Imm)                                   // ANY
     437             :   ASMJIT_INST_2x(bts, Bts, Gp, Gp)                                     // ANY
     438             :   ASMJIT_INST_2x(bts, Bts, Gp, Imm)                                    // ANY
     439             :   ASMJIT_INST_2x(bts, Bts, Mem, Gp)                                    // ANY
     440             :   ASMJIT_INST_2x(bts, Bts, Mem, Imm)                                   // ANY
     441             :   ASMJIT_INST_1x(cbw, Cbw, Gp_AX)                                      // ANY [EXPLICIT] AX      <- Sign Extend AL
     442             :   ASMJIT_INST_2x(cdq, Cdq, Gp_EDX, Gp_EAX)                             // ANY [EXPLICIT] EDX:EAX <- Sign Extend EAX
     443             :   ASMJIT_INST_1x(cdqe, Cdqe, Gp_EAX)                                   // X64 [EXPLICIT] RAX     <- Sign Extend EAX
     444             :   ASMJIT_INST_2x(cqo, Cqo, Gp_RDX, Gp_RAX)                             // X64 [EXPLICIT] RDX:RAX <- Sign Extend RAX
     445             :   ASMJIT_INST_2x(cwd, Cwd, Gp_DX, Gp_AX)                               // ANY [EXPLICIT] DX:AX   <- Sign Extend AX
     446             :   ASMJIT_INST_1x(cwde, Cwde, Gp_EAX)                                   // ANY [EXPLICIT] EAX     <- Sign Extend AX
     447             :   ASMJIT_INST_1x(call, Call, Gp)                                       // ANY
     448             :   ASMJIT_INST_1x(call, Call, Mem)                                      // ANY
     449             :   ASMJIT_INST_1x(call, Call, Label)                                    // ANY
     450             :   ASMJIT_INST_1x(call, Call, Imm)                                      // ANY
     451             :   ASMJIT_INST_2c(cmov, Cmov, Inst::cmovccFromCond, Gp, Gp)             // CMOV
     452             :   ASMJIT_INST_2c(cmov, Cmov, Inst::cmovccFromCond, Gp, Mem)            // CMOV
     453             :   ASMJIT_INST_2x(cmp, Cmp, Gp, Gp)                                     // ANY
     454             :   ASMJIT_INST_2x(cmp, Cmp, Gp, Mem)                                    // ANY
     455             :   ASMJIT_INST_2x(cmp, Cmp, Gp, Imm)                                    // ANY
     456             :   ASMJIT_INST_2x(cmp, Cmp, Mem, Gp)                                    // ANY
     457             :   ASMJIT_INST_2x(cmp, Cmp, Mem, Imm)                                   // ANY
     458             :   ASMJIT_INST_2x(cmps, Cmps, DS_ZSI, ES_ZDI)                           // ANY [EXPLICIT]
     459             :   ASMJIT_INST_3x(cmpxchg, Cmpxchg, Gp, Gp, Gp_ZAX)                     // I486 [EXPLICIT]
     460             :   ASMJIT_INST_3x(cmpxchg, Cmpxchg, Mem, Gp, Gp_ZAX)                    // I486 [EXPLICIT]
     461             :   ASMJIT_INST_5x(cmpxchg16b, Cmpxchg16b, Mem, Gp_RDX, Gp_RAX, Gp_RCX, Gp_RBX); // CMPXCHG16B [EXPLICIT] m == EDX:EAX ? m <- ECX:EBX
     462             :   ASMJIT_INST_5x(cmpxchg8b, Cmpxchg8b, Mem, Gp_EDX, Gp_EAX, Gp_ECX, Gp_EBX);   // CMPXCHG8B  [EXPLICIT] m == RDX:RAX ? m <- RCX:RBX
     463             :   ASMJIT_INST_1x(dec, Dec, Gp)                                         // ANY
     464             :   ASMJIT_INST_1x(dec, Dec, Mem)                                        // ANY
     465             :   ASMJIT_INST_2x(div, Div, Gp, Gp)                                     // ANY [EXPLICIT]  AH[Rem]: AL[Quot] <- AX / r8
     466             :   ASMJIT_INST_2x(div, Div, Gp, Mem)                                    // ANY [EXPLICIT]  AH[Rem]: AL[Quot] <- AX / m8
     467             :   ASMJIT_INST_3x(div, Div, Gp, Gp, Gp)                                 // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / r16|r32|r64
     468             :   ASMJIT_INST_3x(div, Div, Gp, Gp, Mem)                                // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / m16|m32|m64
     469             :   ASMJIT_INST_2x(idiv, Idiv, Gp, Gp)                                   // ANY [EXPLICIT]  AH[Rem]: AL[Quot] <- AX / r8
     470             :   ASMJIT_INST_2x(idiv, Idiv, Gp, Mem)                                  // ANY [EXPLICIT]  AH[Rem]: AL[Quot] <- AX / m8
     471             :   ASMJIT_INST_3x(idiv, Idiv, Gp, Gp, Gp)                               // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / r16|r32|r64
     472             :   ASMJIT_INST_3x(idiv, Idiv, Gp, Gp, Mem)                              // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / m16|m32|m64
     473             :   ASMJIT_INST_2x(imul, Imul, Gp, Gp)                                   // ANY [EXPLICIT] AX <- AL * r8 | ra <- ra * rb
     474             :   ASMJIT_INST_2x(imul, Imul, Gp, Mem)                                  // ANY [EXPLICIT] AX <- AL * m8 | ra <- ra * m16|m32|m64
     475             :   ASMJIT_INST_2x(imul, Imul, Gp, Imm)                                  // ANY
     476             :   ASMJIT_INST_3x(imul, Imul, Gp, Gp, Imm)                              // ANY
     477             :   ASMJIT_INST_3x(imul, Imul, Gp, Mem, Imm)                             // ANY
     478             :   ASMJIT_INST_3x(imul, Imul, Gp, Gp, Gp)                               // ANY [EXPLICIT] xDX:xAX <- xAX * r16|r32|r64
     479             :   ASMJIT_INST_3x(imul, Imul, Gp, Gp, Mem)                              // ANY [EXPLICIT] xDX:xAX <- xAX * m16|m32|m64
     480             :   ASMJIT_INST_1x(inc, Inc, Gp)                                         // ANY
     481             :   ASMJIT_INST_1x(inc, Inc, Mem)                                        // ANY
     482             :   ASMJIT_INST_1c(j, J, Inst::jccFromCond, Label)                       // ANY
     483             :   ASMJIT_INST_1c(j, J, Inst::jccFromCond, Imm)                         // ANY
     484             :   ASMJIT_INST_2x(jecxz, Jecxz, Gp, Label)                              // ANY [EXPLICIT] Short jump if CX/ECX/RCX is zero.
     485             :   ASMJIT_INST_2x(jecxz, Jecxz, Gp, Imm)                                // ANY [EXPLICIT] Short jump if CX/ECX/RCX is zero.
     486             :   ASMJIT_INST_1x(jmp, Jmp, Gp)                                         // ANY
     487             :   ASMJIT_INST_1x(jmp, Jmp, Mem)                                        // ANY
     488           0 :   ASMJIT_INST_1x(jmp, Jmp, Label)                                      // ANY
     489             :   ASMJIT_INST_1x(jmp, Jmp, Imm)                                        // ANY
     490             :   ASMJIT_INST_2x(lcall, Lcall, Imm, Imm)                               // ANY
     491             :   ASMJIT_INST_1x(lcall, Lcall, Mem)                                    // ANY
     492           0 :   ASMJIT_INST_2x(lea, Lea, Gp, Mem)                                    // ANY
     493             :   ASMJIT_INST_2x(ljmp, Ljmp, Imm, Imm)                                 // ANY
     494             :   ASMJIT_INST_1x(ljmp, Ljmp, Mem)                                      // ANY
     495             :   ASMJIT_INST_2x(lods, Lods, Gp_ZAX, DS_ZSI)                           // ANY [EXPLICIT]
     496             :   ASMJIT_INST_2x(loop, Loop, Gp_ZCX, Label)                            // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0.
     497             :   ASMJIT_INST_2x(loop, Loop, Gp_ZCX, Imm)                              // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0.
     498             :   ASMJIT_INST_2x(loope, Loope, Gp_ZCX, Label)                          // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
     499             :   ASMJIT_INST_2x(loope, Loope, Gp_ZCX, Imm)                            // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
     500             :   ASMJIT_INST_2x(loopne, Loopne, Gp_ZCX, Label)                        // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
     501             :   ASMJIT_INST_2x(loopne, Loopne, Gp_ZCX, Imm)                          // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
     502           0 :   ASMJIT_INST_2x(mov, Mov, Gp, Gp)                                     // ANY
     503           0 :   ASMJIT_INST_2x(mov, Mov, Gp, Mem)                                    // ANY
     504       88236 :   ASMJIT_INST_2x(mov, Mov, Gp, Imm)                                    // ANY
     505           0 :   ASMJIT_INST_2x(mov, Mov, Mem, Gp)                                    // ANY
     506           0 :   ASMJIT_INST_2x(mov, Mov, Mem, Imm)                                   // ANY
     507             :   ASMJIT_INST_2x(mov, Mov, Gp, CReg)                                   // ANY
     508             :   ASMJIT_INST_2x(mov, Mov, CReg, Gp)                                   // ANY
     509             :   ASMJIT_INST_2x(mov, Mov, Gp, DReg)                                   // ANY
     510             :   ASMJIT_INST_2x(mov, Mov, DReg, Gp)                                   // ANY
     511             :   ASMJIT_INST_2x(mov, Mov, Gp, SReg)                                   // ANY
     512             :   ASMJIT_INST_2x(mov, Mov, Mem, SReg)                                  // ANY
     513             :   ASMJIT_INST_2x(mov, Mov, SReg, Gp)                                   // ANY
     514             :   ASMJIT_INST_2x(mov, Mov, SReg, Mem)                                  // ANY
     515             :   ASMJIT_INST_2x(movabs, Movabs, Gp, Mem)                              // X64
     516             :   ASMJIT_INST_2x(movabs, Movabs, Gp, Imm)                              // X64
     517             :   ASMJIT_INST_2x(movabs, Movabs, Mem, Gp)                              // X64
     518             :   ASMJIT_INST_2x(movnti, Movnti, Mem, Gp)                              // SSE2
     519             :   ASMJIT_INST_2x(movs, Movs, ES_ZDI, DS_ZSI)                           // ANY [EXPLICIT]
     520             :   ASMJIT_INST_2x(movsx, Movsx, Gp, Gp)                                 // ANY
     521             :   ASMJIT_INST_2x(movsx, Movsx, Gp, Mem)                                // ANY
     522             :   ASMJIT_INST_2x(movsxd, Movsxd, Gp, Gp)                               // X64
     523             :   ASMJIT_INST_2x(movsxd, Movsxd, Gp, Mem)                              // X64
     524             :   ASMJIT_INST_2x(movzx, Movzx, Gp, Gp)                                 // ANY
     525             :   ASMJIT_INST_2x(movzx, Movzx, Gp, Mem)                                // ANY
     526             :   ASMJIT_INST_2x(mul, Mul, Gp_AX, Gp)                                  // ANY [EXPLICIT] AX      <-  AL * r8
     527             :   ASMJIT_INST_2x(mul, Mul, Gp_AX, Mem)                                 // ANY [EXPLICIT] AX      <-  AL * m8
     528             :   ASMJIT_INST_3x(mul, Mul, Gp_ZDX, Gp_ZAX, Gp)                         // ANY [EXPLICIT] xDX:xAX <- xAX * r16|r32|r64
     529             :   ASMJIT_INST_3x(mul, Mul, Gp_ZDX, Gp_ZAX, Mem)                        // ANY [EXPLICIT] xDX:xAX <- xAX * m16|m32|m64
     530             :   ASMJIT_INST_1x(neg, Neg, Gp)                                         // ANY
     531             :   ASMJIT_INST_1x(neg, Neg, Mem)                                        // ANY
     532             :   ASMJIT_INST_0x(nop, Nop)                                             // ANY
     533             :   ASMJIT_INST_1x(nop, Nop, Gp)                                         // ANY
     534             :   ASMJIT_INST_1x(nop, Nop, Mem)                                        // ANY
     535             :   ASMJIT_INST_2x(nop, Nop, Gp, Gp)                                     // ANY
     536             :   ASMJIT_INST_2x(nop, Nop, Mem, Gp)                                    // ANY
     537             :   ASMJIT_INST_1x(not_, Not, Gp)                                        // ANY
     538             :   ASMJIT_INST_1x(not_, Not, Mem)                                       // ANY
     539             :   ASMJIT_INST_2x(or_, Or, Gp, Gp)                                      // ANY
     540             :   ASMJIT_INST_2x(or_, Or, Gp, Mem)                                     // ANY
     541             :   ASMJIT_INST_2x(or_, Or, Gp, Imm)                                     // ANY
     542             :   ASMJIT_INST_2x(or_, Or, Mem, Gp)                                     // ANY
     543             :   ASMJIT_INST_2x(or_, Or, Mem, Imm)                                    // ANY
     544           0 :   ASMJIT_INST_1x(pop, Pop, Gp)                                         // ANY
     545             :   ASMJIT_INST_1x(pop, Pop, Mem)                                        // ANY
     546             :   ASMJIT_INST_1x(pop, Pop, SReg);                                      // ANY
     547             :   ASMJIT_INST_0x(popa, Popa)                                           // X86
     548             :   ASMJIT_INST_0x(popad, Popad)                                         // X86
     549             :   ASMJIT_INST_0x(popf, Popf)                                           // ANY
     550             :   ASMJIT_INST_0x(popfd, Popfd)                                         // X86
     551             :   ASMJIT_INST_0x(popfq, Popfq)                                         // X64
     552           0 :   ASMJIT_INST_1x(push, Push, Gp)                                       // ANY
     553             :   ASMJIT_INST_1x(push, Push, Mem)                                      // ANY
     554             :   ASMJIT_INST_1x(push, Push, SReg)                                     // ANY
     555             :   ASMJIT_INST_1x(push, Push, Imm)                                      // ANY
     556             :   ASMJIT_INST_0x(pusha, Pusha)                                         // X86
     557             :   ASMJIT_INST_0x(pushad, Pushad)                                       // X86
     558             :   ASMJIT_INST_0x(pushf, Pushf)                                         // ANY
     559             :   ASMJIT_INST_0x(pushfd, Pushfd)                                       // X86
     560             :   ASMJIT_INST_0x(pushfq, Pushfq)                                       // X64
     561             :   ASMJIT_INST_2x(rcl, Rcl, Gp, Gp_CL)                                  // ANY
     562             :   ASMJIT_INST_2x(rcl, Rcl, Mem, Gp_CL)                                 // ANY
     563             :   ASMJIT_INST_2x(rcl, Rcl, Gp, Imm)                                    // ANY
     564             :   ASMJIT_INST_2x(rcl, Rcl, Mem, Imm)                                   // ANY
     565             :   ASMJIT_INST_2x(rcr, Rcr, Gp, Gp_CL)                                  // ANY
     566             :   ASMJIT_INST_2x(rcr, Rcr, Mem, Gp_CL)                                 // ANY
     567             :   ASMJIT_INST_2x(rcr, Rcr, Gp, Imm)                                    // ANY
     568             :   ASMJIT_INST_2x(rcr, Rcr, Mem, Imm)                                   // ANY
     569             :   ASMJIT_INST_2x(rol, Rol, Gp, Gp_CL)                                  // ANY
     570             :   ASMJIT_INST_2x(rol, Rol, Mem, Gp_CL)                                 // ANY
     571             :   ASMJIT_INST_2x(rol, Rol, Gp, Imm)                                    // ANY
     572             :   ASMJIT_INST_2x(rol, Rol, Mem, Imm)                                   // ANY
     573             :   ASMJIT_INST_2x(ror, Ror, Gp, Gp_CL)                                  // ANY
     574             :   ASMJIT_INST_2x(ror, Ror, Mem, Gp_CL)                                 // ANY
     575             :   ASMJIT_INST_2x(ror, Ror, Gp, Imm)                                    // ANY
     576             :   ASMJIT_INST_2x(ror, Ror, Mem, Imm)                                   // ANY
     577             :   ASMJIT_INST_2x(sbb, Sbb, Gp, Gp)                                     // ANY
     578             :   ASMJIT_INST_2x(sbb, Sbb, Gp, Mem)                                    // ANY
     579             :   ASMJIT_INST_2x(sbb, Sbb, Gp, Imm)                                    // ANY
     580             :   ASMJIT_INST_2x(sbb, Sbb, Mem, Gp)                                    // ANY
     581             :   ASMJIT_INST_2x(sbb, Sbb, Mem, Imm)                                   // ANY
     582             :   ASMJIT_INST_2x(sal, Sal, Gp, Gp_CL)                                  // ANY
     583             :   ASMJIT_INST_2x(sal, Sal, Mem, Gp_CL)                                 // ANY
     584             :   ASMJIT_INST_2x(sal, Sal, Gp, Imm)                                    // ANY
     585             :   ASMJIT_INST_2x(sal, Sal, Mem, Imm)                                   // ANY
     586             :   ASMJIT_INST_2x(sar, Sar, Gp, Gp_CL)                                  // ANY
     587             :   ASMJIT_INST_2x(sar, Sar, Mem, Gp_CL)                                 // ANY
     588             :   ASMJIT_INST_2x(sar, Sar, Gp, Imm)                                    // ANY
     589             :   ASMJIT_INST_2x(sar, Sar, Mem, Imm)                                   // ANY
     590             :   ASMJIT_INST_2x(scas, Scas, Gp_ZAX, ES_ZDI)                           // ANY [EXPLICIT]
     591             :   ASMJIT_INST_1c(set, Set, Inst::setccFromCond, Gp)                    // ANY
     592             :   ASMJIT_INST_1c(set, Set, Inst::setccFromCond, Mem)                   // ANY
     593             :   ASMJIT_INST_2x(shl, Shl, Gp, Gp_CL)                                  // ANY
     594             :   ASMJIT_INST_2x(shl, Shl, Mem, Gp_CL)                                 // ANY
     595             :   ASMJIT_INST_2x(shl, Shl, Gp, Imm)                                    // ANY
     596             :   ASMJIT_INST_2x(shl, Shl, Mem, Imm)                                   // ANY
     597             :   ASMJIT_INST_2x(shr, Shr, Gp, Gp_CL)                                  // ANY
     598             :   ASMJIT_INST_2x(shr, Shr, Mem, Gp_CL)                                 // ANY
     599             :   ASMJIT_INST_2x(shr, Shr, Gp, Imm)                                    // ANY
     600             :   ASMJIT_INST_2x(shr, Shr, Mem, Imm)                                   // ANY
     601             :   ASMJIT_INST_3x(shld, Shld, Gp, Gp, Gp_CL)                            // ANY
     602             :   ASMJIT_INST_3x(shld, Shld, Mem, Gp, Gp_CL)                           // ANY
     603             :   ASMJIT_INST_3x(shld, Shld, Gp, Gp, Imm)                              // ANY
     604             :   ASMJIT_INST_3x(shld, Shld, Mem, Gp, Imm)                             // ANY
     605             :   ASMJIT_INST_3x(shrd, Shrd, Gp, Gp, Gp_CL)                            // ANY
     606             :   ASMJIT_INST_3x(shrd, Shrd, Mem, Gp, Gp_CL)                           // ANY
     607             :   ASMJIT_INST_3x(shrd, Shrd, Gp, Gp, Imm)                              // ANY
     608             :   ASMJIT_INST_3x(shrd, Shrd, Mem, Gp, Imm)                             // ANY
     609             :   ASMJIT_INST_2x(stos, Stos, ES_ZDI, Gp_ZAX)                           // ANY [EXPLICIT]
     610             :   ASMJIT_INST_2x(sub, Sub, Gp, Gp)                                     // ANY
     611             :   ASMJIT_INST_2x(sub, Sub, Gp, Mem)                                    // ANY
     612        4990 :   ASMJIT_INST_2x(sub, Sub, Gp, Imm)                                    // ANY
     613             :   ASMJIT_INST_2x(sub, Sub, Mem, Gp)                                    // ANY
     614             :   ASMJIT_INST_2x(sub, Sub, Mem, Imm)                                   // ANY
     615             :   ASMJIT_INST_2x(test, Test, Gp, Gp)                                   // ANY
     616             :   ASMJIT_INST_2x(test, Test, Gp, Imm)                                  // ANY
     617             :   ASMJIT_INST_2x(test, Test, Mem, Gp)                                  // ANY
     618             :   ASMJIT_INST_2x(test, Test, Mem, Imm)                                 // ANY
     619             :   ASMJIT_INST_2x(ud0, Ud0, Gp, Gp)                                     // ANY
     620             :   ASMJIT_INST_2x(ud0, Ud0, Gp, Mem)                                    // ANY
     621             :   ASMJIT_INST_2x(ud1, Ud1, Gp, Gp)                                     // ANY
     622             :   ASMJIT_INST_2x(ud1, Ud1, Gp, Mem)                                    // ANY
     623             :   ASMJIT_INST_0x(ud2, Ud2)                                             // ANY
     624             :   ASMJIT_INST_2x(xadd, Xadd, Gp, Gp)                                   // ANY
     625             :   ASMJIT_INST_2x(xadd, Xadd, Mem, Gp)                                  // ANY
     626             :   ASMJIT_INST_2x(xchg, Xchg, Gp, Gp)                                   // ANY
     627             :   ASMJIT_INST_2x(xchg, Xchg, Mem, Gp)                                  // ANY
     628             :   ASMJIT_INST_2x(xchg, Xchg, Gp, Mem)                                  // ANY
     629           0 :   ASMJIT_INST_2x(xor_, Xor, Gp, Gp)                                    // ANY
     630             :   ASMJIT_INST_2x(xor_, Xor, Gp, Mem)                                   // ANY
     631             :   ASMJIT_INST_2x(xor_, Xor, Gp, Imm)                                   // ANY
     632             :   ASMJIT_INST_2x(xor_, Xor, Mem, Gp)                                   // ANY
     633             :   ASMJIT_INST_2x(xor_, Xor, Mem, Imm)                                  // ANY
     634             : 
     635             :   //! \}
     636             : 
     637             :   //! \name Deprecated 32-bit Instructions
     638             :   //! \{
     639             : 
     640             :   ASMJIT_INST_1x(aaa, Aaa, Gp)                                         // X86 [EXPLICIT]
     641             :   ASMJIT_INST_2x(aad, Aad, Gp, Imm)                                    // X86 [EXPLICIT]
     642             :   ASMJIT_INST_2x(aam, Aam, Gp, Imm)                                    // X86 [EXPLICIT]
     643             :   ASMJIT_INST_1x(aas, Aas, Gp)                                         // X86 [EXPLICIT]
     644             :   ASMJIT_INST_1x(daa, Daa, Gp)                                         // X86 [EXPLICIT]
     645             :   ASMJIT_INST_1x(das, Das, Gp)                                         // X86 [EXPLICIT]
     646             : 
     647             :   //! \}
     648             : 
     649             :   //! \name ENTER/LEAVE Instructions
     650             :   //! \{
     651             : 
     652             :   ASMJIT_INST_2x(enter, Enter, Imm, Imm)                               // ANY
     653             :   ASMJIT_INST_0x(leave, Leave)                                         // ANY
     654             : 
     655             :   //! \}
     656             : 
     657             :   //! \name IN/OUT Instructions
     658             :   //! \{
     659             : 
     660             :   // NOTE: For some reason Doxygen is messed up here and thinks we are in cond.
     661             :   //! \endcond
     662             : 
     663             :   ASMJIT_INST_2x(in, In, Gp_ZAX, Imm)                                  // ANY
     664             :   ASMJIT_INST_2x(in, In, Gp_ZAX, Gp_DX)                                // ANY
     665             :   ASMJIT_INST_2x(ins, Ins, ES_ZDI, Gp_DX)                              // ANY
     666             :   ASMJIT_INST_2x(out, Out, Imm, Gp_ZAX)                                // ANY
     667             :   ASMJIT_INST_2x(out, Out, Gp_DX, Gp_ZAX)                              // ANY
     668             :   ASMJIT_INST_2x(outs, Outs, Gp_DX, DS_ZSI)                            // ANY
     669             : 
     670             :   //! \}
     671             : 
     672             :   //! \name Clear/Set CF/DF Instructions
     673             :   //! \{
     674             : 
     675             :   ASMJIT_INST_0x(clc, Clc)                                             // ANY
     676             :   ASMJIT_INST_0x(cld, Cld)                                             // ANY
     677             :   ASMJIT_INST_0x(cmc, Cmc)                                             // ANY
     678             :   ASMJIT_INST_0x(stc, Stc)                                             // ANY
     679             :   ASMJIT_INST_0x(std, Std)                                             // ANY
     680             : 
     681             :   //! \}
     682             : 
     683             :   //! \name LAHF/SAHF Instructions
     684             :   //! \{
     685             : 
     686             :   ASMJIT_INST_1x(lahf, Lahf, Gp_AH)                                    // LAHFSAHF [EXPLICIT] AH <- EFL
     687             :   ASMJIT_INST_1x(sahf, Sahf, Gp_AH)                                    // LAHFSAHF [EXPLICIT] EFL <- AH
     688             : 
     689             :   //! \}
     690             : 
     691             :   //! \name ADX Instructions
     692             :   //! \{
     693             : 
     694             :   ASMJIT_INST_2x(adcx, Adcx, Gp, Gp)                                   // ADX
     695             :   ASMJIT_INST_2x(adcx, Adcx, Gp, Mem)                                  // ADX
     696             :   ASMJIT_INST_2x(adox, Adox, Gp, Gp)                                   // ADX
     697             :   ASMJIT_INST_2x(adox, Adox, Gp, Mem)                                  // ADX
     698             : 
     699             :   //! \}
     700             : 
     701             :   //! \name LZCNT/POPCNT Instructions
     702             :   //! \{
     703             : 
     704             :   ASMJIT_INST_2x(lzcnt, Lzcnt, Gp, Gp)                                 // LZCNT
     705             :   ASMJIT_INST_2x(lzcnt, Lzcnt, Gp, Mem)                                // LZCNT
     706             :   ASMJIT_INST_2x(popcnt, Popcnt, Gp, Gp)                               // POPCNT
     707             :   ASMJIT_INST_2x(popcnt, Popcnt, Gp, Mem)                              // POPCNT
     708             : 
     709             :   //! \}
     710             : 
     711             :   //! \name BMI Instructions
     712             :   //! \{
     713             : 
     714             :   ASMJIT_INST_3x(andn, Andn, Gp, Gp, Gp)                               // BMI
     715             :   ASMJIT_INST_3x(andn, Andn, Gp, Gp, Mem)                              // BMI
     716             :   ASMJIT_INST_3x(bextr, Bextr, Gp, Gp, Gp)                             // BMI
     717             :   ASMJIT_INST_3x(bextr, Bextr, Gp, Mem, Gp)                            // BMI
     718             :   ASMJIT_INST_2x(blsi, Blsi, Gp, Gp)                                   // BMI
     719             :   ASMJIT_INST_2x(blsi, Blsi, Gp, Mem)                                  // BMI
     720             :   ASMJIT_INST_2x(blsmsk, Blsmsk, Gp, Gp)                               // BMI
     721             :   ASMJIT_INST_2x(blsmsk, Blsmsk, Gp, Mem)                              // BMI
     722             :   ASMJIT_INST_2x(blsr, Blsr, Gp, Gp)                                   // BMI
     723             :   ASMJIT_INST_2x(blsr, Blsr, Gp, Mem)                                  // BMI
     724             :   ASMJIT_INST_2x(tzcnt, Tzcnt, Gp, Gp)                                 // BMI
     725             :   ASMJIT_INST_2x(tzcnt, Tzcnt, Gp, Mem)                                // BMI
     726             : 
     727             :   //! \}
     728             : 
     729             :   //! \name BMI2 Instructions
     730             :   //! \{
     731             : 
     732             :   ASMJIT_INST_3x(bzhi, Bzhi, Gp, Gp, Gp)                               // BMI2
     733             :   ASMJIT_INST_3x(bzhi, Bzhi, Gp, Mem, Gp)                              // BMI2
     734             :   ASMJIT_INST_4x(mulx, Mulx, Gp, Gp, Gp, Gp_ZDX)                       // BMI2      [EXPLICIT]
     735             :   ASMJIT_INST_4x(mulx, Mulx, Gp, Gp, Mem, Gp_ZDX)                      // BMI2      [EXPLICIT]
     736             :   ASMJIT_INST_3x(pdep, Pdep, Gp, Gp, Gp)                               // BMI2
     737             :   ASMJIT_INST_3x(pdep, Pdep, Gp, Gp, Mem)                              // BMI2
     738             :   ASMJIT_INST_3x(pext, Pext, Gp, Gp, Gp)                               // BMI2
     739             :   ASMJIT_INST_3x(pext, Pext, Gp, Gp, Mem)                              // BMI2
     740             :   ASMJIT_INST_3x(rorx, Rorx, Gp, Gp, Imm)                              // BMI2
     741             :   ASMJIT_INST_3x(rorx, Rorx, Gp, Mem, Imm)                             // BMI2
     742             :   ASMJIT_INST_3x(sarx, Sarx, Gp, Gp, Gp)                               // BMI2
     743             :   ASMJIT_INST_3x(sarx, Sarx, Gp, Mem, Gp)                              // BMI2
     744             :   ASMJIT_INST_3x(shlx, Shlx, Gp, Gp, Gp)                               // BMI2
     745             :   ASMJIT_INST_3x(shlx, Shlx, Gp, Mem, Gp)                              // BMI2
     746             :   ASMJIT_INST_3x(shrx, Shrx, Gp, Gp, Gp)                               // BMI2
     747             :   ASMJIT_INST_3x(shrx, Shrx, Gp, Mem, Gp)                              // BMI2
     748             : 
     749             :   //! \}
     750             : 
     751             :   //! \name TBM Instructions
     752             :   //! \{
     753             : 
     754             :   ASMJIT_INST_2x(blcfill, Blcfill, Gp, Gp)                             // TBM
     755             :   ASMJIT_INST_2x(blcfill, Blcfill, Gp, Mem)                            // TBM
     756             :   ASMJIT_INST_2x(blci, Blci, Gp, Gp)                                   // TBM
     757             :   ASMJIT_INST_2x(blci, Blci, Gp, Mem)                                  // TBM
     758             :   ASMJIT_INST_2x(blcic, Blcic, Gp, Gp)                                 // TBM
     759             :   ASMJIT_INST_2x(blcic, Blcic, Gp, Mem)                                // TBM
     760             :   ASMJIT_INST_2x(blcmsk, Blcmsk, Gp, Gp)                               // TBM
     761             :   ASMJIT_INST_2x(blcmsk, Blcmsk, Gp, Mem)                              // TBM
     762             :   ASMJIT_INST_2x(blcs, Blcs, Gp, Gp)                                   // TBM
     763             :   ASMJIT_INST_2x(blcs, Blcs, Gp, Mem)                                  // TBM
     764             :   ASMJIT_INST_2x(blsfill, Blsfill, Gp, Gp)                             // TBM
     765             :   ASMJIT_INST_2x(blsfill, Blsfill, Gp, Mem)                            // TBM
     766             :   ASMJIT_INST_2x(blsic, Blsic, Gp, Gp)                                 // TBM
     767             :   ASMJIT_INST_2x(blsic, Blsic, Gp, Mem)                                // TBM
     768             :   ASMJIT_INST_2x(t1mskc, T1mskc, Gp, Gp)                               // TBM
     769             :   ASMJIT_INST_2x(t1mskc, T1mskc, Gp, Mem)                              // TBM
     770             :   ASMJIT_INST_2x(tzmsk, Tzmsk, Gp, Gp)                                 // TBM
     771             :   ASMJIT_INST_2x(tzmsk, Tzmsk, Gp, Mem)                                // TBM
     772             : 
     773             :   //! \}
     774             : 
     775             :   //! \name CRC32 Instructions (SSE4.2)
     776             :   //! \{
     777             : 
     778             :   ASMJIT_INST_2x(crc32, Crc32, Gp, Gp)                                 // SSE4_2
     779             :   ASMJIT_INST_2x(crc32, Crc32, Gp, Mem)                                // SSE4_2
     780             : 
     781             :   //! \}
     782             : 
     783             :   //! \name MOVBE Instructions
     784             :   //! \{
     785             : 
     786             :   ASMJIT_INST_2x(movbe, Movbe, Gp, Mem)                                // MOVBE
     787             :   ASMJIT_INST_2x(movbe, Movbe, Mem, Gp)                                // MOVBE
     788             : 
     789             :   //! \}
     790             : 
     791             :   //! \name MOVDIRI & MOVDIR64B Instructions
     792             :   //! \{
     793             : 
     794             :   ASMJIT_INST_2x(movdiri, Movdiri, Mem, Gp)                            // MOVDIRI
     795             :   ASMJIT_INST_2x(movdir64b, Movdir64b, Mem, Mem)                       // MOVDIR64B
     796             : 
     797             :   //! \}
     798             : 
     799             :   //! \name MXCSR Instructions (SSE)
     800             :   //! \{
     801             : 
     802             :   ASMJIT_INST_1x(ldmxcsr, Ldmxcsr, Mem)                                // SSE
     803             :   ASMJIT_INST_1x(stmxcsr, Stmxcsr, Mem)                                // SSE
     804             : 
     805             :   //! \}
     806             : 
     807             :   //! \name FENCE Instructions (SSE and SSE2)
     808             :   //! \{
     809             : 
     810             :   ASMJIT_INST_0x(lfence, Lfence)                                       // SSE2
     811             :   ASMJIT_INST_0x(mfence, Mfence)                                       // SSE2
     812             :   ASMJIT_INST_0x(sfence, Sfence)                                       // SSE
     813             : 
     814             :   //! \}
     815             : 
     816             :   //! \name PREFETCH Instructions
     817             :   //! \{
     818             : 
     819             :   ASMJIT_INST_1x(prefetch, Prefetch, Mem)                              // 3DNOW
     820             :   ASMJIT_INST_1x(prefetchnta, Prefetchnta, Mem)                        // SSE
     821             :   ASMJIT_INST_1x(prefetcht0, Prefetcht0, Mem)                          // SSE
     822             :   ASMJIT_INST_1x(prefetcht1, Prefetcht1, Mem)                          // SSE
     823             :   ASMJIT_INST_1x(prefetcht2, Prefetcht2, Mem)                          // SSE
     824             :   ASMJIT_INST_1x(prefetchw, Prefetchw, Mem)                            // PREFETCHW
     825             :   ASMJIT_INST_1x(prefetchwt1, Prefetchwt1, Mem)                        // PREFETCHW1
     826             : 
     827             :   //! \}
     828             : 
     829             :   //! \name CPUID Instruction
     830             :   //! \{
     831             : 
     832             :   ASMJIT_INST_4x(cpuid, Cpuid, Gp_EAX, Gp_EBX, Gp_ECX, Gp_EDX)         // I486 [EXPLICIT] EAX:EBX:ECX:EDX <- CPUID[EAX:ECX]
     833             : 
     834             :   //! \}
     835             : 
     836             :   //! \name CacheLine Instructions
     837             :   //! \{
     838             : 
     839             :   ASMJIT_INST_1x(cldemote, Cldemote, Mem)                              // CLDEMOTE
     840             :   ASMJIT_INST_1x(clflush, Clflush, Mem)                                // CLFLUSH
     841             :   ASMJIT_INST_1x(clflushopt, Clflushopt, Mem)                          // CLFLUSH_OPT
     842             :   ASMJIT_INST_1x(clwb, Clwb, Mem)                                      // CLWB
     843             :   ASMJIT_INST_1x(clzero, Clzero, DS_ZAX)                               // CLZERO [EXPLICIT]
     844             : 
     845             :   //! \}
     846             : 
     847             :   //! \name SERIALIZE Instruction
     848             :   //! \{
     849             : 
     850             :   ASMJIT_INST_0x(serialize, Serialize)                                 // SERIALIZE
     851             : 
     852             :   //! \}
     853             : 
     854             :   //! \name RDPID Instruction
     855             :   //! \{
     856             : 
     857             :   ASMJIT_INST_1x(rdpid, Rdpid, Gp)                                     // RDPID
     858             : 
     859             :   //! \}
     860             : 
     861             :   //! \name RDPRU/RDPKRU Instructions
     862             :   //! \{
     863             : 
     864             :   ASMJIT_INST_3x(rdpru, Rdpru, Gp_EDX, Gp_EAX, Gp_ECX)                 // RDPRU     [EXPLICIT] EDX:EAX <- PRU[ECX]
     865             :   ASMJIT_INST_3x(rdpkru, Rdpkru, Gp_EDX, Gp_EAX, Gp_ECX)               // RDPKRU    [EXPLICIT] EDX:EAX <- PKRU[ECX]
     866             : 
     867             :   //! \}
     868             : 
     869             :   //! \name RDTSC/RDTSCP Instructions
     870             :   //! \{
     871             : 
     872             :   ASMJIT_INST_2x(rdtsc, Rdtsc, Gp_EDX, Gp_EAX)                         // RDTSC     [EXPLICIT] EDX:EAX     <- Counter
     873             :   ASMJIT_INST_3x(rdtscp, Rdtscp, Gp_EDX, Gp_EAX, Gp_ECX)               // RDTSCP    [EXPLICIT] EDX:EAX:EXC <- Counter
     874             : 
     875             :   //! \}
     876             : 
     877             :   //! \name Other User-Mode Instructions
     878             :   //! \{
     879             : 
     880             :   ASMJIT_INST_2x(arpl, Arpl, Gp, Gp)                                   // X86
     881             :   ASMJIT_INST_2x(arpl, Arpl, Mem, Gp)                                  // X86
     882             :   ASMJIT_INST_0x(cli, Cli)                                             // ANY
     883             :   ASMJIT_INST_0x(getsec, Getsec)                                       // SMX
     884             :   ASMJIT_INST_1x(int_, Int, Imm)                                       // ANY
     885             :   ASMJIT_INST_0x(int3, Int3)                                           // ANY
     886             :   ASMJIT_INST_0x(into, Into)                                           // ANY
     887             :   ASMJIT_INST_2x(lar, Lar, Gp, Gp)                                     // ANY
     888             :   ASMJIT_INST_2x(lar, Lar, Gp, Mem)                                    // ANY
     889             :   ASMJIT_INST_2x(lds, Lds, Gp, Mem)                                    // X86
     890             :   ASMJIT_INST_2x(les, Les, Gp, Mem)                                    // X86
     891             :   ASMJIT_INST_2x(lfs, Lfs, Gp, Mem)                                    // ANY
     892             :   ASMJIT_INST_2x(lgs, Lgs, Gp, Mem)                                    // ANY
     893             :   ASMJIT_INST_2x(lsl, Lsl, Gp, Gp)                                     // ANY
     894             :   ASMJIT_INST_2x(lsl, Lsl, Gp, Mem)                                    // ANY
     895             :   ASMJIT_INST_2x(lss, Lss, Gp, Mem)                                    // ANY
     896             :   ASMJIT_INST_0x(pause, Pause)                                         // SSE2
     897             :   ASMJIT_INST_0x(rsm, Rsm)                                             // X86
     898             :   ASMJIT_INST_1x(sgdt, Sgdt, Mem)                                      // ANY
     899             :   ASMJIT_INST_1x(sidt, Sidt, Mem)                                      // ANY
     900             :   ASMJIT_INST_1x(sldt, Sldt, Gp)                                       // ANY
     901             :   ASMJIT_INST_1x(sldt, Sldt, Mem)                                      // ANY
     902             :   ASMJIT_INST_1x(smsw, Smsw, Gp)                                       // ANY
     903             :   ASMJIT_INST_1x(smsw, Smsw, Mem)                                      // ANY
     904             :   ASMJIT_INST_0x(sti, Sti)                                             // ANY
     905             :   ASMJIT_INST_1x(str, Str, Gp)                                         // ANY
     906             :   ASMJIT_INST_1x(str, Str, Mem)                                        // ANY
     907             :   ASMJIT_INST_1x(verr, Verr, Gp)                                       // ANY
     908             :   ASMJIT_INST_1x(verr, Verr, Mem)                                      // ANY
     909             :   ASMJIT_INST_1x(verw, Verw, Gp)                                       // ANY
     910             :   ASMJIT_INST_1x(verw, Verw, Mem)                                      // ANY
     911             : 
     912             :   //! \}
     913             : 
     914             :   //! \name FSGSBASE Instructions
     915             :   //! \{
     916             : 
     917             :   ASMJIT_INST_1x(rdfsbase, Rdfsbase, Gp)                               // FSGSBASE
     918             :   ASMJIT_INST_1x(rdgsbase, Rdgsbase, Gp)                               // FSGSBASE
     919             :   ASMJIT_INST_1x(wrfsbase, Wrfsbase, Gp)                               // FSGSBASE
     920             :   ASMJIT_INST_1x(wrgsbase, Wrgsbase, Gp)                               // FSGSBASE
     921             : 
     922             :   //! \}
     923             : 
     924             :   //! \name FXSR Instructions
     925             :   //! \{
     926             : 
     927             :   ASMJIT_INST_1x(fxrstor, Fxrstor, Mem)                                // FXSR
     928             :   ASMJIT_INST_1x(fxrstor64, Fxrstor64, Mem)                            // FXSR
     929             :   ASMJIT_INST_1x(fxsave, Fxsave, Mem)                                  // FXSR
     930             :   ASMJIT_INST_1x(fxsave64, Fxsave64, Mem)                              // FXSR
     931             : 
     932             :   //! \}
     933             : 
     934             :   //! \name XSAVE Instructions
     935             :   //! \{
     936             : 
     937             :   ASMJIT_INST_3x(xgetbv, Xgetbv, Gp_EDX, Gp_EAX, Gp_ECX)               // XSAVE     [EXPLICIT] EDX:EAX <- XCR[ECX]
     938             :   ASMJIT_INST_3x(xrstor, Xrstor, Mem, Gp_EDX, Gp_EAX)                  // XSAVE     [EXPLICIT]
     939             :   ASMJIT_INST_3x(xrstor64, Xrstor64, Mem, Gp_EDX, Gp_EAX)              // XSAVE+X64 [EXPLICIT]
     940             :   ASMJIT_INST_3x(xrstors, Xrstors, Mem, Gp_EDX, Gp_EAX)                // XSAVE     [EXPLICIT]
     941             :   ASMJIT_INST_3x(xrstors64, Xrstors64, Mem, Gp_EDX, Gp_EAX)            // XSAVE+X64 [EXPLICIT]
     942             :   ASMJIT_INST_3x(xsave, Xsave, Mem, Gp_EDX, Gp_EAX)                    // XSAVE     [EXPLICIT]
     943             :   ASMJIT_INST_3x(xsave64, Xsave64, Mem, Gp_EDX, Gp_EAX)                // XSAVE+X64 [EXPLICIT]
     944             :   ASMJIT_INST_3x(xsavec, Xsavec, Mem, Gp_EDX, Gp_EAX)                  // XSAVE     [EXPLICIT]
     945             :   ASMJIT_INST_3x(xsavec64, Xsavec64, Mem, Gp_EDX, Gp_EAX)              // XSAVE+X64 [EXPLICIT]
     946             :   ASMJIT_INST_3x(xsaveopt, Xsaveopt, Mem, Gp_EDX, Gp_EAX)              // XSAVE     [EXPLICIT]
     947             :   ASMJIT_INST_3x(xsaveopt64, Xsaveopt64, Mem, Gp_EDX, Gp_EAX)          // XSAVE+X64 [EXPLICIT]
     948             :   ASMJIT_INST_3x(xsaves, Xsaves, Mem, Gp_EDX, Gp_EAX)                  // XSAVE     [EXPLICIT]
     949             :   ASMJIT_INST_3x(xsaves64, Xsaves64, Mem, Gp_EDX, Gp_EAX)              // XSAVE+X64 [EXPLICIT]
     950             : 
     951             :   //! \}
     952             : 
     953             :   //! \name MPX Extensions
     954             :   //! \{
     955             : 
     956             :   ASMJIT_INST_2x(bndcl, Bndcl, Bnd, Gp)                                // MPX
     957             :   ASMJIT_INST_2x(bndcl, Bndcl, Bnd, Mem)                               // MPX
     958             :   ASMJIT_INST_2x(bndcn, Bndcn, Bnd, Gp)                                // MPX
     959             :   ASMJIT_INST_2x(bndcn, Bndcn, Bnd, Mem)                               // MPX
     960             :   ASMJIT_INST_2x(bndcu, Bndcu, Bnd, Gp)                                // MPX
     961             :   ASMJIT_INST_2x(bndcu, Bndcu, Bnd, Mem)                               // MPX
     962             :   ASMJIT_INST_2x(bndldx, Bndldx, Bnd, Mem)                             // MPX
     963             :   ASMJIT_INST_2x(bndmk, Bndmk, Bnd, Mem)                               // MPX
     964             :   ASMJIT_INST_2x(bndmov, Bndmov, Bnd, Bnd)                             // MPX
     965             :   ASMJIT_INST_2x(bndmov, Bndmov, Bnd, Mem)                             // MPX
     966             :   ASMJIT_INST_2x(bndmov, Bndmov, Mem, Bnd)                             // MPX
     967             :   ASMJIT_INST_2x(bndstx, Bndstx, Mem, Bnd)                             // MPX
     968             : 
     969             :   //! \}
     970             : 
     971             :   //! \name MONITORX Instructions
     972             :   //! \{
     973             : 
     974             :   ASMJIT_INST_3x(monitorx, Monitorx, Mem, Gp, Gp)                      // MONITORX
     975             :   ASMJIT_INST_3x(mwaitx, Mwaitx, Gp, Gp, Gp)                           // MONITORX
     976             : 
     977             :   //! \}
     978             : 
     979             :   //! \name MCOMMIT Instruction
     980             :   //! \{
     981             : 
     982             :   ASMJIT_INST_0x(mcommit, Mcommit)                                     // MCOMMIT
     983             : 
     984             :   //! \}
     985             : 
     986             :   //! \name PTWRITE Instruction
     987             :   //! \{
     988             : 
     989             :   ASMJIT_INST_1x(ptwrite, Ptwrite, Gp)                                 // PTWRITE
     990             :   ASMJIT_INST_1x(ptwrite, Ptwrite, Mem)                                // PTWRITE
     991             : 
     992             :   //! \}
     993             : 
     994             :   //! \name ENQCMD Instructions
     995             :   //! \{
     996             : 
     997             :   ASMJIT_INST_2x(enqcmd, Enqcmd, Mem, Mem)                             // ENQCMD
     998             :   ASMJIT_INST_2x(enqcmds, Enqcmds, Mem, Mem)                           // ENQCMD
     999             : 
    1000             :   //! \}
    1001             : 
    1002             :   //! \name WAITPKG Instructions
    1003             :   //! \{
    1004             : 
    1005             :   ASMJIT_INST_3x(tpause, Tpause, Gp, Gp, Gp)                           // WAITPKG
    1006             :   ASMJIT_INST_1x(umonitor, Umonitor, Mem)                              // WAITPKG
    1007             :   ASMJIT_INST_3x(umwait, Umwait, Gp, Gp, Gp)                           // WAITPKG
    1008             : 
    1009             :   //! \}
    1010             : 
    1011             :   //! \name RDRAND & RDSEED Instructions
    1012             :   //! \{
    1013             : 
    1014             :   ASMJIT_INST_1x(rdrand, Rdrand, Gp)                                   // RDRAND
    1015             :   ASMJIT_INST_1x(rdseed, Rdseed, Gp)                                   // RDSEED
    1016             : 
    1017             :   //! \}
    1018             : 
    1019             :   //! \name LWP Instructions
    1020             :   //! \{
    1021             : 
    1022             :   ASMJIT_INST_1x(llwpcb, Llwpcb, Gp)                                   // LWP
    1023             :   ASMJIT_INST_3x(lwpins, Lwpins, Gp, Gp, Imm)                          // LWP
    1024             :   ASMJIT_INST_3x(lwpins, Lwpins, Gp, Mem, Imm)                         // LWP
    1025             :   ASMJIT_INST_3x(lwpval, Lwpval, Gp, Gp, Imm)                          // LWP
    1026             :   ASMJIT_INST_3x(lwpval, Lwpval, Gp, Mem, Imm)                         // LWP
    1027             :   ASMJIT_INST_1x(slwpcb, Slwpcb, Gp)                                   // LWP
    1028             : 
    1029             :   //! \}
    1030             : 
    1031             :   //! \name RTM & TSX Instructions
    1032             :   //! \{
    1033             : 
    1034             :   ASMJIT_INST_1x(xabort, Xabort, Imm)                                  // RTM
    1035             :   ASMJIT_INST_1x(xbegin, Xbegin, Label)                                // RTM
    1036             :   ASMJIT_INST_1x(xbegin, Xbegin, Imm)                                  // RTM
    1037             :   ASMJIT_INST_0x(xend, Xend)                                           // RTM
    1038             :   ASMJIT_INST_0x(xtest, Xtest)                                         // TSX
    1039             : 
    1040             :   //! \}
    1041             : 
    1042             :   //! \name TSXLDTRK Instructions
    1043             :   //! \{
    1044             : 
    1045             :   ASMJIT_INST_0x(xresldtrk, Xresldtrk)                                 // TSXLDTRK
    1046             :   ASMJIT_INST_0x(xsusldtrk, Xsusldtrk)                                 // TSXLDTRK
    1047             : 
    1048             :   //! \}
    1049             : 
    1050             :   //! \name CET-IBT Instructions
    1051             :   //! \{
    1052             : 
    1053             :   ASMJIT_INST_0x(endbr32, Endbr32)                                     // CET_IBT
    1054             :   ASMJIT_INST_0x(endbr64, Endbr64)                                     // CET_IBT
    1055             : 
    1056             :   //! \}
    1057             : 
    1058             :   //! \name CET-SS Instructions
    1059             :   //! \{
    1060             : 
    1061             :   ASMJIT_INST_1x(clrssbsy, Clrssbsy, Mem)                              // CET_SS
    1062             :   ASMJIT_INST_0x(setssbsy, Setssbsy)                                   // CET_SS
    1063             : 
    1064             :   ASMJIT_INST_1x(rstorssp, Rstorssp, Mem)                              // CET_SS
    1065             :   ASMJIT_INST_0x(saveprevssp, Saveprevssp)                             // CET_SS
    1066             : 
    1067             :   ASMJIT_INST_1x(incsspd, Incsspd, Gp)                                 // CET_SS
    1068             :   ASMJIT_INST_1x(incsspq, Incsspq, Gp)                                 // CET_SS
    1069             :   ASMJIT_INST_1x(rdsspd, Rdsspd, Gp)                                   // CET_SS
    1070             :   ASMJIT_INST_1x(rdsspq, Rdsspq, Gp)                                   // CET_SS
    1071             :   ASMJIT_INST_2x(wrssd, Wrssd, Gp, Gp)                                 // CET_SS
    1072             :   ASMJIT_INST_2x(wrssd, Wrssd, Mem, Gp)                                // CET_SS
    1073             :   ASMJIT_INST_2x(wrssq, Wrssq, Gp, Gp)                                 // CET_SS
    1074             :   ASMJIT_INST_2x(wrssq, Wrssq, Mem, Gp)                                // CET_SS
    1075             :   ASMJIT_INST_2x(wrussd, Wrussd, Gp, Gp)                               // CET_SS
    1076             :   ASMJIT_INST_2x(wrussd, Wrussd, Mem, Gp)                              // CET_SS
    1077             :   ASMJIT_INST_2x(wrussq, Wrussq, Gp, Gp)                               // CET_SS
    1078             :   ASMJIT_INST_2x(wrussq, Wrussq, Mem, Gp)                              // CET_SS
    1079             : 
    1080             :   //! \}
    1081             : 
    1082             :   //! \name HRESET Instructions
    1083             :   //! \{
    1084             : 
    1085             :   ASMJIT_INST_2x(hreset, Hreset, Imm, Gp)                              // HRESET
    1086             : 
    1087             :   //! \}
    1088             : 
    1089             :   //! \name UINTR Instructions
    1090             :   //! \{
    1091             : 
    1092             :   ASMJIT_INST_0x(clui, Clui)                                           // UINTR
    1093             :   ASMJIT_INST_1x(senduipi, Senduipi, Gp)                               // UINTR
    1094             :   ASMJIT_INST_0x(testui, Testui)                                       // UINTR
    1095             :   ASMJIT_INST_0x(stui, Stui)                                           // UINTR
    1096             :   ASMJIT_INST_0x(uiret, Uiret)                                         // UINTR
    1097             : 
    1098             :   //! \}
    1099             : 
    1100             :   //! \name Core Privileged Instructions
    1101             :   //! \{
    1102             : 
    1103             :   ASMJIT_INST_0x(clts, Clts)                                           // ANY
    1104             :   ASMJIT_INST_0x(hlt, Hlt)                                             // ANY
    1105             :   ASMJIT_INST_0x(invd, Invd)                                           // ANY
    1106             :   ASMJIT_INST_1x(invlpg, Invlpg, Mem)                                  // ANY
    1107             :   ASMJIT_INST_2x(invpcid, Invpcid, Gp, Mem)                            // ANY
    1108             :   ASMJIT_INST_1x(lgdt, Lgdt, Mem)                                      // ANY
    1109             :   ASMJIT_INST_1x(lidt, Lidt, Mem)                                      // ANY
    1110             :   ASMJIT_INST_1x(lldt, Lldt, Gp)                                       // ANY
    1111             :   ASMJIT_INST_1x(lldt, Lldt, Mem)                                      // ANY
    1112             :   ASMJIT_INST_1x(lmsw, Lmsw, Gp)                                       // ANY
    1113             :   ASMJIT_INST_1x(lmsw, Lmsw, Mem)                                      // ANY
    1114             :   ASMJIT_INST_1x(ltr, Ltr, Gp)                                         // ANY
    1115             :   ASMJIT_INST_1x(ltr, Ltr, Mem)                                        // ANY
    1116             :   ASMJIT_INST_3x(rdmsr, Rdmsr, Gp_EDX, Gp_EAX, Gp_ECX)                 // MSR       [EXPLICIT] RDX:EAX <- MSR[ECX]
    1117             :   ASMJIT_INST_3x(rdpmc, Rdpmc, Gp_EDX, Gp_EAX, Gp_ECX)                 // ANY       [EXPLICIT] RDX:EAX <- PMC[ECX]
    1118             :   ASMJIT_INST_0x(swapgs, Swapgs)                                       // X64
    1119             :   ASMJIT_INST_0x(wbinvd, Wbinvd)                                       // ANY
    1120             :   ASMJIT_INST_0x(wbnoinvd, Wbnoinvd)                                   // WBNOINVD
    1121             :   ASMJIT_INST_3x(wrmsr, Wrmsr, Gp_EDX, Gp_EAX, Gp_ECX)                 // MSR       [EXPLICIT] RDX:EAX  -> MSR[ECX]
    1122             :   ASMJIT_INST_3x(xsetbv, Xsetbv, Gp_EDX, Gp_EAX, Gp_ECX)               // XSAVE     [EXPLICIT] XCR[ECX] <- EDX:EAX
    1123             : 
    1124             :   //! \}
    1125             : 
    1126             :   //! \name MONITOR Instructions (Privileged)
    1127             :   //! \{
    1128             : 
    1129             :   ASMJIT_INST_3x(monitor, Monitor, Mem, Gp, Gp)                        // MONITOR
    1130             :   ASMJIT_INST_2x(mwait, Mwait, Gp, Gp)                                 // MONITOR
    1131             : 
    1132             :   //! \}
    1133             : 
    1134             :   //! \name SMAP Instructions (Privileged)
    1135             :   //! \{
    1136             : 
    1137             :   ASMJIT_INST_0x(clac, Clac)                                           // SMAP
    1138             :   ASMJIT_INST_0x(stac, Stac)                                           // SMAP
    1139             : 
    1140             :   //! \}
    1141             : 
    1142             :   //! \name SKINIT Instructions (Privileged)
    1143             :   //! \{
    1144             : 
    1145             :   ASMJIT_INST_1x(skinit, Skinit, Gp)                                   // SKINIT    [EXPLICIT] <eax>
    1146             :   ASMJIT_INST_0x(stgi, Stgi)                                           // SKINIT
    1147             : 
    1148             :   //! \}
    1149             : 
    1150             :   //! \name SNP Instructions (Privileged)
    1151             :   //! \{
    1152             : 
    1153             :   ASMJIT_INST_0x(psmash, Psmash)                                       // SNP
    1154             :   ASMJIT_INST_0x(pvalidate, Pvalidate)                                 // SNP
    1155             :   ASMJIT_INST_0x(rmpadjust, Rmpadjust)                                 // SNP
    1156             :   ASMJIT_INST_0x(rmpupdate, Rmpupdate)                                 // SNP
    1157             : 
    1158             :   //! \}
    1159             : 
    1160             :   //! \name VMX Instructions (All privileged except vmfunc)
    1161             :   //! \{
    1162             : 
    1163             :   ASMJIT_INST_2x(invept, Invept, Gp, Mem)                              // VMX
    1164             :   ASMJIT_INST_2x(invvpid, Invvpid, Gp, Mem)                            // VMX
    1165             :   ASMJIT_INST_0x(vmcall, Vmcall)                                       // VMX
    1166             :   ASMJIT_INST_1x(vmclear, Vmclear, Mem)                                // VMX
    1167             :   ASMJIT_INST_0x(vmfunc, Vmfunc)                                       // VMX
    1168             :   ASMJIT_INST_0x(vmlaunch, Vmlaunch)                                   // VMX
    1169             :   ASMJIT_INST_1x(vmptrld, Vmptrld, Mem)                                // VMX
    1170             :   ASMJIT_INST_1x(vmptrst, Vmptrst, Mem)                                // VMX
    1171             :   ASMJIT_INST_2x(vmread, Vmread, Gp, Gp)                               // VMX
    1172             :   ASMJIT_INST_2x(vmread, Vmread, Mem, Gp)                              // VMX
    1173             :   ASMJIT_INST_0x(vmresume, Vmresume)                                   // VMX
    1174             :   ASMJIT_INST_2x(vmwrite, Vmwrite, Gp, Mem)                            // VMX
    1175             :   ASMJIT_INST_2x(vmwrite, Vmwrite, Gp, Gp)                             // VMX
    1176             :   ASMJIT_INST_1x(vmxon, Vmxon, Mem)                                    // VMX
    1177             : 
    1178             :   //! \}
    1179             : 
    1180             :   //! \name SVM Instructions (All privileged except vmmcall)
    1181             :   //! \{
    1182             : 
    1183             :   ASMJIT_INST_0x(clgi, Clgi)                                           // SVM
    1184             :   ASMJIT_INST_2x(invlpga, Invlpga, Gp, Gp)                             // SVM       [EXPLICIT] <eax|rax, ecx>
    1185             :   ASMJIT_INST_1x(vmload, Vmload, Gp)                                   // SVM       [EXPLICIT] <zax>
    1186             :   ASMJIT_INST_0x(vmmcall, Vmmcall)                                     // SVM
    1187             :   ASMJIT_INST_1x(vmrun, Vmrun, Gp)                                     // SVM       [EXPLICIT] <zax>
    1188             :   ASMJIT_INST_1x(vmsave, Vmsave, Gp)                                   // SVM       [EXPLICIT] <zax>
    1189             : 
    1190             :   //! \}
    1191             : 
    1192             :   //! \name FPU Instructions
    1193             :   //! \{
    1194             : 
    1195             :   ASMJIT_INST_0x(f2xm1, F2xm1)                                         // FPU
    1196             :   ASMJIT_INST_0x(fabs, Fabs)                                           // FPU
    1197             :   ASMJIT_INST_2x(fadd, Fadd, St, St)                                   // FPU
    1198             :   ASMJIT_INST_1x(fadd, Fadd, Mem)                                      // FPU
    1199             :   ASMJIT_INST_1x(faddp, Faddp, St)                                     // FPU
    1200             :   ASMJIT_INST_0x(faddp, Faddp)                                         // FPU
    1201             :   ASMJIT_INST_1x(fbld, Fbld, Mem)                                      // FPU
    1202             :   ASMJIT_INST_1x(fbstp, Fbstp, Mem)                                    // FPU
    1203             :   ASMJIT_INST_0x(fchs, Fchs)                                           // FPU
    1204             :   ASMJIT_INST_0x(fclex, Fclex)                                         // FPU
    1205             :   ASMJIT_INST_1x(fcmovb, Fcmovb, St)                                   // FPU
    1206             :   ASMJIT_INST_1x(fcmovbe, Fcmovbe, St)                                 // FPU
    1207             :   ASMJIT_INST_1x(fcmove, Fcmove, St)                                   // FPU
    1208             :   ASMJIT_INST_1x(fcmovnb, Fcmovnb, St)                                 // FPU
    1209             :   ASMJIT_INST_1x(fcmovnbe, Fcmovnbe, St)                               // FPU
    1210             :   ASMJIT_INST_1x(fcmovne, Fcmovne, St)                                 // FPU
    1211             :   ASMJIT_INST_1x(fcmovnu, Fcmovnu, St)                                 // FPU
    1212             :   ASMJIT_INST_1x(fcmovu, Fcmovu, St)                                   // FPU
    1213             :   ASMJIT_INST_1x(fcom, Fcom, St)                                       // FPU
    1214             :   ASMJIT_INST_0x(fcom, Fcom)                                           // FPU
    1215             :   ASMJIT_INST_1x(fcom, Fcom, Mem)                                      // FPU
    1216             :   ASMJIT_INST_1x(fcomp, Fcomp, St)                                     // FPU
    1217             :   ASMJIT_INST_0x(fcomp, Fcomp)                                         // FPU
    1218             :   ASMJIT_INST_1x(fcomp, Fcomp, Mem)                                    // FPU
    1219             :   ASMJIT_INST_0x(fcompp, Fcompp)                                       // FPU
    1220             :   ASMJIT_INST_1x(fcomi, Fcomi, St)                                     // FPU
    1221             :   ASMJIT_INST_1x(fcomip, Fcomip, St)                                   // FPU
    1222             :   ASMJIT_INST_0x(fcos, Fcos)                                           // FPU
    1223             :   ASMJIT_INST_0x(fdecstp, Fdecstp)                                     // FPU
    1224             :   ASMJIT_INST_2x(fdiv, Fdiv, St, St)                                   // FPU
    1225             :   ASMJIT_INST_1x(fdiv, Fdiv, Mem)                                      // FPU
    1226             :   ASMJIT_INST_1x(fdivp, Fdivp, St)                                     // FPU
    1227             :   ASMJIT_INST_0x(fdivp, Fdivp)                                         // FPU
    1228             :   ASMJIT_INST_2x(fdivr, Fdivr, St, St)                                 // FPU
    1229             :   ASMJIT_INST_1x(fdivr, Fdivr, Mem)                                    // FPU
    1230             :   ASMJIT_INST_1x(fdivrp, Fdivrp, St)                                   // FPU
    1231             :   ASMJIT_INST_0x(fdivrp, Fdivrp)                                       // FPU
    1232             :   ASMJIT_INST_1x(ffree, Ffree, St)                                     // FPU
    1233             :   ASMJIT_INST_1x(fiadd, Fiadd, Mem)                                    // FPU
    1234             :   ASMJIT_INST_1x(ficom, Ficom, Mem)                                    // FPU
    1235             :   ASMJIT_INST_1x(ficomp, Ficomp, Mem)                                  // FPU
    1236             :   ASMJIT_INST_1x(fidiv, Fidiv, Mem)                                    // FPU
    1237             :   ASMJIT_INST_1x(fidivr, Fidivr, Mem)                                  // FPU
    1238             :   ASMJIT_INST_1x(fild, Fild, Mem)                                      // FPU
    1239             :   ASMJIT_INST_1x(fimul, Fimul, Mem)                                    // FPU
    1240             :   ASMJIT_INST_0x(fincstp, Fincstp)                                     // FPU
    1241             :   ASMJIT_INST_0x(finit, Finit)                                         // FPU
    1242             :   ASMJIT_INST_1x(fisub, Fisub, Mem)                                    // FPU
    1243             :   ASMJIT_INST_1x(fisubr, Fisubr, Mem)                                  // FPU
    1244             :   ASMJIT_INST_0x(fninit, Fninit)                                       // FPU
    1245             :   ASMJIT_INST_1x(fist, Fist, Mem)                                      // FPU
    1246             :   ASMJIT_INST_1x(fistp, Fistp, Mem)                                    // FPU
    1247             :   ASMJIT_INST_1x(fisttp, Fisttp, Mem)                                  // FPU+SSE3
    1248           0 :   ASMJIT_INST_1x(fld, Fld, Mem)                                        // FPU
    1249             :   ASMJIT_INST_1x(fld, Fld, St)                                         // FPU
    1250             :   ASMJIT_INST_0x(fld1, Fld1)                                           // FPU
    1251             :   ASMJIT_INST_0x(fldl2t, Fldl2t)                                       // FPU
    1252             :   ASMJIT_INST_0x(fldl2e, Fldl2e)                                       // FPU
    1253             :   ASMJIT_INST_0x(fldpi, Fldpi)                                         // FPU
    1254             :   ASMJIT_INST_0x(fldlg2, Fldlg2)                                       // FPU
    1255             :   ASMJIT_INST_0x(fldln2, Fldln2)                                       // FPU
    1256             :   ASMJIT_INST_0x(fldz, Fldz)                                           // FPU
    1257             :   ASMJIT_INST_1x(fldcw, Fldcw, Mem)                                    // FPU
    1258             :   ASMJIT_INST_1x(fldenv, Fldenv, Mem)                                  // FPU
    1259             :   ASMJIT_INST_2x(fmul, Fmul, St, St)                                   // FPU
    1260             :   ASMJIT_INST_1x(fmul, Fmul, Mem)                                      // FPU
    1261             :   ASMJIT_INST_1x(fmulp, Fmulp, St)                                     // FPU
    1262             :   ASMJIT_INST_0x(fmulp, Fmulp)                                         // FPU
    1263             :   ASMJIT_INST_0x(fnclex, Fnclex)                                       // FPU
    1264             :   ASMJIT_INST_0x(fnop, Fnop)                                           // FPU
    1265             :   ASMJIT_INST_1x(fnsave, Fnsave, Mem)                                  // FPU
    1266             :   ASMJIT_INST_1x(fnstenv, Fnstenv, Mem)                                // FPU
    1267             :   ASMJIT_INST_1x(fnstcw, Fnstcw, Mem)                                  // FPU
    1268             :   ASMJIT_INST_0x(fpatan, Fpatan)                                       // FPU
    1269             :   ASMJIT_INST_0x(fprem, Fprem)                                         // FPU
    1270             :   ASMJIT_INST_0x(fprem1, Fprem1)                                       // FPU
    1271             :   ASMJIT_INST_0x(fptan, Fptan)                                         // FPU
    1272             :   ASMJIT_INST_0x(frndint, Frndint)                                     // FPU
    1273             :   ASMJIT_INST_1x(frstor, Frstor, Mem)                                  // FPU
    1274             :   ASMJIT_INST_1x(fsave, Fsave, Mem)                                    // FPU
    1275             :   ASMJIT_INST_0x(fscale, Fscale)                                       // FPU
    1276             :   ASMJIT_INST_0x(fsin, Fsin)                                           // FPU
    1277             :   ASMJIT_INST_0x(fsincos, Fsincos)                                     // FPU
    1278             :   ASMJIT_INST_0x(fsqrt, Fsqrt)                                         // FPU
    1279             :   ASMJIT_INST_1x(fst, Fst, Mem)                                        // FPU
    1280             :   ASMJIT_INST_1x(fst, Fst, St)                                         // FPU
    1281           0 :   ASMJIT_INST_1x(fstp, Fstp, Mem)                                      // FPU
    1282             :   ASMJIT_INST_1x(fstp, Fstp, St)                                       // FPU
    1283             :   ASMJIT_INST_1x(fstcw, Fstcw, Mem)                                    // FPU
    1284             :   ASMJIT_INST_1x(fstenv, Fstenv, Mem)                                  // FPU
    1285             :   ASMJIT_INST_2x(fsub, Fsub, St, St)                                   // FPU
    1286             :   ASMJIT_INST_1x(fsub, Fsub, Mem)                                      // FPU
    1287             :   ASMJIT_INST_1x(fsubp, Fsubp, St)                                     // FPU
    1288             :   ASMJIT_INST_0x(fsubp, Fsubp)                                         // FPU
    1289             :   ASMJIT_INST_2x(fsubr, Fsubr, St, St)                                 // FPU
    1290             :   ASMJIT_INST_1x(fsubr, Fsubr, Mem)                                    // FPU
    1291             :   ASMJIT_INST_1x(fsubrp, Fsubrp, St)                                   // FPU
    1292             :   ASMJIT_INST_0x(fsubrp, Fsubrp)                                       // FPU
    1293             :   ASMJIT_INST_0x(ftst, Ftst)                                           // FPU
    1294             :   ASMJIT_INST_1x(fucom, Fucom, St)                                     // FPU
    1295             :   ASMJIT_INST_0x(fucom, Fucom)                                         // FPU
    1296             :   ASMJIT_INST_1x(fucomi, Fucomi, St)                                   // FPU
    1297             :   ASMJIT_INST_1x(fucomip, Fucomip, St)                                 // FPU
    1298             :   ASMJIT_INST_1x(fucomp, Fucomp, St)                                   // FPU
    1299             :   ASMJIT_INST_0x(fucomp, Fucomp)                                       // FPU
    1300             :   ASMJIT_INST_0x(fucompp, Fucompp)                                     // FPU
    1301             :   ASMJIT_INST_0x(fwait, Fwait)                                         // FPU
    1302             :   ASMJIT_INST_0x(fxam, Fxam)                                           // FPU
    1303             :   ASMJIT_INST_1x(fxch, Fxch, St)                                       // FPU
    1304             :   ASMJIT_INST_0x(fxtract, Fxtract)                                     // FPU
    1305             :   ASMJIT_INST_0x(fyl2x, Fyl2x)                                         // FPU
    1306             :   ASMJIT_INST_0x(fyl2xp1, Fyl2xp1)                                     // FPU
    1307             :   ASMJIT_INST_1x(fstsw, Fstsw, Gp)                                     // FPU
    1308             :   ASMJIT_INST_1x(fstsw, Fstsw, Mem)                                    // FPU
    1309             :   ASMJIT_INST_1x(fnstsw, Fnstsw, Gp)                                   // FPU
    1310             :   ASMJIT_INST_1x(fnstsw, Fnstsw, Mem)                                  // FPU
    1311             : 
    1312             :   //! \}
    1313             : 
    1314             :   //! \name MMX & SSE+ Instructions
    1315             :   //! \{
    1316             : 
    1317             :   ASMJIT_INST_2x(addpd, Addpd, Xmm, Xmm)                               // SSE2
    1318             :   ASMJIT_INST_2x(addpd, Addpd, Xmm, Mem)                               // SSE2
    1319             :   ASMJIT_INST_2x(addps, Addps, Xmm, Xmm)                               // SSE
    1320             :   ASMJIT_INST_2x(addps, Addps, Xmm, Mem)                               // SSE
    1321             :   ASMJIT_INST_2x(addsd, Addsd, Xmm, Xmm)                               // SSE2
    1322             :   ASMJIT_INST_2x(addsd, Addsd, Xmm, Mem)                               // SSE2
    1323             :   ASMJIT_INST_2x(addss, Addss, Xmm, Xmm)                               // SSE
    1324             :   ASMJIT_INST_2x(addss, Addss, Xmm, Mem)                               // SSE
    1325             :   ASMJIT_INST_2x(addsubpd, Addsubpd, Xmm, Xmm)                         // SSE3
    1326             :   ASMJIT_INST_2x(addsubpd, Addsubpd, Xmm, Mem)                         // SSE3
    1327             :   ASMJIT_INST_2x(addsubps, Addsubps, Xmm, Xmm)                         // SSE3
    1328             :   ASMJIT_INST_2x(addsubps, Addsubps, Xmm, Mem)                         // SSE3
    1329             :   ASMJIT_INST_2x(andnpd, Andnpd, Xmm, Xmm)                             // SSE2
    1330             :   ASMJIT_INST_2x(andnpd, Andnpd, Xmm, Mem)                             // SSE2
    1331             :   ASMJIT_INST_2x(andnps, Andnps, Xmm, Xmm)                             // SSE
    1332             :   ASMJIT_INST_2x(andnps, Andnps, Xmm, Mem)                             // SSE
    1333             :   ASMJIT_INST_2x(andpd, Andpd, Xmm, Xmm)                               // SSE2
    1334             :   ASMJIT_INST_2x(andpd, Andpd, Xmm, Mem)                               // SSE2
    1335             :   ASMJIT_INST_2x(andps, Andps, Xmm, Xmm)                               // SSE
    1336             :   ASMJIT_INST_2x(andps, Andps, Xmm, Mem)                               // SSE
    1337             :   ASMJIT_INST_3x(blendpd, Blendpd, Xmm, Xmm, Imm)                      // SSE4_1
    1338             :   ASMJIT_INST_3x(blendpd, Blendpd, Xmm, Mem, Imm)                      // SSE4_1
    1339             :   ASMJIT_INST_3x(blendps, Blendps, Xmm, Xmm, Imm)                      // SSE4_1
    1340             :   ASMJIT_INST_3x(blendps, Blendps, Xmm, Mem, Imm)                      // SSE4_1
    1341             :   ASMJIT_INST_3x(blendvpd, Blendvpd, Xmm, Xmm, XMM0)                   // SSE4_1 [EXPLICIT]
    1342             :   ASMJIT_INST_3x(blendvpd, Blendvpd, Xmm, Mem, XMM0)                   // SSE4_1 [EXPLICIT]
    1343             :   ASMJIT_INST_3x(blendvps, Blendvps, Xmm, Xmm, XMM0)                   // SSE4_1 [EXPLICIT]
    1344             :   ASMJIT_INST_3x(blendvps, Blendvps, Xmm, Mem, XMM0)                   // SSE4_1 [EXPLICIT]
    1345             :   ASMJIT_INST_3x(cmppd, Cmppd, Xmm, Xmm, Imm)                          // SSE2
    1346             :   ASMJIT_INST_3x(cmppd, Cmppd, Xmm, Mem, Imm)                          // SSE2
    1347             :   ASMJIT_INST_3x(cmpps, Cmpps, Xmm, Xmm, Imm)                          // SSE
    1348             :   ASMJIT_INST_3x(cmpps, Cmpps, Xmm, Mem, Imm)                          // SSE
    1349             :   ASMJIT_INST_3x(cmpsd, Cmpsd, Xmm, Xmm, Imm)                          // SSE2
    1350             :   ASMJIT_INST_3x(cmpsd, Cmpsd, Xmm, Mem, Imm)                          // SSE2
    1351             :   ASMJIT_INST_3x(cmpss, Cmpss, Xmm, Xmm, Imm)                          // SSE
    1352             :   ASMJIT_INST_3x(cmpss, Cmpss, Xmm, Mem, Imm)                          // SSE
    1353             :   ASMJIT_INST_2x(comisd, Comisd, Xmm, Xmm)                             // SSE2
    1354             :   ASMJIT_INST_2x(comisd, Comisd, Xmm, Mem)                             // SSE2
    1355             :   ASMJIT_INST_2x(comiss, Comiss, Xmm, Xmm)                             // SSE
    1356             :   ASMJIT_INST_2x(comiss, Comiss, Xmm, Mem)                             // SSE
    1357             :   ASMJIT_INST_2x(cvtdq2pd, Cvtdq2pd, Xmm, Xmm)                         // SSE2
    1358             :   ASMJIT_INST_2x(cvtdq2pd, Cvtdq2pd, Xmm, Mem)                         // SSE2
    1359             :   ASMJIT_INST_2x(cvtdq2ps, Cvtdq2ps, Xmm, Xmm)                         // SSE2
    1360             :   ASMJIT_INST_2x(cvtdq2ps, Cvtdq2ps, Xmm, Mem)                         // SSE2
    1361             :   ASMJIT_INST_2x(cvtpd2dq, Cvtpd2dq, Xmm, Xmm)                         // SSE2
    1362             :   ASMJIT_INST_2x(cvtpd2dq, Cvtpd2dq, Xmm, Mem)                         // SSE2
    1363             :   ASMJIT_INST_2x(cvtpd2pi, Cvtpd2pi, Mm, Xmm)                          // SSE2
    1364             :   ASMJIT_INST_2x(cvtpd2pi, Cvtpd2pi, Mm, Mem)                          // SSE2
    1365             :   ASMJIT_INST_2x(cvtpd2ps, Cvtpd2ps, Xmm, Xmm)                         // SSE2
    1366             :   ASMJIT_INST_2x(cvtpd2ps, Cvtpd2ps, Xmm, Mem)                         // SSE2
    1367             :   ASMJIT_INST_2x(cvtpi2pd, Cvtpi2pd, Xmm, Mm)                          // SSE2
    1368             :   ASMJIT_INST_2x(cvtpi2pd, Cvtpi2pd, Xmm, Mem)                         // SSE2
    1369             :   ASMJIT_INST_2x(cvtpi2ps, Cvtpi2ps, Xmm, Mm)                          // SSE
    1370             :   ASMJIT_INST_2x(cvtpi2ps, Cvtpi2ps, Xmm, Mem)                         // SSE
    1371             :   ASMJIT_INST_2x(cvtps2dq, Cvtps2dq, Xmm, Xmm)                         // SSE2
    1372             :   ASMJIT_INST_2x(cvtps2dq, Cvtps2dq, Xmm, Mem)                         // SSE2
    1373             :   ASMJIT_INST_2x(cvtps2pd, Cvtps2pd, Xmm, Xmm)                         // SSE2
    1374             :   ASMJIT_INST_2x(cvtps2pd, Cvtps2pd, Xmm, Mem)                         // SSE2
    1375             :   ASMJIT_INST_2x(cvtps2pi, Cvtps2pi, Mm, Xmm)                          // SSE
    1376             :   ASMJIT_INST_2x(cvtps2pi, Cvtps2pi, Mm, Mem)                          // SSE
    1377             :   ASMJIT_INST_2x(cvtsd2si, Cvtsd2si, Gp, Xmm)                          // SSE2
    1378             :   ASMJIT_INST_2x(cvtsd2si, Cvtsd2si, Gp, Mem)                          // SSE2
    1379             :   ASMJIT_INST_2x(cvtsd2ss, Cvtsd2ss, Xmm, Xmm)                         // SSE2
    1380             :   ASMJIT_INST_2x(cvtsd2ss, Cvtsd2ss, Xmm, Mem)                         // SSE2
    1381             :   ASMJIT_INST_2x(cvtsi2sd, Cvtsi2sd, Xmm, Gp)                          // SSE2
    1382             :   ASMJIT_INST_2x(cvtsi2sd, Cvtsi2sd, Xmm, Mem)                         // SSE2
    1383             :   ASMJIT_INST_2x(cvtsi2ss, Cvtsi2ss, Xmm, Gp)                          // SSE
    1384             :   ASMJIT_INST_2x(cvtsi2ss, Cvtsi2ss, Xmm, Mem)                         // SSE
    1385             :   ASMJIT_INST_2x(cvtss2sd, Cvtss2sd, Xmm, Xmm)                         // SSE2
    1386             :   ASMJIT_INST_2x(cvtss2sd, Cvtss2sd, Xmm, Mem)                         // SSE2
    1387             :   ASMJIT_INST_2x(cvtss2si, Cvtss2si, Gp, Xmm)                          // SSE
    1388             :   ASMJIT_INST_2x(cvtss2si, Cvtss2si, Gp, Mem)                          // SSE
    1389             :   ASMJIT_INST_2x(cvttpd2pi, Cvttpd2pi, Mm, Xmm)                        // SSE2
    1390             :   ASMJIT_INST_2x(cvttpd2pi, Cvttpd2pi, Mm, Mem)                        // SSE2
    1391             :   ASMJIT_INST_2x(cvttpd2dq, Cvttpd2dq, Xmm, Xmm)                       // SSE2
    1392             :   ASMJIT_INST_2x(cvttpd2dq, Cvttpd2dq, Xmm, Mem)                       // SSE2
    1393             :   ASMJIT_INST_2x(cvttps2dq, Cvttps2dq, Xmm, Xmm)                       // SSE2
    1394             :   ASMJIT_INST_2x(cvttps2dq, Cvttps2dq, Xmm, Mem)                       // SSE2
    1395             :   ASMJIT_INST_2x(cvttps2pi, Cvttps2pi, Mm, Xmm)                        // SSE
    1396             :   ASMJIT_INST_2x(cvttps2pi, Cvttps2pi, Mm, Mem)                        // SSE
    1397             :   ASMJIT_INST_2x(cvttsd2si, Cvttsd2si, Gp, Xmm)                        // SSE2
    1398             :   ASMJIT_INST_2x(cvttsd2si, Cvttsd2si, Gp, Mem)                        // SSE2
    1399             :   ASMJIT_INST_2x(cvttss2si, Cvttss2si, Gp, Xmm)                        // SSE
    1400             :   ASMJIT_INST_2x(cvttss2si, Cvttss2si, Gp, Mem)                        // SSE
    1401             :   ASMJIT_INST_2x(divpd, Divpd, Xmm, Xmm)                               // SSE2
    1402             :   ASMJIT_INST_2x(divpd, Divpd, Xmm, Mem)                               // SSE2
    1403             :   ASMJIT_INST_2x(divps, Divps, Xmm, Xmm)                               // SSE
    1404             :   ASMJIT_INST_2x(divps, Divps, Xmm, Mem)                               // SSE
    1405             :   ASMJIT_INST_2x(divsd, Divsd, Xmm, Xmm)                               // SSE2
    1406             :   ASMJIT_INST_2x(divsd, Divsd, Xmm, Mem)                               // SSE2
    1407             :   ASMJIT_INST_2x(divss, Divss, Xmm, Xmm)                               // SSE
    1408             :   ASMJIT_INST_2x(divss, Divss, Xmm, Mem)                               // SSE
    1409             :   ASMJIT_INST_3x(dppd, Dppd, Xmm, Xmm, Imm)                            // SSE4_1
    1410             :   ASMJIT_INST_3x(dppd, Dppd, Xmm, Mem, Imm)                            // SSE4_1
    1411             :   ASMJIT_INST_3x(dpps, Dpps, Xmm, Xmm, Imm)                            // SSE4_1
    1412             :   ASMJIT_INST_3x(dpps, Dpps, Xmm, Mem, Imm)                            // SSE4_1
    1413             :   ASMJIT_INST_3x(extractps, Extractps, Gp, Xmm, Imm)                   // SSE4_1
    1414             :   ASMJIT_INST_3x(extractps, Extractps, Mem, Xmm, Imm)                  // SSE4_1
    1415             :   ASMJIT_INST_2x(extrq, Extrq, Xmm, Xmm)                               // SSE4A
    1416             :   ASMJIT_INST_3x(extrq, Extrq, Xmm, Imm, Imm)                          // SSE4A
    1417             :   ASMJIT_INST_2x(haddpd, Haddpd, Xmm, Xmm)                             // SSE3
    1418             :   ASMJIT_INST_2x(haddpd, Haddpd, Xmm, Mem)                             // SSE3
    1419             :   ASMJIT_INST_2x(haddps, Haddps, Xmm, Xmm)                             // SSE3
    1420             :   ASMJIT_INST_2x(haddps, Haddps, Xmm, Mem)                             // SSE3
    1421             :   ASMJIT_INST_2x(hsubpd, Hsubpd, Xmm, Xmm)                             // SSE3
    1422             :   ASMJIT_INST_2x(hsubpd, Hsubpd, Xmm, Mem)                             // SSE3
    1423             :   ASMJIT_INST_2x(hsubps, Hsubps, Xmm, Xmm)                             // SSE3
    1424             :   ASMJIT_INST_2x(hsubps, Hsubps, Xmm, Mem)                             // SSE3
    1425             :   ASMJIT_INST_3x(insertps, Insertps, Xmm, Xmm, Imm)                    // SSE4_1
    1426             :   ASMJIT_INST_3x(insertps, Insertps, Xmm, Mem, Imm)                    // SSE4_1
    1427             :   ASMJIT_INST_2x(insertq, Insertq, Xmm, Xmm)                           // SSE4A
    1428             :   ASMJIT_INST_4x(insertq, Insertq, Xmm, Xmm, Imm, Imm)                 // SSE4A
    1429             :   ASMJIT_INST_2x(lddqu, Lddqu, Xmm, Mem)                               // SSE3
    1430             :   ASMJIT_INST_3x(maskmovq, Maskmovq, Mm, Mm, DS_ZDI)                   // SSE  [EXPLICIT]
    1431             :   ASMJIT_INST_3x(maskmovdqu, Maskmovdqu, Xmm, Xmm, DS_ZDI)             // SSE2 [EXPLICIT]
    1432             :   ASMJIT_INST_2x(maxpd, Maxpd, Xmm, Xmm)                               // SSE2
    1433             :   ASMJIT_INST_2x(maxpd, Maxpd, Xmm, Mem)                               // SSE2
    1434             :   ASMJIT_INST_2x(maxps, Maxps, Xmm, Xmm)                               // SSE
    1435             :   ASMJIT_INST_2x(maxps, Maxps, Xmm, Mem)                               // SSE
    1436             :   ASMJIT_INST_2x(maxsd, Maxsd, Xmm, Xmm)                               // SSE2
    1437             :   ASMJIT_INST_2x(maxsd, Maxsd, Xmm, Mem)                               // SSE2
    1438             :   ASMJIT_INST_2x(maxss, Maxss, Xmm, Xmm)                               // SSE
    1439             :   ASMJIT_INST_2x(maxss, Maxss, Xmm, Mem)                               // SSE
    1440             :   ASMJIT_INST_2x(minpd, Minpd, Xmm, Xmm)                               // SSE2
    1441             :   ASMJIT_INST_2x(minpd, Minpd, Xmm, Mem)                               // SSE2
    1442             :   ASMJIT_INST_2x(minps, Minps, Xmm, Xmm)                               // SSE
    1443             :   ASMJIT_INST_2x(minps, Minps, Xmm, Mem)                               // SSE
    1444             :   ASMJIT_INST_2x(minsd, Minsd, Xmm, Xmm)                               // SSE2
    1445             :   ASMJIT_INST_2x(minsd, Minsd, Xmm, Mem)                               // SSE2
    1446             :   ASMJIT_INST_2x(minss, Minss, Xmm, Xmm)                               // SSE
    1447             :   ASMJIT_INST_2x(minss, Minss, Xmm, Mem)                               // SSE
    1448             :   ASMJIT_INST_2x(movapd, Movapd, Xmm, Xmm)                             // SSE2
    1449             :   ASMJIT_INST_2x(movapd, Movapd, Xmm, Mem)                             // SSE2
    1450             :   ASMJIT_INST_2x(movapd, Movapd, Mem, Xmm)                             // SSE2
    1451             :   ASMJIT_INST_2x(movaps, Movaps, Xmm, Xmm)                             // SSE
    1452             :   ASMJIT_INST_2x(movaps, Movaps, Xmm, Mem)                             // SSE
    1453             :   ASMJIT_INST_2x(movaps, Movaps, Mem, Xmm)                             // SSE
    1454             :   ASMJIT_INST_2x(movd, Movd, Mem, Mm)                                  // MMX
    1455             :   ASMJIT_INST_2x(movd, Movd, Mem, Xmm)                                 // SSE
    1456             :   ASMJIT_INST_2x(movd, Movd, Gp, Mm)                                   // MMX
    1457             :   ASMJIT_INST_2x(movd, Movd, Gp, Xmm)                                  // SSE
    1458             :   ASMJIT_INST_2x(movd, Movd, Mm, Mem)                                  // MMX
    1459             :   ASMJIT_INST_2x(movd, Movd, Xmm, Mem)                                 // SSE
    1460             :   ASMJIT_INST_2x(movd, Movd, Mm, Gp)                                   // MMX
    1461             :   ASMJIT_INST_2x(movd, Movd, Xmm, Gp)                                  // SSE
    1462             :   ASMJIT_INST_2x(movddup, Movddup, Xmm, Xmm)                           // SSE3
    1463             :   ASMJIT_INST_2x(movddup, Movddup, Xmm, Mem)                           // SSE3
    1464             :   ASMJIT_INST_2x(movdq2q, Movdq2q, Mm, Xmm)                            // SSE2
    1465             :   ASMJIT_INST_2x(movdqa, Movdqa, Xmm, Xmm)                             // SSE2
    1466             :   ASMJIT_INST_2x(movdqa, Movdqa, Xmm, Mem)                             // SSE2
    1467             :   ASMJIT_INST_2x(movdqa, Movdqa, Mem, Xmm)                             // SSE2
    1468             :   ASMJIT_INST_2x(movdqu, Movdqu, Xmm, Xmm)                             // SSE2
    1469             :   ASMJIT_INST_2x(movdqu, Movdqu, Xmm, Mem)                             // SSE2
    1470             :   ASMJIT_INST_2x(movdqu, Movdqu, Mem, Xmm)                             // SSE2
    1471             :   ASMJIT_INST_2x(movhlps, Movhlps, Xmm, Xmm)                           // SSE
    1472             :   ASMJIT_INST_2x(movhpd, Movhpd, Xmm, Mem)                             // SSE2
    1473             :   ASMJIT_INST_2x(movhpd, Movhpd, Mem, Xmm)                             // SSE2
    1474             :   ASMJIT_INST_2x(movhps, Movhps, Xmm, Mem)                             // SSE
    1475             :   ASMJIT_INST_2x(movhps, Movhps, Mem, Xmm)                             // SSE
    1476             :   ASMJIT_INST_2x(movlhps, Movlhps, Xmm, Xmm)                           // SSE
    1477             :   ASMJIT_INST_2x(movlpd, Movlpd, Xmm, Mem)                             // SSE2
    1478             :   ASMJIT_INST_2x(movlpd, Movlpd, Mem, Xmm)                             // SSE2
    1479             :   ASMJIT_INST_2x(movlps, Movlps, Xmm, Mem)                             // SSE
    1480             :   ASMJIT_INST_2x(movlps, Movlps, Mem, Xmm)                             // SSE
    1481             :   ASMJIT_INST_2x(movmskps, Movmskps, Gp, Xmm)                          // SSE2
    1482             :   ASMJIT_INST_2x(movmskpd, Movmskpd, Gp, Xmm)                          // SSE2
    1483             :   ASMJIT_INST_2x(movntdq, Movntdq, Mem, Xmm)                           // SSE2
    1484             :   ASMJIT_INST_2x(movntdqa, Movntdqa, Xmm, Mem)                         // SSE4_1
    1485             :   ASMJIT_INST_2x(movntpd, Movntpd, Mem, Xmm)                           // SSE2
    1486             :   ASMJIT_INST_2x(movntps, Movntps, Mem, Xmm)                           // SSE
    1487             :   ASMJIT_INST_2x(movntsd, Movntsd, Mem, Xmm)                           // SSE4A
    1488             :   ASMJIT_INST_2x(movntss, Movntss, Mem, Xmm)                           // SSE4A
    1489             :   ASMJIT_INST_2x(movntq, Movntq, Mem, Mm)                              // SSE
    1490             :   ASMJIT_INST_2x(movq, Movq, Mm, Mm)                                   // MMX
    1491             :   ASMJIT_INST_2x(movq, Movq, Xmm, Xmm)                                 // SSE
    1492             :   ASMJIT_INST_2x(movq, Movq, Mem, Mm)                                  // MMX
    1493             :   ASMJIT_INST_2x(movq, Movq, Mem, Xmm)                                 // SSE
    1494             :   ASMJIT_INST_2x(movq, Movq, Mm, Mem)                                  // MMX
    1495             :   ASMJIT_INST_2x(movq, Movq, Xmm, Mem)                                 // SSE
    1496             :   ASMJIT_INST_2x(movq, Movq, Gp, Mm)                                   // MMX
    1497             :   ASMJIT_INST_2x(movq, Movq, Gp, Xmm)                                  // SSE+X64.
    1498             :   ASMJIT_INST_2x(movq, Movq, Mm, Gp)                                   // MMX
    1499             :   ASMJIT_INST_2x(movq, Movq, Xmm, Gp)                                  // SSE+X64.
    1500             :   ASMJIT_INST_2x(movq2dq, Movq2dq, Xmm, Mm)                            // SSE2
    1501             :   ASMJIT_INST_2x(movsd, Movsd, Xmm, Xmm)                               // SSE2
    1502             :   ASMJIT_INST_2x(movsd, Movsd, Xmm, Mem)                               // SSE2
    1503             :   ASMJIT_INST_2x(movsd, Movsd, Mem, Xmm)                               // SSE2
    1504             :   ASMJIT_INST_2x(movshdup, Movshdup, Xmm, Xmm)                         // SSE3
    1505             :   ASMJIT_INST_2x(movshdup, Movshdup, Xmm, Mem)                         // SSE3
    1506             :   ASMJIT_INST_2x(movsldup, Movsldup, Xmm, Xmm)                         // SSE3
    1507             :   ASMJIT_INST_2x(movsldup, Movsldup, Xmm, Mem)                         // SSE3
    1508             :   ASMJIT_INST_2x(movss, Movss, Xmm, Xmm)                               // SSE
    1509             :   ASMJIT_INST_2x(movss, Movss, Xmm, Mem)                               // SSE
    1510             :   ASMJIT_INST_2x(movss, Movss, Mem, Xmm)                               // SSE
    1511             :   ASMJIT_INST_2x(movupd, Movupd, Xmm, Xmm)                             // SSE2
    1512             :   ASMJIT_INST_2x(movupd, Movupd, Xmm, Mem)                             // SSE2
    1513             :   ASMJIT_INST_2x(movupd, Movupd, Mem, Xmm)                             // SSE2
    1514             :   ASMJIT_INST_2x(movups, Movups, Xmm, Xmm)                             // SSE
    1515             :   ASMJIT_INST_2x(movups, Movups, Xmm, Mem)                             // SSE
    1516             :   ASMJIT_INST_2x(movups, Movups, Mem, Xmm)                             // SSE
    1517             :   ASMJIT_INST_3x(mpsadbw, Mpsadbw, Xmm, Xmm, Imm)                      // SSE4_1
    1518             :   ASMJIT_INST_3x(mpsadbw, Mpsadbw, Xmm, Mem, Imm)                      // SSE4_1
    1519             :   ASMJIT_INST_2x(mulpd, Mulpd, Xmm, Xmm)                               // SSE2
    1520             :   ASMJIT_INST_2x(mulpd, Mulpd, Xmm, Mem)                               // SSE2
    1521             :   ASMJIT_INST_2x(mulps, Mulps, Xmm, Xmm)                               // SSE
    1522             :   ASMJIT_INST_2x(mulps, Mulps, Xmm, Mem)                               // SSE
    1523             :   ASMJIT_INST_2x(mulsd, Mulsd, Xmm, Xmm)                               // SSE2
    1524             :   ASMJIT_INST_2x(mulsd, Mulsd, Xmm, Mem)                               // SSE2
    1525             :   ASMJIT_INST_2x(mulss, Mulss, Xmm, Xmm)                               // SSE
    1526             :   ASMJIT_INST_2x(mulss, Mulss, Xmm, Mem)                               // SSE
    1527             :   ASMJIT_INST_2x(orpd, Orpd, Xmm, Xmm)                                 // SSE2
    1528             :   ASMJIT_INST_2x(orpd, Orpd, Xmm, Mem)                                 // SSE2
    1529             :   ASMJIT_INST_2x(orps, Orps, Xmm, Xmm)                                 // SSE
    1530             :   ASMJIT_INST_2x(orps, Orps, Xmm, Mem)                                 // SSE
    1531             :   ASMJIT_INST_2x(packssdw, Packssdw, Mm, Mm)                           // MMX
    1532             :   ASMJIT_INST_2x(packssdw, Packssdw, Mm, Mem)                          // MMX
    1533             :   ASMJIT_INST_2x(packssdw, Packssdw, Xmm, Xmm)                         // SSE2
    1534             :   ASMJIT_INST_2x(packssdw, Packssdw, Xmm, Mem)                         // SSE2
    1535             :   ASMJIT_INST_2x(packsswb, Packsswb, Mm, Mm)                           // MMX
    1536             :   ASMJIT_INST_2x(packsswb, Packsswb, Mm, Mem)                          // MMX
    1537             :   ASMJIT_INST_2x(packsswb, Packsswb, Xmm, Xmm)                         // SSE2
    1538             :   ASMJIT_INST_2x(packsswb, Packsswb, Xmm, Mem)                         // SSE2
    1539             :   ASMJIT_INST_2x(packusdw, Packusdw, Xmm, Xmm)                         // SSE4_1
    1540             :   ASMJIT_INST_2x(packusdw, Packusdw, Xmm, Mem)                         // SSE4_1
    1541             :   ASMJIT_INST_2x(packuswb, Packuswb, Mm, Mm)                           // MMX
    1542             :   ASMJIT_INST_2x(packuswb, Packuswb, Mm, Mem)                          // MMX
    1543             :   ASMJIT_INST_2x(packuswb, Packuswb, Xmm, Xmm)                         // SSE2
    1544             :   ASMJIT_INST_2x(packuswb, Packuswb, Xmm, Mem)                         // SSE2
    1545             :   ASMJIT_INST_2x(pabsb, Pabsb, Mm, Mm)                                 // SSSE3
    1546             :   ASMJIT_INST_2x(pabsb, Pabsb, Mm, Mem)                                // SSSE3
    1547             :   ASMJIT_INST_2x(pabsb, Pabsb, Xmm, Xmm)                               // SSSE3
    1548             :   ASMJIT_INST_2x(pabsb, Pabsb, Xmm, Mem)                               // SSSE3
    1549             :   ASMJIT_INST_2x(pabsd, Pabsd, Mm, Mm)                                 // SSSE3
    1550             :   ASMJIT_INST_2x(pabsd, Pabsd, Mm, Mem)                                // SSSE3
    1551             :   ASMJIT_INST_2x(pabsd, Pabsd, Xmm, Xmm)                               // SSSE3
    1552             :   ASMJIT_INST_2x(pabsd, Pabsd, Xmm, Mem)                               // SSSE3
    1553             :   ASMJIT_INST_2x(pabsw, Pabsw, Mm, Mm)                                 // SSSE3
    1554             :   ASMJIT_INST_2x(pabsw, Pabsw, Mm, Mem)                                // SSSE3
    1555             :   ASMJIT_INST_2x(pabsw, Pabsw, Xmm, Xmm)                               // SSSE3
    1556             :   ASMJIT_INST_2x(pabsw, Pabsw, Xmm, Mem)                               // SSSE3
    1557             :   ASMJIT_INST_2x(paddb, Paddb, Mm, Mm)                                 // MMX
    1558             :   ASMJIT_INST_2x(paddb, Paddb, Mm, Mem)                                // MMX
    1559             :   ASMJIT_INST_2x(paddb, Paddb, Xmm, Xmm)                               // SSE2
    1560             :   ASMJIT_INST_2x(paddb, Paddb, Xmm, Mem)                               // SSE2
    1561             :   ASMJIT_INST_2x(paddd, Paddd, Mm, Mm)                                 // MMX
    1562             :   ASMJIT_INST_2x(paddd, Paddd, Mm, Mem)                                // MMX
    1563             :   ASMJIT_INST_2x(paddd, Paddd, Xmm, Xmm)                               // SSE2
    1564             :   ASMJIT_INST_2x(paddd, Paddd, Xmm, Mem)                               // SSE2
    1565             :   ASMJIT_INST_2x(paddq, Paddq, Mm, Mm)                                 // SSE2
    1566             :   ASMJIT_INST_2x(paddq, Paddq, Mm, Mem)                                // SSE2
    1567             :   ASMJIT_INST_2x(paddq, Paddq, Xmm, Xmm)                               // SSE2
    1568             :   ASMJIT_INST_2x(paddq, Paddq, Xmm, Mem)                               // SSE2
    1569             :   ASMJIT_INST_2x(paddsb, Paddsb, Mm, Mm)                               // MMX
    1570             :   ASMJIT_INST_2x(paddsb, Paddsb, Mm, Mem)                              // MMX
    1571             :   ASMJIT_INST_2x(paddsb, Paddsb, Xmm, Xmm)                             // SSE2
    1572             :   ASMJIT_INST_2x(paddsb, Paddsb, Xmm, Mem)                             // SSE2
    1573             :   ASMJIT_INST_2x(paddsw, Paddsw, Mm, Mm)                               // MMX
    1574             :   ASMJIT_INST_2x(paddsw, Paddsw, Mm, Mem)                              // MMX
    1575             :   ASMJIT_INST_2x(paddsw, Paddsw, Xmm, Xmm)                             // SSE2
    1576             :   ASMJIT_INST_2x(paddsw, Paddsw, Xmm, Mem)                             // SSE2
    1577             :   ASMJIT_INST_2x(paddusb, Paddusb, Mm, Mm)                             // MMX
    1578             :   ASMJIT_INST_2x(paddusb, Paddusb, Mm, Mem)                            // MMX
    1579             :   ASMJIT_INST_2x(paddusb, Paddusb, Xmm, Xmm)                           // SSE2
    1580             :   ASMJIT_INST_2x(paddusb, Paddusb, Xmm, Mem)                           // SSE2
    1581             :   ASMJIT_INST_2x(paddusw, Paddusw, Mm, Mm)                             // MMX
    1582             :   ASMJIT_INST_2x(paddusw, Paddusw, Mm, Mem)                            // MMX
    1583             :   ASMJIT_INST_2x(paddusw, Paddusw, Xmm, Xmm)                           // SSE2
    1584             :   ASMJIT_INST_2x(paddusw, Paddusw, Xmm, Mem)                           // SSE2
    1585             :   ASMJIT_INST_2x(paddw, Paddw, Mm, Mm)                                 // MMX
    1586             :   ASMJIT_INST_2x(paddw, Paddw, Mm, Mem)                                // MMX
    1587             :   ASMJIT_INST_2x(paddw, Paddw, Xmm, Xmm)                               // SSE2
    1588             :   ASMJIT_INST_2x(paddw, Paddw, Xmm, Mem)                               // SSE2
    1589             :   ASMJIT_INST_3x(palignr, Palignr, Mm, Mm, Imm)                        // SSSE3
    1590             :   ASMJIT_INST_3x(palignr, Palignr, Mm, Mem, Imm)                       // SSSE3
    1591             :   ASMJIT_INST_3x(palignr, Palignr, Xmm, Xmm, Imm)                      // SSSE3
    1592             :   ASMJIT_INST_3x(palignr, Palignr, Xmm, Mem, Imm)                      // SSSE3
    1593             :   ASMJIT_INST_2x(pand, Pand, Mm, Mm)                                   // MMX
    1594             :   ASMJIT_INST_2x(pand, Pand, Mm, Mem)                                  // MMX
    1595             :   ASMJIT_INST_2x(pand, Pand, Xmm, Xmm)                                 // SSE2
    1596             :   ASMJIT_INST_2x(pand, Pand, Xmm, Mem)                                 // SSE2
    1597             :   ASMJIT_INST_2x(pandn, Pandn, Mm, Mm)                                 // MMX
    1598             :   ASMJIT_INST_2x(pandn, Pandn, Mm, Mem)                                // MMX
    1599             :   ASMJIT_INST_2x(pandn, Pandn, Xmm, Xmm)                               // SSE2
    1600             :   ASMJIT_INST_2x(pandn, Pandn, Xmm, Mem)                               // SSE2
    1601             :   ASMJIT_INST_2x(pavgb, Pavgb, Mm, Mm)                                 // SSE
    1602             :   ASMJIT_INST_2x(pavgb, Pavgb, Mm, Mem)                                // SSE
    1603             :   ASMJIT_INST_2x(pavgb, Pavgb, Xmm, Xmm)                               // SSE2
    1604             :   ASMJIT_INST_2x(pavgb, Pavgb, Xmm, Mem)                               // SSE2
    1605             :   ASMJIT_INST_2x(pavgw, Pavgw, Mm, Mm)                                 // SSE
    1606             :   ASMJIT_INST_2x(pavgw, Pavgw, Mm, Mem)                                // SSE
    1607             :   ASMJIT_INST_2x(pavgw, Pavgw, Xmm, Xmm)                               // SSE2
    1608             :   ASMJIT_INST_2x(pavgw, Pavgw, Xmm, Mem)                               // SSE2
    1609             :   ASMJIT_INST_3x(pblendvb, Pblendvb, Xmm, Xmm, XMM0)                   // SSE4_1 [EXPLICIT]
    1610             :   ASMJIT_INST_3x(pblendvb, Pblendvb, Xmm, Mem, XMM0)                   // SSE4_1 [EXPLICIT]
    1611             :   ASMJIT_INST_3x(pblendw, Pblendw, Xmm, Xmm, Imm)                      // SSE4_1
    1612             :   ASMJIT_INST_3x(pblendw, Pblendw, Xmm, Mem, Imm)                      // SSE4_1
    1613             :   ASMJIT_INST_3x(pclmulqdq, Pclmulqdq, Xmm, Xmm, Imm)                  // PCLMULQDQ.
    1614             :   ASMJIT_INST_3x(pclmulqdq, Pclmulqdq, Xmm, Mem, Imm)                  // PCLMULQDQ.
    1615             :   ASMJIT_INST_6x(pcmpestri, Pcmpestri, Xmm, Xmm, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
    1616             :   ASMJIT_INST_6x(pcmpestri, Pcmpestri, Xmm, Mem, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
    1617             :   ASMJIT_INST_6x(pcmpestrm, Pcmpestrm, Xmm, Xmm, Imm, XMM0, Gp_EAX, Gp_EDX)   // SSE4_2 [EXPLICIT]
    1618             :   ASMJIT_INST_6x(pcmpestrm, Pcmpestrm, Xmm, Mem, Imm, XMM0, Gp_EAX, Gp_EDX)   // SSE4_2 [EXPLICIT]
    1619             :   ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Mm, Mm)                             // MMX
    1620             :   ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Mm, Mem)                            // MMX
    1621             :   ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Xmm, Xmm)                           // SSE2
    1622             :   ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Xmm, Mem)                           // SSE2
    1623             :   ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Mm, Mm)                             // MMX
    1624             :   ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Mm, Mem)                            // MMX
    1625             :   ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Xmm, Xmm)                           // SSE2
    1626             :   ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Xmm, Mem)                           // SSE2
    1627             :   ASMJIT_INST_2x(pcmpeqq, Pcmpeqq, Xmm, Xmm)                           // SSE4_1
    1628             :   ASMJIT_INST_2x(pcmpeqq, Pcmpeqq, Xmm, Mem)                           // SSE4_1
    1629             :   ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Mm, Mm)                             // MMX
    1630             :   ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Mm, Mem)                            // MMX
    1631             :   ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Xmm, Xmm)                           // SSE2
    1632             :   ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Xmm, Mem)                           // SSE2
    1633             :   ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Mm, Mm)                             // MMX
    1634             :   ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Mm, Mem)                            // MMX
    1635             :   ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Xmm, Xmm)                           // SSE2
    1636             :   ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Xmm, Mem)                           // SSE2
    1637             :   ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Mm, Mm)                             // MMX
    1638             :   ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Mm, Mem)                            // MMX
    1639             :   ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Xmm, Xmm)                           // SSE2
    1640             :   ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Xmm, Mem)                           // SSE2
    1641             :   ASMJIT_INST_2x(pcmpgtq, Pcmpgtq, Xmm, Xmm)                           // SSE4_2.
    1642             :   ASMJIT_INST_2x(pcmpgtq, Pcmpgtq, Xmm, Mem)                           // SSE4_2.
    1643             :   ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Mm, Mm)                             // MMX
    1644             :   ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Mm, Mem)                            // MMX
    1645             :   ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Xmm, Xmm)                           // SSE2
    1646             :   ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Xmm, Mem)                           // SSE2
    1647             :   ASMJIT_INST_4x(pcmpistri, Pcmpistri, Xmm, Xmm, Imm, Gp_ECX)          // SSE4_2 [EXPLICIT]
    1648             :   ASMJIT_INST_4x(pcmpistri, Pcmpistri, Xmm, Mem, Imm, Gp_ECX)          // SSE4_2 [EXPLICIT]
    1649             :   ASMJIT_INST_4x(pcmpistrm, Pcmpistrm, Xmm, Xmm, Imm, XMM0)            // SSE4_2 [EXPLICIT]
    1650             :   ASMJIT_INST_4x(pcmpistrm, Pcmpistrm, Xmm, Mem, Imm, XMM0)            // SSE4_2 [EXPLICIT]
    1651             :   ASMJIT_INST_3x(pextrb, Pextrb, Gp, Xmm, Imm)                         // SSE4_1
    1652             :   ASMJIT_INST_3x(pextrb, Pextrb, Mem, Xmm, Imm)                        // SSE4_1
    1653             :   ASMJIT_INST_3x(pextrd, Pextrd, Gp, Xmm, Imm)                         // SSE4_1
    1654             :   ASMJIT_INST_3x(pextrd, Pextrd, Mem, Xmm, Imm)                        // SSE4_1
    1655             :   ASMJIT_INST_3x(pextrq, Pextrq, Gp, Xmm, Imm)                         // SSE4_1
    1656             :   ASMJIT_INST_3x(pextrq, Pextrq, Mem, Xmm, Imm)                        // SSE4_1
    1657             :   ASMJIT_INST_3x(pextrw, Pextrw, Gp, Mm, Imm)                          // SSE
    1658             :   ASMJIT_INST_3x(pextrw, Pextrw, Gp, Xmm, Imm)                         // SSE2
    1659             :   ASMJIT_INST_3x(pextrw, Pextrw, Mem, Xmm, Imm)                        // SSE4_1
    1660             :   ASMJIT_INST_2x(phaddd, Phaddd, Mm, Mm)                               // SSSE3
    1661             :   ASMJIT_INST_2x(phaddd, Phaddd, Mm, Mem)                              // SSSE3
    1662             :   ASMJIT_INST_2x(phaddd, Phaddd, Xmm, Xmm)                             // SSSE3
    1663             :   ASMJIT_INST_2x(phaddd, Phaddd, Xmm, Mem)                             // SSSE3
    1664             :   ASMJIT_INST_2x(phaddsw, Phaddsw, Mm, Mm)                             // SSSE3
    1665             :   ASMJIT_INST_2x(phaddsw, Phaddsw, Mm, Mem)                            // SSSE3
    1666             :   ASMJIT_INST_2x(phaddsw, Phaddsw, Xmm, Xmm)                           // SSSE3
    1667             :   ASMJIT_INST_2x(phaddsw, Phaddsw, Xmm, Mem)                           // SSSE3
    1668             :   ASMJIT_INST_2x(phaddw, Phaddw, Mm, Mm)                               // SSSE3
    1669             :   ASMJIT_INST_2x(phaddw, Phaddw, Mm, Mem)                              // SSSE3
    1670             :   ASMJIT_INST_2x(phaddw, Phaddw, Xmm, Xmm)                             // SSSE3
    1671             :   ASMJIT_INST_2x(phaddw, Phaddw, Xmm, Mem)                             // SSSE3
    1672             :   ASMJIT_INST_2x(phminposuw, Phminposuw, Xmm, Xmm)                     // SSE4_1
    1673             :   ASMJIT_INST_2x(phminposuw, Phminposuw, Xmm, Mem)                     // SSE4_1
    1674             :   ASMJIT_INST_2x(phsubd, Phsubd, Mm, Mm)                               // SSSE3
    1675             :   ASMJIT_INST_2x(phsubd, Phsubd, Mm, Mem)                              // SSSE3
    1676             :   ASMJIT_INST_2x(phsubd, Phsubd, Xmm, Xmm)                             // SSSE3
    1677             :   ASMJIT_INST_2x(phsubd, Phsubd, Xmm, Mem)                             // SSSE3
    1678             :   ASMJIT_INST_2x(phsubsw, Phsubsw, Mm, Mm)                             // SSSE3
    1679             :   ASMJIT_INST_2x(phsubsw, Phsubsw, Mm, Mem)                            // SSSE3
    1680             :   ASMJIT_INST_2x(phsubsw, Phsubsw, Xmm, Xmm)                           // SSSE3
    1681             :   ASMJIT_INST_2x(phsubsw, Phsubsw, Xmm, Mem)                           // SSSE3
    1682             :   ASMJIT_INST_2x(phsubw, Phsubw, Mm, Mm)                               // SSSE3
    1683             :   ASMJIT_INST_2x(phsubw, Phsubw, Mm, Mem)                              // SSSE3
    1684             :   ASMJIT_INST_2x(phsubw, Phsubw, Xmm, Xmm)                             // SSSE3
    1685             :   ASMJIT_INST_2x(phsubw, Phsubw, Xmm, Mem)                             // SSSE3
    1686             :   ASMJIT_INST_3x(pinsrb, Pinsrb, Xmm, Gp, Imm)                         // SSE4_1
    1687             :   ASMJIT_INST_3x(pinsrb, Pinsrb, Xmm, Mem, Imm)                        // SSE4_1
    1688             :   ASMJIT_INST_3x(pinsrd, Pinsrd, Xmm, Gp, Imm)                         // SSE4_1
    1689             :   ASMJIT_INST_3x(pinsrd, Pinsrd, Xmm, Mem, Imm)                        // SSE4_1
    1690             :   ASMJIT_INST_3x(pinsrq, Pinsrq, Xmm, Gp, Imm)                         // SSE4_1
    1691             :   ASMJIT_INST_3x(pinsrq, Pinsrq, Xmm, Mem, Imm)                        // SSE4_1
    1692             :   ASMJIT_INST_3x(pinsrw, Pinsrw, Mm, Gp, Imm)                          // SSE
    1693             :   ASMJIT_INST_3x(pinsrw, Pinsrw, Mm, Mem, Imm)                         // SSE
    1694             :   ASMJIT_INST_3x(pinsrw, Pinsrw, Xmm, Gp, Imm)                         // SSE2
    1695             :   ASMJIT_INST_3x(pinsrw, Pinsrw, Xmm, Mem, Imm)                        // SSE2
    1696             :   ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Mm, Mm)                         // SSSE3
    1697             :   ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Mm, Mem)                        // SSSE3
    1698             :   ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Xmm, Xmm)                       // SSSE3
    1699             :   ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Xmm, Mem)                       // SSSE3
    1700             :   ASMJIT_INST_2x(pmaddwd, Pmaddwd, Mm, Mm)                             // MMX
    1701             :   ASMJIT_INST_2x(pmaddwd, Pmaddwd, Mm, Mem)                            // MMX
    1702             :   ASMJIT_INST_2x(pmaddwd, Pmaddwd, Xmm, Xmm)                           // SSE2
    1703             :   ASMJIT_INST_2x(pmaddwd, Pmaddwd, Xmm, Mem)                           // SSE2
    1704             :   ASMJIT_INST_2x(pmaxsb, Pmaxsb, Xmm, Xmm)                             // SSE4_1
    1705             :   ASMJIT_INST_2x(pmaxsb, Pmaxsb, Xmm, Mem)                             // SSE4_1
    1706             :   ASMJIT_INST_2x(pmaxsd, Pmaxsd, Xmm, Xmm)                             // SSE4_1
    1707             :   ASMJIT_INST_2x(pmaxsd, Pmaxsd, Xmm, Mem)                             // SSE4_1
    1708             :   ASMJIT_INST_2x(pmaxsw, Pmaxsw, Mm, Mm)                               // SSE
    1709             :   ASMJIT_INST_2x(pmaxsw, Pmaxsw, Mm, Mem)                              // SSE
    1710             :   ASMJIT_INST_2x(pmaxsw, Pmaxsw, Xmm, Xmm)                             // SSE2
    1711             :   ASMJIT_INST_2x(pmaxsw, Pmaxsw, Xmm, Mem)                             // SSE2
    1712             :   ASMJIT_INST_2x(pmaxub, Pmaxub, Mm, Mm)                               // SSE
    1713             :   ASMJIT_INST_2x(pmaxub, Pmaxub, Mm, Mem)                              // SSE
    1714             :   ASMJIT_INST_2x(pmaxub, Pmaxub, Xmm, Xmm)                             // SSE2
    1715             :   ASMJIT_INST_2x(pmaxub, Pmaxub, Xmm, Mem)                             // SSE2
    1716             :   ASMJIT_INST_2x(pmaxud, Pmaxud, Xmm, Xmm)                             // SSE4_1
    1717             :   ASMJIT_INST_2x(pmaxud, Pmaxud, Xmm, Mem)                             // SSE4_1
    1718             :   ASMJIT_INST_2x(pmaxuw, Pmaxuw, Xmm, Xmm)                             // SSE4_1
    1719             :   ASMJIT_INST_2x(pmaxuw, Pmaxuw, Xmm, Mem)                             // SSE4_1
    1720             :   ASMJIT_INST_2x(pminsb, Pminsb, Xmm, Xmm)                             // SSE4_1
    1721             :   ASMJIT_INST_2x(pminsb, Pminsb, Xmm, Mem)                             // SSE4_1
    1722             :   ASMJIT_INST_2x(pminsd, Pminsd, Xmm, Xmm)                             // SSE4_1
    1723             :   ASMJIT_INST_2x(pminsd, Pminsd, Xmm, Mem)                             // SSE4_1
    1724             :   ASMJIT_INST_2x(pminsw, Pminsw, Mm, Mm)                               // SSE
    1725             :   ASMJIT_INST_2x(pminsw, Pminsw, Mm, Mem)                              // SSE
    1726             :   ASMJIT_INST_2x(pminsw, Pminsw, Xmm, Xmm)                             // SSE2
    1727             :   ASMJIT_INST_2x(pminsw, Pminsw, Xmm, Mem)                             // SSE2
    1728             :   ASMJIT_INST_2x(pminub, Pminub, Mm, Mm)                               // SSE
    1729             :   ASMJIT_INST_2x(pminub, Pminub, Mm, Mem)                              // SSE
    1730             :   ASMJIT_INST_2x(pminub, Pminub, Xmm, Xmm)                             // SSE2
    1731             :   ASMJIT_INST_2x(pminub, Pminub, Xmm, Mem)                             // SSE2
    1732             :   ASMJIT_INST_2x(pminud, Pminud, Xmm, Xmm)                             // SSE4_1
    1733             :   ASMJIT_INST_2x(pminud, Pminud, Xmm, Mem)                             // SSE4_1
    1734             :   ASMJIT_INST_2x(pminuw, Pminuw, Xmm, Xmm)                             // SSE4_1
    1735             :   ASMJIT_INST_2x(pminuw, Pminuw, Xmm, Mem)                             // SSE4_1
    1736             :   ASMJIT_INST_2x(pmovmskb, Pmovmskb, Gp, Mm)                           // SSE
    1737             :   ASMJIT_INST_2x(pmovmskb, Pmovmskb, Gp, Xmm)                          // SSE2
    1738             :   ASMJIT_INST_2x(pmovsxbd, Pmovsxbd, Xmm, Xmm)                         // SSE4_1
    1739             :   ASMJIT_INST_2x(pmovsxbd, Pmovsxbd, Xmm, Mem)                         // SSE4_1
    1740             :   ASMJIT_INST_2x(pmovsxbq, Pmovsxbq, Xmm, Xmm)                         // SSE4_1
    1741             :   ASMJIT_INST_2x(pmovsxbq, Pmovsxbq, Xmm, Mem)                         // SSE4_1
    1742             :   ASMJIT_INST_2x(pmovsxbw, Pmovsxbw, Xmm, Xmm)                         // SSE4_1
    1743             :   ASMJIT_INST_2x(pmovsxbw, Pmovsxbw, Xmm, Mem)                         // SSE4_1
    1744             :   ASMJIT_INST_2x(pmovsxdq, Pmovsxdq, Xmm, Xmm)                         // SSE4_1
    1745             :   ASMJIT_INST_2x(pmovsxdq, Pmovsxdq, Xmm, Mem)                         // SSE4_1
    1746             :   ASMJIT_INST_2x(pmovsxwd, Pmovsxwd, Xmm, Xmm)                         // SSE4_1
    1747             :   ASMJIT_INST_2x(pmovsxwd, Pmovsxwd, Xmm, Mem)                         // SSE4_1
    1748             :   ASMJIT_INST_2x(pmovsxwq, Pmovsxwq, Xmm, Xmm)                         // SSE4_1
    1749             :   ASMJIT_INST_2x(pmovsxwq, Pmovsxwq, Xmm, Mem)                         // SSE4_1
    1750             :   ASMJIT_INST_2x(pmovzxbd, Pmovzxbd, Xmm, Xmm)                         // SSE4_1
    1751             :   ASMJIT_INST_2x(pmovzxbd, Pmovzxbd, Xmm, Mem)                         // SSE4_1
    1752             :   ASMJIT_INST_2x(pmovzxbq, Pmovzxbq, Xmm, Xmm)                         // SSE4_1
    1753             :   ASMJIT_INST_2x(pmovzxbq, Pmovzxbq, Xmm, Mem)                         // SSE4_1
    1754             :   ASMJIT_INST_2x(pmovzxbw, Pmovzxbw, Xmm, Xmm)                         // SSE4_1
    1755             :   ASMJIT_INST_2x(pmovzxbw, Pmovzxbw, Xmm, Mem)                         // SSE4_1
    1756             :   ASMJIT_INST_2x(pmovzxdq, Pmovzxdq, Xmm, Xmm)                         // SSE4_1
    1757             :   ASMJIT_INST_2x(pmovzxdq, Pmovzxdq, Xmm, Mem)                         // SSE4_1
    1758             :   ASMJIT_INST_2x(pmovzxwd, Pmovzxwd, Xmm, Xmm)                         // SSE4_1
    1759             :   ASMJIT_INST_2x(pmovzxwd, Pmovzxwd, Xmm, Mem)                         // SSE4_1
    1760             :   ASMJIT_INST_2x(pmovzxwq, Pmovzxwq, Xmm, Xmm)                         // SSE4_1
    1761             :   ASMJIT_INST_2x(pmovzxwq, Pmovzxwq, Xmm, Mem)                         // SSE4_1
    1762             :   ASMJIT_INST_2x(pmuldq, Pmuldq, Xmm, Xmm)                             // SSE4_1
    1763             :   ASMJIT_INST_2x(pmuldq, Pmuldq, Xmm, Mem)                             // SSE4_1
    1764             :   ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Mm, Mm)                           // SSSE3
    1765             :   ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Mm, Mem)                          // SSSE3
    1766             :   ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Xmm, Xmm)                         // SSSE3
    1767             :   ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Xmm, Mem)                         // SSSE3
    1768             :   ASMJIT_INST_2x(pmulhw, Pmulhw, Mm, Mm)                               // MMX
    1769             :   ASMJIT_INST_2x(pmulhw, Pmulhw, Mm, Mem)                              // MMX
    1770             :   ASMJIT_INST_2x(pmulhw, Pmulhw, Xmm, Xmm)                             // SSE2
    1771             :   ASMJIT_INST_2x(pmulhw, Pmulhw, Xmm, Mem)                             // SSE2
    1772             :   ASMJIT_INST_2x(pmulhuw, Pmulhuw, Mm, Mm)                             // SSE
    1773             :   ASMJIT_INST_2x(pmulhuw, Pmulhuw, Mm, Mem)                            // SSE
    1774             :   ASMJIT_INST_2x(pmulhuw, Pmulhuw, Xmm, Xmm)                           // SSE2
    1775             :   ASMJIT_INST_2x(pmulhuw, Pmulhuw, Xmm, Mem)                           // SSE2
    1776             :   ASMJIT_INST_2x(pmulld, Pmulld, Xmm, Xmm)                             // SSE4_1
    1777             :   ASMJIT_INST_2x(pmulld, Pmulld, Xmm, Mem)                             // SSE4_1
    1778             :   ASMJIT_INST_2x(pmullw, Pmullw, Mm, Mm)                               // MMX
    1779             :   ASMJIT_INST_2x(pmullw, Pmullw, Mm, Mem)                              // MMX
    1780             :   ASMJIT_INST_2x(pmullw, Pmullw, Xmm, Xmm)                             // SSE2
    1781             :   ASMJIT_INST_2x(pmullw, Pmullw, Xmm, Mem)                             // SSE2
    1782             :   ASMJIT_INST_2x(pmuludq, Pmuludq, Mm, Mm)                             // SSE2
    1783             :   ASMJIT_INST_2x(pmuludq, Pmuludq, Mm, Mem)                            // SSE2
    1784             :   ASMJIT_INST_2x(pmuludq, Pmuludq, Xmm, Xmm)                           // SSE2
    1785             :   ASMJIT_INST_2x(pmuludq, Pmuludq, Xmm, Mem)                           // SSE2
    1786             :   ASMJIT_INST_2x(por, Por, Mm, Mm)                                     // MMX
    1787             :   ASMJIT_INST_2x(por, Por, Mm, Mem)                                    // MMX
    1788             :   ASMJIT_INST_2x(por, Por, Xmm, Xmm)                                   // SSE2
    1789             :   ASMJIT_INST_2x(por, Por, Xmm, Mem)                                   // SSE2
    1790             :   ASMJIT_INST_2x(psadbw, Psadbw, Mm, Mm)                               // SSE
    1791             :   ASMJIT_INST_2x(psadbw, Psadbw, Mm, Mem)                              // SSE
    1792             :   ASMJIT_INST_2x(psadbw, Psadbw, Xmm, Xmm)                             // SSE
    1793             :   ASMJIT_INST_2x(psadbw, Psadbw, Xmm, Mem)                             // SSE
    1794             :   ASMJIT_INST_2x(pslld, Pslld, Mm, Mm)                                 // MMX
    1795             :   ASMJIT_INST_2x(pslld, Pslld, Mm, Mem)                                // MMX
    1796             :   ASMJIT_INST_2x(pslld, Pslld, Mm, Imm)                                // MMX
    1797             :   ASMJIT_INST_2x(pslld, Pslld, Xmm, Xmm)                               // SSE2
    1798             :   ASMJIT_INST_2x(pslld, Pslld, Xmm, Mem)                               // SSE2
    1799             :   ASMJIT_INST_2x(pslld, Pslld, Xmm, Imm)                               // SSE2
    1800             :   ASMJIT_INST_2x(pslldq, Pslldq, Xmm, Imm)                             // SSE2
    1801             :   ASMJIT_INST_2x(psllq, Psllq, Mm, Mm)                                 // MMX
    1802             :   ASMJIT_INST_2x(psllq, Psllq, Mm, Mem)                                // MMX
    1803             :   ASMJIT_INST_2x(psllq, Psllq, Mm, Imm)                                // MMX
    1804             :   ASMJIT_INST_2x(psllq, Psllq, Xmm, Xmm)                               // SSE2
    1805             :   ASMJIT_INST_2x(psllq, Psllq, Xmm, Mem)                               // SSE2
    1806             :   ASMJIT_INST_2x(psllq, Psllq, Xmm, Imm)                               // SSE2
    1807             :   ASMJIT_INST_2x(psllw, Psllw, Mm, Mm)                                 // MMX
    1808             :   ASMJIT_INST_2x(psllw, Psllw, Mm, Mem)                                // MMX
    1809             :   ASMJIT_INST_2x(psllw, Psllw, Mm, Imm)                                // MMX
    1810             :   ASMJIT_INST_2x(psllw, Psllw, Xmm, Xmm)                               // SSE2
    1811             :   ASMJIT_INST_2x(psllw, Psllw, Xmm, Mem)                               // SSE2
    1812             :   ASMJIT_INST_2x(psllw, Psllw, Xmm, Imm)                               // SSE2
    1813             :   ASMJIT_INST_2x(psrad, Psrad, Mm, Mm)                                 // MMX
    1814             :   ASMJIT_INST_2x(psrad, Psrad, Mm, Mem)                                // MMX
    1815             :   ASMJIT_INST_2x(psrad, Psrad, Mm, Imm)                                // MMX
    1816             :   ASMJIT_INST_2x(psrad, Psrad, Xmm, Xmm)                               // SSE2
    1817             :   ASMJIT_INST_2x(psrad, Psrad, Xmm, Mem)                               // SSE2
    1818             :   ASMJIT_INST_2x(psrad, Psrad, Xmm, Imm)                               // SSE2
    1819             :   ASMJIT_INST_2x(psraw, Psraw, Mm, Mm)                                 // MMX
    1820             :   ASMJIT_INST_2x(psraw, Psraw, Mm, Mem)                                // MMX
    1821             :   ASMJIT_INST_2x(psraw, Psraw, Mm, Imm)                                // MMX
    1822             :   ASMJIT_INST_2x(psraw, Psraw, Xmm, Xmm)                               // SSE2
    1823             :   ASMJIT_INST_2x(psraw, Psraw, Xmm, Mem)                               // SSE2
    1824             :   ASMJIT_INST_2x(psraw, Psraw, Xmm, Imm)                               // SSE2
    1825             :   ASMJIT_INST_2x(pshufb, Pshufb, Mm, Mm)                               // SSSE3
    1826             :   ASMJIT_INST_2x(pshufb, Pshufb, Mm, Mem)                              // SSSE3
    1827             :   ASMJIT_INST_2x(pshufb, Pshufb, Xmm, Xmm)                             // SSSE3
    1828             :   ASMJIT_INST_2x(pshufb, Pshufb, Xmm, Mem)                             // SSSE3
    1829             :   ASMJIT_INST_3x(pshufd, Pshufd, Xmm, Xmm, Imm)                        // SSE2
    1830             :   ASMJIT_INST_3x(pshufd, Pshufd, Xmm, Mem, Imm)                        // SSE2
    1831             :   ASMJIT_INST_3x(pshufhw, Pshufhw, Xmm, Xmm, Imm)                      // SSE2
    1832             :   ASMJIT_INST_3x(pshufhw, Pshufhw, Xmm, Mem, Imm)                      // SSE2
    1833             :   ASMJIT_INST_3x(pshuflw, Pshuflw, Xmm, Xmm, Imm)                      // SSE2
    1834             :   ASMJIT_INST_3x(pshuflw, Pshuflw, Xmm, Mem, Imm)                      // SSE2
    1835             :   ASMJIT_INST_3x(pshufw, Pshufw, Mm, Mm, Imm)                          // SSE
    1836             :   ASMJIT_INST_3x(pshufw, Pshufw, Mm, Mem, Imm)                         // SSE
    1837             :   ASMJIT_INST_2x(psignb, Psignb, Mm, Mm)                               // SSSE3
    1838             :   ASMJIT_INST_2x(psignb, Psignb, Mm, Mem)                              // SSSE3
    1839             :   ASMJIT_INST_2x(psignb, Psignb, Xmm, Xmm)                             // SSSE3
    1840             :   ASMJIT_INST_2x(psignb, Psignb, Xmm, Mem)                             // SSSE3
    1841             :   ASMJIT_INST_2x(psignd, Psignd, Mm, Mm)                               // SSSE3
    1842             :   ASMJIT_INST_2x(psignd, Psignd, Mm, Mem)                              // SSSE3
    1843             :   ASMJIT_INST_2x(psignd, Psignd, Xmm, Xmm)                             // SSSE3
    1844             :   ASMJIT_INST_2x(psignd, Psignd, Xmm, Mem)                             // SSSE3
    1845             :   ASMJIT_INST_2x(psignw, Psignw, Mm, Mm)                               // SSSE3
    1846             :   ASMJIT_INST_2x(psignw, Psignw, Mm, Mem)                              // SSSE3
    1847             :   ASMJIT_INST_2x(psignw, Psignw, Xmm, Xmm)                             // SSSE3
    1848             :   ASMJIT_INST_2x(psignw, Psignw, Xmm, Mem)                             // SSSE3
    1849             :   ASMJIT_INST_2x(psrld, Psrld, Mm, Mm)                                 // MMX
    1850             :   ASMJIT_INST_2x(psrld, Psrld, Mm, Mem)                                // MMX
    1851             :   ASMJIT_INST_2x(psrld, Psrld, Mm, Imm)                                // MMX
    1852             :   ASMJIT_INST_2x(psrld, Psrld, Xmm, Xmm)                               // SSE2
    1853             :   ASMJIT_INST_2x(psrld, Psrld, Xmm, Mem)                               // SSE2
    1854             :   ASMJIT_INST_2x(psrld, Psrld, Xmm, Imm)                               // SSE2
    1855             :   ASMJIT_INST_2x(psrldq, Psrldq, Xmm, Imm)                             // SSE2
    1856             :   ASMJIT_INST_2x(psrlq, Psrlq, Mm, Mm)                                 // MMX
    1857             :   ASMJIT_INST_2x(psrlq, Psrlq, Mm, Mem)                                // MMX
    1858             :   ASMJIT_INST_2x(psrlq, Psrlq, Mm, Imm)                                // MMX
    1859             :   ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Xmm)                               // SSE2
    1860             :   ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Mem)                               // SSE2
    1861             :   ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Imm)                               // SSE2
    1862             :   ASMJIT_INST_2x(psrlw, Psrlw, Mm, Mm)                                 // MMX
    1863             :   ASMJIT_INST_2x(psrlw, Psrlw, Mm, Mem)                                // MMX
    1864             :   ASMJIT_INST_2x(psrlw, Psrlw, Mm, Imm)                                // MMX
    1865             :   ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Xmm)                               // SSE2
    1866             :   ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Mem)                               // SSE2
    1867             :   ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Imm)                               // SSE2
    1868             :   ASMJIT_INST_2x(psubb, Psubb, Mm, Mm)                                 // MMX
    1869             :   ASMJIT_INST_2x(psubb, Psubb, Mm, Mem)                                // MMX
    1870             :   ASMJIT_INST_2x(psubb, Psubb, Xmm, Xmm)                               // SSE2
    1871             :   ASMJIT_INST_2x(psubb, Psubb, Xmm, Mem)                               // SSE2
    1872             :   ASMJIT_INST_2x(psubd, Psubd, Mm, Mm)                                 // MMX
    1873             :   ASMJIT_INST_2x(psubd, Psubd, Mm, Mem)                                // MMX
    1874             :   ASMJIT_INST_2x(psubd, Psubd, Xmm, Xmm)                               // SSE2
    1875             :   ASMJIT_INST_2x(psubd, Psubd, Xmm, Mem)                               // SSE2
    1876             :   ASMJIT_INST_2x(psubq, Psubq, Mm, Mm)                                 // SSE2
    1877             :   ASMJIT_INST_2x(psubq, Psubq, Mm, Mem)                                // SSE2
    1878             :   ASMJIT_INST_2x(psubq, Psubq, Xmm, Xmm)                               // SSE2
    1879             :   ASMJIT_INST_2x(psubq, Psubq, Xmm, Mem)                               // SSE2
    1880             :   ASMJIT_INST_2x(psubsb, Psubsb, Mm, Mm)                               // MMX
    1881             :   ASMJIT_INST_2x(psubsb, Psubsb, Mm, Mem)                              // MMX
    1882             :   ASMJIT_INST_2x(psubsb, Psubsb, Xmm, Xmm)                             // SSE2
    1883             :   ASMJIT_INST_2x(psubsb, Psubsb, Xmm, Mem)                             // SSE2
    1884             :   ASMJIT_INST_2x(psubsw, Psubsw, Mm, Mm)                               // MMX
    1885             :   ASMJIT_INST_2x(psubsw, Psubsw, Mm, Mem)                              // MMX
    1886             :   ASMJIT_INST_2x(psubsw, Psubsw, Xmm, Xmm)                             // SSE2
    1887             :   ASMJIT_INST_2x(psubsw, Psubsw, Xmm, Mem)                             // SSE2
    1888             :   ASMJIT_INST_2x(psubusb, Psubusb, Mm, Mm)                             // MMX
    1889             :   ASMJIT_INST_2x(psubusb, Psubusb, Mm, Mem)                            // MMX
    1890             :   ASMJIT_INST_2x(psubusb, Psubusb, Xmm, Xmm)                           // SSE2
    1891             :   ASMJIT_INST_2x(psubusb, Psubusb, Xmm, Mem)                           // SSE2
    1892             :   ASMJIT_INST_2x(psubusw, Psubusw, Mm, Mm)                             // MMX
    1893             :   ASMJIT_INST_2x(psubusw, Psubusw, Mm, Mem)                            // MMX
    1894             :   ASMJIT_INST_2x(psubusw, Psubusw, Xmm, Xmm)                           // SSE2
    1895             :   ASMJIT_INST_2x(psubusw, Psubusw, Xmm, Mem)                           // SSE2
    1896             :   ASMJIT_INST_2x(psubw, Psubw, Mm, Mm)                                 // MMX
    1897             :   ASMJIT_INST_2x(psubw, Psubw, Mm, Mem)                                // MMX
    1898             :   ASMJIT_INST_2x(psubw, Psubw, Xmm, Xmm)                               // SSE2
    1899             :   ASMJIT_INST_2x(psubw, Psubw, Xmm, Mem)                               // SSE2
    1900             :   ASMJIT_INST_2x(ptest, Ptest, Xmm, Xmm)                               // SSE4_1
    1901             :   ASMJIT_INST_2x(ptest, Ptest, Xmm, Mem)                               // SSE4_1
    1902             :   ASMJIT_INST_2x(punpckhbw, Punpckhbw, Mm, Mm)                         // MMX
    1903             :   ASMJIT_INST_2x(punpckhbw, Punpckhbw, Mm, Mem)                        // MMX
    1904             :   ASMJIT_INST_2x(punpckhbw, Punpckhbw, Xmm, Xmm)                       // SSE2
    1905             :   ASMJIT_INST_2x(punpckhbw, Punpckhbw, Xmm, Mem)                       // SSE2
    1906             :   ASMJIT_INST_2x(punpckhdq, Punpckhdq, Mm, Mm)                         // MMX
    1907             :   ASMJIT_INST_2x(punpckhdq, Punpckhdq, Mm, Mem)                        // MMX
    1908             :   ASMJIT_INST_2x(punpckhdq, Punpckhdq, Xmm, Xmm)                       // SSE2
    1909             :   ASMJIT_INST_2x(punpckhdq, Punpckhdq, Xmm, Mem)                       // SSE2
    1910             :   ASMJIT_INST_2x(punpckhqdq, Punpckhqdq, Xmm, Xmm)                     // SSE2
    1911             :   ASMJIT_INST_2x(punpckhqdq, Punpckhqdq, Xmm, Mem)                     // SSE2
    1912             :   ASMJIT_INST_2x(punpckhwd, Punpckhwd, Mm, Mm)                         // MMX
    1913             :   ASMJIT_INST_2x(punpckhwd, Punpckhwd, Mm, Mem)                        // MMX
    1914             :   ASMJIT_INST_2x(punpckhwd, Punpckhwd, Xmm, Xmm)                       // SSE2
    1915             :   ASMJIT_INST_2x(punpckhwd, Punpckhwd, Xmm, Mem)                       // SSE2
    1916             :   ASMJIT_INST_2x(punpcklbw, Punpcklbw, Mm, Mm)                         // MMX
    1917             :   ASMJIT_INST_2x(punpcklbw, Punpcklbw, Mm, Mem)                        // MMX
    1918             :   ASMJIT_INST_2x(punpcklbw, Punpcklbw, Xmm, Xmm)                       // SSE2
    1919             :   ASMJIT_INST_2x(punpcklbw, Punpcklbw, Xmm, Mem)                       // SSE2
    1920             :   ASMJIT_INST_2x(punpckldq, Punpckldq, Mm, Mm)                         // MMX
    1921             :   ASMJIT_INST_2x(punpckldq, Punpckldq, Mm, Mem)                        // MMX
    1922             :   ASMJIT_INST_2x(punpckldq, Punpckldq, Xmm, Xmm)                       // SSE2
    1923             :   ASMJIT_INST_2x(punpckldq, Punpckldq, Xmm, Mem)                       // SSE2
    1924             :   ASMJIT_INST_2x(punpcklqdq, Punpcklqdq, Xmm, Xmm)                     // SSE2
    1925             :   ASMJIT_INST_2x(punpcklqdq, Punpcklqdq, Xmm, Mem)                     // SSE2
    1926             :   ASMJIT_INST_2x(punpcklwd, Punpcklwd, Mm, Mm)                         // MMX
    1927             :   ASMJIT_INST_2x(punpcklwd, Punpcklwd, Mm, Mem)                        // MMX
    1928             :   ASMJIT_INST_2x(punpcklwd, Punpcklwd, Xmm, Xmm)                       // SSE2
    1929             :   ASMJIT_INST_2x(punpcklwd, Punpcklwd, Xmm, Mem)                       // SSE2
    1930             :   ASMJIT_INST_2x(pxor, Pxor, Mm, Mm)                                   // MMX
    1931             :   ASMJIT_INST_2x(pxor, Pxor, Mm, Mem)                                  // MMX
    1932             :   ASMJIT_INST_2x(pxor, Pxor, Xmm, Xmm)                                 // SSE2
    1933             :   ASMJIT_INST_2x(pxor, Pxor, Xmm, Mem)                                 // SSE2
    1934             :   ASMJIT_INST_2x(rcpps, Rcpps, Xmm, Xmm)                               // SSE
    1935             :   ASMJIT_INST_2x(rcpps, Rcpps, Xmm, Mem)                               // SSE
    1936             :   ASMJIT_INST_2x(rcpss, Rcpss, Xmm, Xmm)                               // SSE
    1937             :   ASMJIT_INST_2x(rcpss, Rcpss, Xmm, Mem)                               // SSE
    1938             :   ASMJIT_INST_3x(roundpd, Roundpd, Xmm, Xmm, Imm)                      // SSE4_1
    1939             :   ASMJIT_INST_3x(roundpd, Roundpd, Xmm, Mem, Imm)                      // SSE4_1
    1940             :   ASMJIT_INST_3x(roundps, Roundps, Xmm, Xmm, Imm)                      // SSE4_1
    1941             :   ASMJIT_INST_3x(roundps, Roundps, Xmm, Mem, Imm)                      // SSE4_1
    1942             :   ASMJIT_INST_3x(roundsd, Roundsd, Xmm, Xmm, Imm)                      // SSE4_1
    1943             :   ASMJIT_INST_3x(roundsd, Roundsd, Xmm, Mem, Imm)                      // SSE4_1
    1944             :   ASMJIT_INST_3x(roundss, Roundss, Xmm, Xmm, Imm)                      // SSE4_1
    1945             :   ASMJIT_INST_3x(roundss, Roundss, Xmm, Mem, Imm)                      // SSE4_1
    1946             :   ASMJIT_INST_2x(rsqrtps, Rsqrtps, Xmm, Xmm)                           // SSE
    1947             :   ASMJIT_INST_2x(rsqrtps, Rsqrtps, Xmm, Mem)                           // SSE
    1948             :   ASMJIT_INST_2x(rsqrtss, Rsqrtss, Xmm, Xmm)                           // SSE
    1949             :   ASMJIT_INST_2x(rsqrtss, Rsqrtss, Xmm, Mem)                           // SSE
    1950             :   ASMJIT_INST_3x(shufpd, Shufpd, Xmm, Xmm, Imm)                        // SSE2
    1951             :   ASMJIT_INST_3x(shufpd, Shufpd, Xmm, Mem, Imm)                        // SSE2
    1952             :   ASMJIT_INST_3x(shufps, Shufps, Xmm, Xmm, Imm)                        // SSE
    1953             :   ASMJIT_INST_3x(shufps, Shufps, Xmm, Mem, Imm)                        // SSE
    1954             :   ASMJIT_INST_2x(sqrtpd, Sqrtpd, Xmm, Xmm)                             // SSE2
    1955             :   ASMJIT_INST_2x(sqrtpd, Sqrtpd, Xmm, Mem)                             // SSE2
    1956             :   ASMJIT_INST_2x(sqrtps, Sqrtps, Xmm, Xmm)                             // SSE
    1957             :   ASMJIT_INST_2x(sqrtps, Sqrtps, Xmm, Mem)                             // SSE
    1958             :   ASMJIT_INST_2x(sqrtsd, Sqrtsd, Xmm, Xmm)                             // SSE2
    1959             :   ASMJIT_INST_2x(sqrtsd, Sqrtsd, Xmm, Mem)                             // SSE2
    1960             :   ASMJIT_INST_2x(sqrtss, Sqrtss, Xmm, Xmm)                             // SSE
    1961             :   ASMJIT_INST_2x(sqrtss, Sqrtss, Xmm, Mem)                             // SSE
    1962             :   ASMJIT_INST_2x(subpd, Subpd, Xmm, Xmm)                               // SSE2
    1963             :   ASMJIT_INST_2x(subpd, Subpd, Xmm, Mem)                               // SSE2
    1964             :   ASMJIT_INST_2x(subps, Subps, Xmm, Xmm)                               // SSE
    1965             :   ASMJIT_INST_2x(subps, Subps, Xmm, Mem)                               // SSE
    1966             :   ASMJIT_INST_2x(subsd, Subsd, Xmm, Xmm)                               // SSE2
    1967             :   ASMJIT_INST_2x(subsd, Subsd, Xmm, Mem)                               // SSE2
    1968             :   ASMJIT_INST_2x(subss, Subss, Xmm, Xmm)                               // SSE
    1969             :   ASMJIT_INST_2x(subss, Subss, Xmm, Mem)                               // SSE
    1970             :   ASMJIT_INST_2x(ucomisd, Ucomisd, Xmm, Xmm)                           // SSE2
    1971             :   ASMJIT_INST_2x(ucomisd, Ucomisd, Xmm, Mem)                           // SSE2
    1972             :   ASMJIT_INST_2x(ucomiss, Ucomiss, Xmm, Xmm)                           // SSE
    1973             :   ASMJIT_INST_2x(ucomiss, Ucomiss, Xmm, Mem)                           // SSE
    1974             :   ASMJIT_INST_2x(unpckhpd, Unpckhpd, Xmm, Xmm)                         // SSE2
    1975             :   ASMJIT_INST_2x(unpckhpd, Unpckhpd, Xmm, Mem)                         // SSE2
    1976             :   ASMJIT_INST_2x(unpckhps, Unpckhps, Xmm, Xmm)                         // SSE
    1977             :   ASMJIT_INST_2x(unpckhps, Unpckhps, Xmm, Mem)                         // SSE
    1978             :   ASMJIT_INST_2x(unpcklpd, Unpcklpd, Xmm, Xmm)                         // SSE2
    1979             :   ASMJIT_INST_2x(unpcklpd, Unpcklpd, Xmm, Mem)                         // SSE2
    1980             :   ASMJIT_INST_2x(unpcklps, Unpcklps, Xmm, Xmm)                         // SSE
    1981             :   ASMJIT_INST_2x(unpcklps, Unpcklps, Xmm, Mem)                         // SSE
    1982             :   ASMJIT_INST_2x(xorpd, Xorpd, Xmm, Xmm)                               // SSE2
    1983             :   ASMJIT_INST_2x(xorpd, Xorpd, Xmm, Mem)                               // SSE2
    1984             :   ASMJIT_INST_2x(xorps, Xorps, Xmm, Xmm)                               // SSE
    1985             :   ASMJIT_INST_2x(xorps, Xorps, Xmm, Mem)                               // SSE
    1986             : 
    1987             :   //! \}
    1988             : 
    1989             :   //! \name 3DNOW and GEODE Instructions (Deprecated)
    1990             :   //! \{
    1991             : 
    1992             :   ASMJIT_INST_2x(pavgusb, Pavgusb, Mm, Mm)                             // 3DNOW
    1993             :   ASMJIT_INST_2x(pavgusb, Pavgusb, Mm, Mem)                            // 3DNOW
    1994             :   ASMJIT_INST_2x(pf2id, Pf2id, Mm, Mm)                                 // 3DNOW
    1995             :   ASMJIT_INST_2x(pf2id, Pf2id, Mm, Mem)                                // 3DNOW
    1996             :   ASMJIT_INST_2x(pf2iw, Pf2iw, Mm, Mm)                                 // 3DNOW
    1997             :   ASMJIT_INST_2x(pf2iw, Pf2iw, Mm, Mem)                                // 3DNOW
    1998             :   ASMJIT_INST_2x(pfacc, Pfacc, Mm, Mm)                                 // 3DNOW
    1999             :   ASMJIT_INST_2x(pfacc, Pfacc, Mm, Mem)                                // 3DNOW
    2000             :   ASMJIT_INST_2x(pfadd, Pfadd, Mm, Mm)                                 // 3DNOW
    2001             :   ASMJIT_INST_2x(pfadd, Pfadd, Mm, Mem)                                // 3DNOW
    2002             :   ASMJIT_INST_2x(pfcmpeq, Pfcmpeq, Mm, Mm)                             // 3DNOW
    2003             :   ASMJIT_INST_2x(pfcmpeq, Pfcmpeq, Mm, Mem)                            // 3DNOW
    2004             :   ASMJIT_INST_2x(pfcmpge, Pfcmpge, Mm, Mm)                             // 3DNOW
    2005             :   ASMJIT_INST_2x(pfcmpge, Pfcmpge, Mm, Mem)                            // 3DNOW
    2006             :   ASMJIT_INST_2x(pfcmpgt, Pfcmpgt, Mm, Mm)                             // 3DNOW
    2007             :   ASMJIT_INST_2x(pfcmpgt, Pfcmpgt, Mm, Mem)                            // 3DNOW
    2008             :   ASMJIT_INST_2x(pfmax, Pfmax, Mm, Mm)                                 // 3DNOW
    2009             :   ASMJIT_INST_2x(pfmax, Pfmax, Mm, Mem)                                // 3DNOW
    2010             :   ASMJIT_INST_2x(pfmin, Pfmin, Mm, Mm)                                 // 3DNOW
    2011             :   ASMJIT_INST_2x(pfmin, Pfmin, Mm, Mem)                                // 3DNOW
    2012             :   ASMJIT_INST_2x(pfmul, Pfmul, Mm, Mm)                                 // 3DNOW
    2013             :   ASMJIT_INST_2x(pfmul, Pfmul, Mm, Mem)                                // 3DNOW
    2014             :   ASMJIT_INST_2x(pfnacc, Pfnacc, Mm, Mm)                               // 3DNOW
    2015             :   ASMJIT_INST_2x(pfnacc, Pfnacc, Mm, Mem)                              // 3DNOW
    2016             :   ASMJIT_INST_2x(pfpnacc, Pfpnacc, Mm, Mm)                             // 3DNOW
    2017             :   ASMJIT_INST_2x(pfpnacc, Pfpnacc, Mm, Mem)                            // 3DNOW
    2018             :   ASMJIT_INST_2x(pfrcp, Pfrcp, Mm, Mm)                                 // 3DNOW
    2019             :   ASMJIT_INST_2x(pfrcp, Pfrcp, Mm, Mem)                                // 3DNOW
    2020             :   ASMJIT_INST_2x(pfrcpit1, Pfrcpit1, Mm, Mm)                           // 3DNOW
    2021             :   ASMJIT_INST_2x(pfrcpit1, Pfrcpit1, Mm, Mem)                          // 3DNOW
    2022             :   ASMJIT_INST_2x(pfrcpit2, Pfrcpit2, Mm, Mm)                           // 3DNOW
    2023             :   ASMJIT_INST_2x(pfrcpit2, Pfrcpit2, Mm, Mem)                          // 3DNOW
    2024             :   ASMJIT_INST_2x(pfrcpv, Pfrcpv, Mm, Mm)                               // GEODE
    2025             :   ASMJIT_INST_2x(pfrcpv, Pfrcpv, Mm, Mem)                              // GEODE
    2026             :   ASMJIT_INST_2x(pfrsqit1, Pfrsqit1, Mm, Mm)                           // 3DNOW
    2027             :   ASMJIT_INST_2x(pfrsqit1, Pfrsqit1, Mm, Mem)                          // 3DNOW
    2028             :   ASMJIT_INST_2x(pfrsqrt, Pfrsqrt, Mm, Mm)                             // 3DNOW
    2029             :   ASMJIT_INST_2x(pfrsqrt, Pfrsqrt, Mm, Mem)                            // 3DNOW
    2030             :   ASMJIT_INST_2x(pfrsqrtv, Pfrsqrtv, Mm, Mm)                           // GEODE
    2031             :   ASMJIT_INST_2x(pfrsqrtv, Pfrsqrtv, Mm, Mem)                          // GEODE
    2032             :   ASMJIT_INST_2x(pfsub, Pfsub, Mm, Mm)                                 // 3DNOW
    2033             :   ASMJIT_INST_2x(pfsub, Pfsub, Mm, Mem)                                // 3DNOW
    2034             :   ASMJIT_INST_2x(pfsubr, Pfsubr, Mm, Mm)                               // 3DNOW
    2035             :   ASMJIT_INST_2x(pfsubr, Pfsubr, Mm, Mem)                              // 3DNOW
    2036             :   ASMJIT_INST_2x(pi2fd, Pi2fd, Mm, Mm)                                 // 3DNOW
    2037             :   ASMJIT_INST_2x(pi2fd, Pi2fd, Mm, Mem)                                // 3DNOW
    2038             :   ASMJIT_INST_2x(pi2fw, Pi2fw, Mm, Mm)                                 // 3DNOW
    2039             :   ASMJIT_INST_2x(pi2fw, Pi2fw, Mm, Mem)                                // 3DNOW
    2040             :   ASMJIT_INST_2x(pmulhrw, Pmulhrw, Mm, Mm)                             // 3DNOW
    2041             :   ASMJIT_INST_2x(pmulhrw, Pmulhrw, Mm, Mem)                            // 3DNOW
    2042             :   ASMJIT_INST_2x(pswapd, Pswapd, Mm, Mm)                               // 3DNOW
    2043             :   ASMJIT_INST_2x(pswapd, Pswapd, Mm, Mem)                              // 3DNOW
    2044             : 
    2045             :   //! \}
    2046             : 
    2047             :   //! \name EMMS/FEMMS Instructions
    2048             :   //! \{
    2049             : 
    2050           0 :   ASMJIT_INST_0x(emms, Emms)                                           // MMX
    2051             :   ASMJIT_INST_0x(femms, Femms)                                         // 3DNOW
    2052             : 
    2053             :   //! \}
    2054             : 
    2055             :   //! \name AESNI Instructions
    2056             :   //! \{
    2057             : 
    2058             :   ASMJIT_INST_2x(aesdec, Aesdec, Xmm, Xmm)                             // AESNI
    2059             :   ASMJIT_INST_2x(aesdec, Aesdec, Xmm, Mem)                             // AESNI
    2060             :   ASMJIT_INST_2x(aesdeclast, Aesdeclast, Xmm, Xmm)                     // AESNI
    2061             :   ASMJIT_INST_2x(aesdeclast, Aesdeclast, Xmm, Mem)                     // AESNI
    2062             :   ASMJIT_INST_2x(aesenc, Aesenc, Xmm, Xmm)                             // AESNI
    2063             :   ASMJIT_INST_2x(aesenc, Aesenc, Xmm, Mem)                             // AESNI
    2064             :   ASMJIT_INST_2x(aesenclast, Aesenclast, Xmm, Xmm)                     // AESNI
    2065             :   ASMJIT_INST_2x(aesenclast, Aesenclast, Xmm, Mem)                     // AESNI
    2066             :   ASMJIT_INST_2x(aesimc, Aesimc, Xmm, Xmm)                             // AESNI
    2067             :   ASMJIT_INST_2x(aesimc, Aesimc, Xmm, Mem)                             // AESNI
    2068             :   ASMJIT_INST_3x(aeskeygenassist, Aeskeygenassist, Xmm, Xmm, Imm)      // AESNI
    2069             :   ASMJIT_INST_3x(aeskeygenassist, Aeskeygenassist, Xmm, Mem, Imm)      // AESNI
    2070             : 
    2071             :   //! \}
    2072             : 
    2073             :   //! \name SHA Instructions
    2074             :   //! \{
    2075             : 
    2076             :   ASMJIT_INST_2x(sha1msg1, Sha1msg1, Xmm, Xmm)                         // SHA
    2077             :   ASMJIT_INST_2x(sha1msg1, Sha1msg1, Xmm, Mem)                         // SHA
    2078             :   ASMJIT_INST_2x(sha1msg2, Sha1msg2, Xmm, Xmm)                         // SHA
    2079             :   ASMJIT_INST_2x(sha1msg2, Sha1msg2, Xmm, Mem)                         // SHA
    2080             :   ASMJIT_INST_2x(sha1nexte, Sha1nexte, Xmm, Xmm)                       // SHA
    2081             :   ASMJIT_INST_2x(sha1nexte, Sha1nexte, Xmm, Mem)                       // SHA
    2082             :   ASMJIT_INST_3x(sha1rnds4, Sha1rnds4, Xmm, Xmm, Imm)                  // SHA
    2083             :   ASMJIT_INST_3x(sha1rnds4, Sha1rnds4, Xmm, Mem, Imm)                  // SHA
    2084             :   ASMJIT_INST_2x(sha256msg1, Sha256msg1, Xmm, Xmm)                     // SHA
    2085             :   ASMJIT_INST_2x(sha256msg1, Sha256msg1, Xmm, Mem)                     // SHA
    2086             :   ASMJIT_INST_2x(sha256msg2, Sha256msg2, Xmm, Xmm)                     // SHA
    2087             :   ASMJIT_INST_2x(sha256msg2, Sha256msg2, Xmm, Mem)                     // SHA
    2088             :   ASMJIT_INST_3x(sha256rnds2, Sha256rnds2, Xmm, Xmm, XMM0)             // SHA [EXPLICIT]
    2089             :   ASMJIT_INST_3x(sha256rnds2, Sha256rnds2, Xmm, Mem, XMM0)             // SHA [EXPLICIT]
    2090             : 
    2091             :   //! \}
    2092             : 
    2093             :   //! \name GFNI Instructions
    2094             :   //! \{
    2095             : 
    2096             :   // NOTE: For some reason Doxygen is messed up here and thinks we are in cond.
    2097             :   //! \endcond
    2098             : 
    2099             :   ASMJIT_INST_3x(gf2p8affineinvqb, Gf2p8affineinvqb, Xmm, Xmm, Imm)    // GFNI
    2100             :   ASMJIT_INST_3x(gf2p8affineinvqb, Gf2p8affineinvqb, Xmm, Mem, Imm)    // GFNI
    2101             :   ASMJIT_INST_3x(gf2p8affineqb, Gf2p8affineqb, Xmm, Xmm, Imm)          // GFNI
    2102             :   ASMJIT_INST_3x(gf2p8affineqb, Gf2p8affineqb, Xmm, Mem, Imm)          // GFNI
    2103             :   ASMJIT_INST_2x(gf2p8mulb, Gf2p8mulb, Xmm, Xmm)                       // GFNI
    2104             :   ASMJIT_INST_2x(gf2p8mulb, Gf2p8mulb, Xmm, Mem)                       // GFNI
    2105             : 
    2106             :   //! \}
    2107             : 
    2108             :   //! \name AVX, FMA, and AVX512 Instructions
    2109             :   //! \{
    2110             : 
    2111             :   ASMJIT_INST_3x(kaddb, Kaddb, KReg, KReg, KReg)                       // AVX512_DQ
    2112             :   ASMJIT_INST_3x(kaddd, Kaddd, KReg, KReg, KReg)                       // AVX512_BW
    2113             :   ASMJIT_INST_3x(kaddq, Kaddq, KReg, KReg, KReg)                       // AVX512_BW
    2114             :   ASMJIT_INST_3x(kaddw, Kaddw, KReg, KReg, KReg)                       // AVX512_DQ
    2115             :   ASMJIT_INST_3x(kandb, Kandb, KReg, KReg, KReg)                       // AVX512_DQ
    2116             :   ASMJIT_INST_3x(kandd, Kandd, KReg, KReg, KReg)                       // AVX512_BW
    2117             :   ASMJIT_INST_3x(kandnb, Kandnb, KReg, KReg, KReg)                     // AVX512_DQ
    2118             :   ASMJIT_INST_3x(kandnd, Kandnd, KReg, KReg, KReg)                     // AVX512_BW
    2119             :   ASMJIT_INST_3x(kandnq, Kandnq, KReg, KReg, KReg)                     // AVX512_BW
    2120             :   ASMJIT_INST_3x(kandnw, Kandnw, KReg, KReg, KReg)                     // AVX512_F
    2121             :   ASMJIT_INST_3x(kandq, Kandq, KReg, KReg, KReg)                       // AVX512_BW
    2122             :   ASMJIT_INST_3x(kandw, Kandw, KReg, KReg, KReg)                       // AVX512_F
    2123             :   ASMJIT_INST_2x(kmovb, Kmovb, KReg, KReg)                             // AVX512_DQ
    2124             :   ASMJIT_INST_2x(kmovb, Kmovb, KReg, Mem)                              // AVX512_DQ
    2125             :   ASMJIT_INST_2x(kmovb, Kmovb, KReg, Gp)                               // AVX512_DQ
    2126             :   ASMJIT_INST_2x(kmovb, Kmovb, Mem, KReg)                              // AVX512_DQ
    2127             :   ASMJIT_INST_2x(kmovb, Kmovb, Gp, KReg)                               // AVX512_DQ
    2128             :   ASMJIT_INST_2x(kmovd, Kmovd, KReg, KReg)                             // AVX512_BW
    2129             :   ASMJIT_INST_2x(kmovd, Kmovd, KReg, Mem)                              // AVX512_BW
    2130             :   ASMJIT_INST_2x(kmovd, Kmovd, KReg, Gp)                               // AVX512_BW
    2131             :   ASMJIT_INST_2x(kmovd, Kmovd, Mem, KReg)                              // AVX512_BW
    2132             :   ASMJIT_INST_2x(kmovd, Kmovd, Gp, KReg)                               // AVX512_BW
    2133             :   ASMJIT_INST_2x(kmovq, Kmovq, KReg, KReg)                             // AVX512_BW
    2134             :   ASMJIT_INST_2x(kmovq, Kmovq, KReg, Mem)                              // AVX512_BW
    2135             :   ASMJIT_INST_2x(kmovq, Kmovq, KReg, Gp)                               // AVX512_BW
    2136             :   ASMJIT_INST_2x(kmovq, Kmovq, Mem, KReg)                              // AVX512_BW
    2137             :   ASMJIT_INST_2x(kmovq, Kmovq, Gp, KReg)                               // AVX512_BW
    2138             :   ASMJIT_INST_2x(kmovw, Kmovw, KReg, KReg)                             // AVX512_F
    2139             :   ASMJIT_INST_2x(kmovw, Kmovw, KReg, Mem)                              // AVX512_F
    2140             :   ASMJIT_INST_2x(kmovw, Kmovw, KReg, Gp)                               // AVX512_F
    2141             :   ASMJIT_INST_2x(kmovw, Kmovw, Mem, KReg)                              // AVX512_F
    2142             :   ASMJIT_INST_2x(kmovw, Kmovw, Gp, KReg)                               // AVX512_F
    2143             :   ASMJIT_INST_2x(knotb, Knotb, KReg, KReg)                             // AVX512_DQ
    2144             :   ASMJIT_INST_2x(knotd, Knotd, KReg, KReg)                             // AVX512_BW
    2145             :   ASMJIT_INST_2x(knotq, Knotq, KReg, KReg)                             // AVX512_BW
    2146             :   ASMJIT_INST_2x(knotw, Knotw, KReg, KReg)                             // AVX512_F
    2147             :   ASMJIT_INST_3x(korb, Korb, KReg, KReg, KReg)                         // AVX512_DQ
    2148             :   ASMJIT_INST_3x(kord, Kord, KReg, KReg, KReg)                         // AVX512_BW
    2149             :   ASMJIT_INST_3x(korq, Korq, KReg, KReg, KReg)                         // AVX512_BW
    2150             :   ASMJIT_INST_2x(kortestb, Kortestb, KReg, KReg)                       // AVX512_DQ
    2151             :   ASMJIT_INST_2x(kortestd, Kortestd, KReg, KReg)                       // AVX512_BW
    2152             :   ASMJIT_INST_2x(kortestq, Kortestq, KReg, KReg)                       // AVX512_BW
    2153             :   ASMJIT_INST_2x(kortestw, Kortestw, KReg, KReg)                       // AVX512_F
    2154             :   ASMJIT_INST_3x(korw, Korw, KReg, KReg, KReg)                         // AVX512_F
    2155             :   ASMJIT_INST_3x(kshiftlb, Kshiftlb, KReg, KReg, Imm)                  // AVX512_DQ
    2156             :   ASMJIT_INST_3x(kshiftld, Kshiftld, KReg, KReg, Imm)                  // AVX512_BW
    2157             :   ASMJIT_INST_3x(kshiftlq, Kshiftlq, KReg, KReg, Imm)                  // AVX512_BW
    2158             :   ASMJIT_INST_3x(kshiftlw, Kshiftlw, KReg, KReg, Imm)                  // AVX512_F
    2159             :   ASMJIT_INST_3x(kshiftrb, Kshiftrb, KReg, KReg, Imm)                  // AVX512_DQ
    2160             :   ASMJIT_INST_3x(kshiftrd, Kshiftrd, KReg, KReg, Imm)                  // AVX512_BW
    2161             :   ASMJIT_INST_3x(kshiftrq, Kshiftrq, KReg, KReg, Imm)                  // AVX512_BW
    2162             :   ASMJIT_INST_3x(kshiftrw, Kshiftrw, KReg, KReg, Imm)                  // AVX512_F
    2163             :   ASMJIT_INST_2x(ktestb, Ktestb, KReg, KReg)                           // AVX512_DQ
    2164             :   ASMJIT_INST_2x(ktestd, Ktestd, KReg, KReg)                           // AVX512_BW
    2165             :   ASMJIT_INST_2x(ktestq, Ktestq, KReg, KReg)                           // AVX512_BW
    2166             :   ASMJIT_INST_2x(ktestw, Ktestw, KReg, KReg)                           // AVX512_DQ
    2167             :   ASMJIT_INST_3x(kunpckbw, Kunpckbw, KReg, KReg, KReg)                 // AVX512_F
    2168             :   ASMJIT_INST_3x(kunpckdq, Kunpckdq, KReg, KReg, KReg)                 // AVX512_BW
    2169             :   ASMJIT_INST_3x(kunpckwd, Kunpckwd, KReg, KReg, KReg)                 // AVX512_BW
    2170             :   ASMJIT_INST_3x(kxnorb, Kxnorb, KReg, KReg, KReg)                     // AVX512_DQ
    2171             :   ASMJIT_INST_3x(kxnord, Kxnord, KReg, KReg, KReg)                     // AVX512_BW
    2172             :   ASMJIT_INST_3x(kxnorq, Kxnorq, KReg, KReg, KReg)                     // AVX512_BW
    2173             :   ASMJIT_INST_3x(kxnorw, Kxnorw, KReg, KReg, KReg)                     // AVX512_F
    2174             :   ASMJIT_INST_3x(kxorb, Kxorb, KReg, KReg, KReg)                       // AVX512_DQ
    2175             :   ASMJIT_INST_3x(kxord, Kxord, KReg, KReg, KReg)                       // AVX512_BW
    2176             :   ASMJIT_INST_3x(kxorq, Kxorq, KReg, KReg, KReg)                       // AVX512_BW
    2177             :   ASMJIT_INST_3x(kxorw, Kxorw, KReg, KReg, KReg)                       // AVX512_F
    2178             :   ASMJIT_INST_6x(v4fmaddps, V4fmaddps, Zmm, Zmm, Zmm, Zmm, Zmm, Mem)   // AVX512_4FMAPS{kz}
    2179             :   ASMJIT_INST_6x(v4fmaddss, V4fmaddss, Xmm, Xmm, Xmm, Xmm, Xmm, Mem)   // AVX512_4FMAPS{kz}
    2180             :   ASMJIT_INST_6x(v4fnmaddps, V4fnmaddps, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) // AVX512_4FMAPS{kz}
    2181             :   ASMJIT_INST_6x(v4fnmaddss, V4fnmaddss, Xmm, Xmm, Xmm, Xmm, Xmm, Mem) // AVX512_4FMAPS{kz}
    2182             :   ASMJIT_INST_3x(vaddpd, Vaddpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    2183             :   ASMJIT_INST_3x(vaddpd, Vaddpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    2184             :   ASMJIT_INST_3x(vaddps, Vaddps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    2185             :   ASMJIT_INST_3x(vaddps, Vaddps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    2186       24011 :   ASMJIT_INST_3x(vaddsd, Vaddsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2187             :   ASMJIT_INST_3x(vaddsd, Vaddsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2188             :   ASMJIT_INST_3x(vaddss, Vaddss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2189             :   ASMJIT_INST_3x(vaddss, Vaddss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2190             :   ASMJIT_INST_3x(vaddsubpd, Vaddsubpd, Vec, Vec, Vec)                  // AVX
    2191             :   ASMJIT_INST_3x(vaddsubpd, Vaddsubpd, Vec, Vec, Mem)                  // AVX
    2192             :   ASMJIT_INST_3x(vaddsubps, Vaddsubps, Vec, Vec, Vec)                  // AVX
    2193             :   ASMJIT_INST_3x(vaddsubps, Vaddsubps, Vec, Vec, Mem)                  // AVX
    2194             :   ASMJIT_INST_3x(vaesdec, Vaesdec, Vec, Vec, Vec)                      // AVX+AESNI VAES
    2195             :   ASMJIT_INST_3x(vaesdec, Vaesdec, Vec, Vec, Mem)                      // AVX+AESNI VAES
    2196             :   ASMJIT_INST_3x(vaesdeclast, Vaesdeclast, Vec, Vec, Vec)              // AVX+AESNI VAES
    2197             :   ASMJIT_INST_3x(vaesdeclast, Vaesdeclast, Vec, Vec, Mem)              // AVX+AESNI VAES
    2198             :   ASMJIT_INST_3x(vaesenc, Vaesenc, Vec, Vec, Vec)                      // AVX+AESNI VAES
    2199             :   ASMJIT_INST_3x(vaesenc, Vaesenc, Vec, Vec, Mem)                      // AVX+AESNI VAES
    2200             :   ASMJIT_INST_3x(vaesenclast, Vaesenclast, Vec, Vec, Vec)              // AVX+AESNI VAES
    2201             :   ASMJIT_INST_3x(vaesenclast, Vaesenclast, Vec, Vec, Mem)              // AVX+AESNI VAES
    2202             :   ASMJIT_INST_2x(vaesimc, Vaesimc, Xmm, Xmm)                           // AVX+AESNI
    2203             :   ASMJIT_INST_2x(vaesimc, Vaesimc, Xmm, Mem)                           // AVX+AESNI
    2204             :   ASMJIT_INST_3x(vaeskeygenassist, Vaeskeygenassist, Xmm, Xmm, Imm)    // AVX+AESNI
    2205             :   ASMJIT_INST_3x(vaeskeygenassist, Vaeskeygenassist, Xmm, Mem, Imm)    // AVX+AESNI
    2206             :   ASMJIT_INST_4x(valignd, Valignd, Vec, Vec, Vec, Imm)                 //      AVX512_F{kz|b32}
    2207             :   ASMJIT_INST_4x(valignd, Valignd, Vec, Vec, Mem, Imm)                 //      AVX512_F{kz|b32}
    2208             :   ASMJIT_INST_4x(valignq, Valignq, Vec, Vec, Vec, Imm)                 //      AVX512_F{kz|b64}
    2209             :   ASMJIT_INST_4x(valignq, Valignq, Vec, Vec, Mem, Imm)                 //      AVX512_F{kz|b64}
    2210             :   ASMJIT_INST_3x(vandnpd, Vandnpd, Vec, Vec, Vec)                      // AVX  AVX512_DQ{kz|b64}
    2211             :   ASMJIT_INST_3x(vandnpd, Vandnpd, Vec, Vec, Mem)                      // AVX  AVX512_DQ{kz|b64}
    2212             :   ASMJIT_INST_3x(vandnps, Vandnps, Vec, Vec, Vec)                      // AVX  AVX512_DQ{kz|b32}
    2213             :   ASMJIT_INST_3x(vandnps, Vandnps, Vec, Vec, Mem)                      // AVX  AVX512_DQ{kz|b32}
    2214          46 :   ASMJIT_INST_3x(vandpd, Vandpd, Vec, Vec, Vec)                        // AVX  AVX512_DQ{kz|b64}
    2215             :   ASMJIT_INST_3x(vandpd, Vandpd, Vec, Vec, Mem)                        // AVX  AVX512_DQ{kz|b64}
    2216        1813 :   ASMJIT_INST_3x(vandps, Vandps, Vec, Vec, Vec)                        // AVX  AVX512_DQ{kz|b32}
    2217             :   ASMJIT_INST_3x(vandps, Vandps, Vec, Vec, Mem)                        // AVX  AVX512_DQ{kz|b32}
    2218             :   ASMJIT_INST_3x(vblendmpd, Vblendmpd, Vec, Vec, Vec)                  //      AVX512_F{kz|b64}
    2219             :   ASMJIT_INST_3x(vblendmpd, Vblendmpd, Vec, Vec, Mem)                  //      AVX512_F{kz|b64}
    2220             :   ASMJIT_INST_3x(vblendmps, Vblendmps, Vec, Vec, Vec)                  //      AVX512_F{kz|b32}
    2221             :   ASMJIT_INST_3x(vblendmps, Vblendmps, Vec, Vec, Mem)                  //      AVX512_F{kz|b32}
    2222             :   ASMJIT_INST_4x(vblendpd, Vblendpd, Vec, Vec, Vec, Imm)               // AVX
    2223             :   ASMJIT_INST_4x(vblendpd, Vblendpd, Vec, Vec, Mem, Imm)               // AVX
    2224             :   ASMJIT_INST_4x(vblendps, Vblendps, Vec, Vec, Vec, Imm)               // AVX
    2225             :   ASMJIT_INST_4x(vblendps, Vblendps, Vec, Vec, Mem, Imm)               // AVX
    2226             :   ASMJIT_INST_4x(vblendvpd, Vblendvpd, Vec, Vec, Vec, Vec)             // AVX
    2227             :   ASMJIT_INST_4x(vblendvpd, Vblendvpd, Vec, Vec, Mem, Vec)             // AVX
    2228         157 :   ASMJIT_INST_4x(vblendvps, Vblendvps, Vec, Vec, Vec, Vec)             // AVX
    2229             :   ASMJIT_INST_4x(vblendvps, Vblendvps, Vec, Vec, Mem, Vec)             // AVX
    2230             :   ASMJIT_INST_2x(vbroadcastf128, Vbroadcastf128, Vec, Mem)             // AVX
    2231             :   ASMJIT_INST_2x(vbroadcastf32x2, Vbroadcastf32x2, Vec, Vec)           //      AVX512_DQ{kz}
    2232             :   ASMJIT_INST_2x(vbroadcastf32x2, Vbroadcastf32x2, Vec, Mem)           //      AVX512_DQ{kz}
    2233             :   ASMJIT_INST_2x(vbroadcastf32x4, Vbroadcastf32x4, Vec, Mem)           //      AVX512_F{kz}
    2234             :   ASMJIT_INST_2x(vbroadcastf32x8, Vbroadcastf32x8, Vec, Mem)           //      AVX512_DQ{kz}
    2235             :   ASMJIT_INST_2x(vbroadcastf64x2, Vbroadcastf64x2, Vec, Mem)           //      AVX512_DQ{kz}
    2236             :   ASMJIT_INST_2x(vbroadcastf64x4, Vbroadcastf64x4, Vec, Mem)           //      AVX512_F{kz}
    2237             :   ASMJIT_INST_2x(vbroadcasti128, Vbroadcasti128, Vec, Mem)             // AVX2
    2238             :   ASMJIT_INST_2x(vbroadcasti32x2, Vbroadcasti32x2, Vec, Vec)           //      AVX512_DQ{kz}
    2239             :   ASMJIT_INST_2x(vbroadcasti32x2, Vbroadcasti32x2, Vec, Mem)           //      AVX512_DQ{kz}
    2240             :   ASMJIT_INST_2x(vbroadcasti32x4, Vbroadcasti32x4, Vec, Mem)           //      AVX512_F{kz}
    2241             :   ASMJIT_INST_2x(vbroadcasti32x8, Vbroadcasti32x8, Vec, Mem)           //      AVX512_DQ{kz}
    2242             :   ASMJIT_INST_2x(vbroadcasti64x2, Vbroadcasti64x2, Vec, Vec)           //      AVX512_DQ{kz}
    2243             :   ASMJIT_INST_2x(vbroadcasti64x2, Vbroadcasti64x2, Vec, Mem)           //      AVX512_DQ{kz}
    2244             :   ASMJIT_INST_2x(vbroadcasti64x4, Vbroadcasti64x4, Vec, Vec)           //      AVX512_F{kz}
    2245             :   ASMJIT_INST_2x(vbroadcasti64x4, Vbroadcasti64x4, Vec, Mem)           //      AVX512_F{kz}
    2246             :   ASMJIT_INST_2x(vbroadcastsd, Vbroadcastsd, Vec, Mem)                 // AVX  AVX512_F{kz}
    2247             :   ASMJIT_INST_2x(vbroadcastsd, Vbroadcastsd, Vec, Xmm)                 // AVX2 AVX512_F{kz}
    2248             :   ASMJIT_INST_2x(vbroadcastss, Vbroadcastss, Vec, Mem)                 // AVX  AVX512_F{kz}
    2249             :   ASMJIT_INST_2x(vbroadcastss, Vbroadcastss, Vec, Xmm)                 // AVX2 AVX512_F{kz}
    2250             :   ASMJIT_INST_4x(vcmppd, Vcmppd, Vec, Vec, Vec, Imm)                   // AVX
    2251             :   ASMJIT_INST_4x(vcmppd, Vcmppd, Vec, Vec, Mem, Imm)                   // AVX
    2252             :   ASMJIT_INST_4x(vcmppd, Vcmppd, KReg, Vec, Vec, Imm)                  //      AVX512_F{kz|b64}
    2253             :   ASMJIT_INST_4x(vcmppd, Vcmppd, KReg, Vec, Mem, Imm)                  //      AVX512_F{kz|b64}
    2254             :   ASMJIT_INST_4x(vcmpps, Vcmpps, Vec, Vec, Vec, Imm)                   // AVX
    2255             :   ASMJIT_INST_4x(vcmpps, Vcmpps, Vec, Vec, Mem, Imm)                   // AVX
    2256             :   ASMJIT_INST_4x(vcmpps, Vcmpps, KReg, Vec, Vec, Imm)                  //      AVX512_F{kz|b32}
    2257             :   ASMJIT_INST_4x(vcmpps, Vcmpps, KReg, Vec, Mem, Imm)                  //      AVX512_F{kz|b32}
    2258        1970 :   ASMJIT_INST_4x(vcmpsd, Vcmpsd, Xmm, Xmm, Xmm, Imm)                   // AVX
    2259             :   ASMJIT_INST_4x(vcmpsd, Vcmpsd, Xmm, Xmm, Mem, Imm)                   // AVX
    2260             :   ASMJIT_INST_4x(vcmpsd, Vcmpsd, KReg, Xmm, Xmm, Imm)                  //      AVX512_F{kz|sae}
    2261             :   ASMJIT_INST_4x(vcmpsd, Vcmpsd, KReg, Xmm, Mem, Imm)                  //      AVX512_F{kz|sae}
    2262             :   ASMJIT_INST_4x(vcmpss, Vcmpss, Xmm, Xmm, Xmm, Imm)                   // AVX
    2263             :   ASMJIT_INST_4x(vcmpss, Vcmpss, Xmm, Xmm, Mem, Imm)                   // AVX
    2264             :   ASMJIT_INST_4x(vcmpss, Vcmpss, KReg, Xmm, Xmm, Imm)                  //      AVX512_F{kz|sae}
    2265             :   ASMJIT_INST_4x(vcmpss, Vcmpss, KReg, Xmm, Mem, Imm)                  //      AVX512_F{kz|sae}
    2266             :   ASMJIT_INST_2x(vcomisd, Vcomisd, Xmm, Xmm)                           // AVX  AVX512_F{sae}
    2267             :   ASMJIT_INST_2x(vcomisd, Vcomisd, Xmm, Mem)                           // AVX  AVX512_F{sae}
    2268             :   ASMJIT_INST_2x(vcomiss, Vcomiss, Xmm, Xmm)                           // AVX  AVX512_F{sae}
    2269             :   ASMJIT_INST_2x(vcomiss, Vcomiss, Xmm, Mem)                           // AVX  AVX512_F{sae}
    2270             :   ASMJIT_INST_2x(vcompresspd, Vcompresspd, Vec, Vec)                   //      AVX512_F{kz}
    2271             :   ASMJIT_INST_2x(vcompresspd, Vcompresspd, Mem, Vec)                   //      AVX512_F{kz}
    2272             :   ASMJIT_INST_2x(vcompressps, Vcompressps, Vec, Vec)                   //      AVX512_F{kz}
    2273             :   ASMJIT_INST_2x(vcompressps, Vcompressps, Mem, Vec)                   //      AVX512_F{kz}
    2274             :   ASMJIT_INST_2x(vcvtdq2pd, Vcvtdq2pd, Vec, Vec)                       // AVX  AVX512_F{kz|b32}
    2275             :   ASMJIT_INST_2x(vcvtdq2pd, Vcvtdq2pd, Vec, Mem)                       // AVX  AVX512_F{kz|b32}
    2276             :   ASMJIT_INST_2x(vcvtdq2ps, Vcvtdq2ps, Vec, Vec)                       // AVX  AVX512_F{kz|b32}
    2277             :   ASMJIT_INST_2x(vcvtdq2ps, Vcvtdq2ps, Vec, Mem)                       // AVX  AVX512_F{kz|b32}
    2278             :   ASMJIT_INST_3x(vcvtne2ps2bf16, Vcvtne2ps2bf16, Vec, Vec, Vec)        //      AVX512_BF16{kz|b32}
    2279             :   ASMJIT_INST_3x(vcvtne2ps2bf16, Vcvtne2ps2bf16, Vec, Vec, Mem)        //      AVX512_BF16{kz|b32}
    2280             :   ASMJIT_INST_2x(vcvtneps2bf16, Vcvtneps2bf16, Vec, Vec)               //      AVX512_BF16{kz|b32}
    2281             :   ASMJIT_INST_2x(vcvtneps2bf16, Vcvtneps2bf16, Vec, Mem)               //      AVX512_BF16{kz|b32}
    2282             :   ASMJIT_INST_2x(vcvtpd2dq, Vcvtpd2dq, Vec, Vec)                       // AVX  AVX512_F{kz|b64}
    2283             :   ASMJIT_INST_2x(vcvtpd2dq, Vcvtpd2dq, Vec, Mem)                       // AVX  AVX512_F{kz|b64}
    2284             :   ASMJIT_INST_2x(vcvtpd2ps, Vcvtpd2ps, Vec, Vec)                       // AVX  AVX512_F{kz|b64}
    2285             :   ASMJIT_INST_2x(vcvtpd2ps, Vcvtpd2ps, Vec, Mem)                       // AVX  AVX512_F{kz|b64}
    2286             :   ASMJIT_INST_2x(vcvtpd2qq, Vcvtpd2qq, Vec, Vec)                       //      AVX512_DQ{kz|b64}
    2287             :   ASMJIT_INST_2x(vcvtpd2qq, Vcvtpd2qq, Vec, Mem)                       //      AVX512_DQ{kz|b64}
    2288             :   ASMJIT_INST_2x(vcvtpd2udq, Vcvtpd2udq, Vec, Vec)                     //      AVX512_F{kz|b64}
    2289             :   ASMJIT_INST_2x(vcvtpd2udq, Vcvtpd2udq, Vec, Mem)                     //      AVX512_F{kz|b64}
    2290             :   ASMJIT_INST_2x(vcvtpd2uqq, Vcvtpd2uqq, Vec, Vec)                     //      AVX512_DQ{kz|b64}
    2291             :   ASMJIT_INST_2x(vcvtpd2uqq, Vcvtpd2uqq, Vec, Mem)                     //      AVX512_DQ{kz|b64}
    2292             :   ASMJIT_INST_2x(vcvtph2ps, Vcvtph2ps, Vec, Vec)                       // F16C AVX512_F{kz}
    2293             :   ASMJIT_INST_2x(vcvtph2ps, Vcvtph2ps, Vec, Mem)                       // F16C AVX512_F{kz}
    2294             :   ASMJIT_INST_2x(vcvtps2dq, Vcvtps2dq, Vec, Vec)                       // AVX  AVX512_F{kz|b32}
    2295             :   ASMJIT_INST_2x(vcvtps2dq, Vcvtps2dq, Vec, Mem)                       // AVX  AVX512_F{kz|b32}
    2296             :   ASMJIT_INST_2x(vcvtps2pd, Vcvtps2pd, Vec, Vec)                       // AVX  AVX512_F{kz|b32}
    2297             :   ASMJIT_INST_2x(vcvtps2pd, Vcvtps2pd, Vec, Mem)                       // AVX  AVX512_F{kz|b32}
    2298             :   ASMJIT_INST_3x(vcvtps2ph, Vcvtps2ph, Vec, Vec, Imm)                  // F16C AVX512_F{kz}
    2299             :   ASMJIT_INST_3x(vcvtps2ph, Vcvtps2ph, Mem, Vec, Imm)                  // F16C AVX512_F{kz}
    2300             :   ASMJIT_INST_2x(vcvtps2qq, Vcvtps2qq, Vec, Vec)                       //      AVX512_DQ{kz|b32}
    2301             :   ASMJIT_INST_2x(vcvtps2qq, Vcvtps2qq, Vec, Mem)                       //      AVX512_DQ{kz|b32}
    2302             :   ASMJIT_INST_2x(vcvtps2udq, Vcvtps2udq, Vec, Vec)                     //      AVX512_F{kz|b32}
    2303             :   ASMJIT_INST_2x(vcvtps2udq, Vcvtps2udq, Vec, Mem)                     //      AVX512_F{kz|b32}
    2304             :   ASMJIT_INST_2x(vcvtps2uqq, Vcvtps2uqq, Vec, Vec)                     //      AVX512_DQ{kz|b32}
    2305             :   ASMJIT_INST_2x(vcvtps2uqq, Vcvtps2uqq, Vec, Mem)                     //      AVX512_DQ{kz|b32}
    2306             :   ASMJIT_INST_2x(vcvtqq2pd, Vcvtqq2pd, Vec, Vec)                       //      AVX512_DQ{kz|b64}
    2307             :   ASMJIT_INST_2x(vcvtqq2pd, Vcvtqq2pd, Vec, Mem)                       //      AVX512_DQ{kz|b64}
    2308             :   ASMJIT_INST_2x(vcvtqq2ps, Vcvtqq2ps, Vec, Vec)                       //      AVX512_DQ{kz|b64}
    2309             :   ASMJIT_INST_2x(vcvtqq2ps, Vcvtqq2ps, Vec, Mem)                       //      AVX512_DQ{kz|b64}
    2310             :   ASMJIT_INST_2x(vcvtsd2si, Vcvtsd2si, Gp, Xmm)                        // AVX  AVX512_F{er}
    2311             :   ASMJIT_INST_2x(vcvtsd2si, Vcvtsd2si, Gp, Mem)                        // AVX  AVX512_F{er}
    2312             :   ASMJIT_INST_3x(vcvtsd2ss, Vcvtsd2ss, Xmm, Xmm, Xmm)                  // AVX  AVX512_F{kz|er}
    2313             :   ASMJIT_INST_3x(vcvtsd2ss, Vcvtsd2ss, Xmm, Xmm, Mem)                  // AVX  AVX512_F{kz|er}
    2314             :   ASMJIT_INST_2x(vcvtsd2usi, Vcvtsd2usi, Gp, Xmm)                      //      AVX512_F{er}
    2315             :   ASMJIT_INST_2x(vcvtsd2usi, Vcvtsd2usi, Gp, Mem)                      //      AVX512_F{er}
    2316             :   ASMJIT_INST_3x(vcvtsi2sd, Vcvtsi2sd, Xmm, Xmm, Gp)                   // AVX  AVX512_F{er}
    2317             :   ASMJIT_INST_3x(vcvtsi2sd, Vcvtsi2sd, Xmm, Xmm, Mem)                  // AVX  AVX512_F{er}
    2318             :   ASMJIT_INST_3x(vcvtsi2ss, Vcvtsi2ss, Xmm, Xmm, Gp)                   // AVX  AVX512_F{er}
    2319             :   ASMJIT_INST_3x(vcvtsi2ss, Vcvtsi2ss, Xmm, Xmm, Mem)                  // AVX  AVX512_F{er}
    2320             :   ASMJIT_INST_3x(vcvtss2sd, Vcvtss2sd, Xmm, Xmm, Xmm)                  // AVX  AVX512_F{kz|sae}
    2321             :   ASMJIT_INST_3x(vcvtss2sd, Vcvtss2sd, Xmm, Xmm, Mem)                  // AVX  AVX512_F{kz|sae}
    2322             :   ASMJIT_INST_2x(vcvtss2si, Vcvtss2si, Gp, Xmm)                        // AVX  AVX512_F{er}
    2323             :   ASMJIT_INST_2x(vcvtss2si, Vcvtss2si, Gp, Mem)                        // AVX  AVX512_F{er}
    2324             :   ASMJIT_INST_2x(vcvtss2usi, Vcvtss2usi, Gp, Xmm)                      //      AVX512_F{er}
    2325             :   ASMJIT_INST_2x(vcvtss2usi, Vcvtss2usi, Gp, Mem)                      //      AVX512_F{er}
    2326             :   ASMJIT_INST_2x(vcvttpd2dq, Vcvttpd2dq, Vec, Vec)                     // AVX  AVX512_F{kz|b64}
    2327             :   ASMJIT_INST_2x(vcvttpd2dq, Vcvttpd2dq, Vec, Mem)                     // AVX  AVX512_F{kz|b64}
    2328             :   ASMJIT_INST_2x(vcvttpd2qq, Vcvttpd2qq, Vec, Vec)                     //      AVX512_F{kz|b64}
    2329             :   ASMJIT_INST_2x(vcvttpd2qq, Vcvttpd2qq, Vec, Mem)                     //      AVX512_F{kz|b64}
    2330             :   ASMJIT_INST_2x(vcvttpd2udq, Vcvttpd2udq, Vec, Vec)                   //      AVX512_F{kz|b64}
    2331             :   ASMJIT_INST_2x(vcvttpd2udq, Vcvttpd2udq, Vec, Mem)                   //      AVX512_F{kz|b64}
    2332             :   ASMJIT_INST_2x(vcvttpd2uqq, Vcvttpd2uqq, Vec, Vec)                   //      AVX512_DQ{kz|b64}
    2333             :   ASMJIT_INST_2x(vcvttpd2uqq, Vcvttpd2uqq, Vec, Mem)                   //      AVX512_DQ{kz|b64}
    2334             :   ASMJIT_INST_2x(vcvttps2dq, Vcvttps2dq, Vec, Vec)                     // AVX  AVX512_F{kz|b32}
    2335             :   ASMJIT_INST_2x(vcvttps2dq, Vcvttps2dq, Vec, Mem)                     // AVX  AVX512_F{kz|b32}
    2336             :   ASMJIT_INST_2x(vcvttps2qq, Vcvttps2qq, Vec, Vec)                     //      AVX512_DQ{kz|b32}
    2337             :   ASMJIT_INST_2x(vcvttps2qq, Vcvttps2qq, Vec, Mem)                     //      AVX512_DQ{kz|b32}
    2338             :   ASMJIT_INST_2x(vcvttps2udq, Vcvttps2udq, Vec, Vec)                   //      AVX512_F{kz|b32}
    2339             :   ASMJIT_INST_2x(vcvttps2udq, Vcvttps2udq, Vec, Mem)                   //      AVX512_F{kz|b32}
    2340             :   ASMJIT_INST_2x(vcvttps2uqq, Vcvttps2uqq, Vec, Vec)                   //      AVX512_DQ{kz|b32}
    2341             :   ASMJIT_INST_2x(vcvttps2uqq, Vcvttps2uqq, Vec, Mem)                   //      AVX512_DQ{kz|b32}
    2342             :   ASMJIT_INST_2x(vcvttsd2si, Vcvttsd2si, Gp, Xmm)                      // AVX  AVX512_F{sae}
    2343             :   ASMJIT_INST_2x(vcvttsd2si, Vcvttsd2si, Gp, Mem)                      // AVX  AVX512_F{sae}
    2344             :   ASMJIT_INST_2x(vcvttsd2usi, Vcvttsd2usi, Gp, Xmm)                    //      AVX512_F{sae}
    2345             :   ASMJIT_INST_2x(vcvttsd2usi, Vcvttsd2usi, Gp, Mem)                    //      AVX512_F{sae}
    2346             :   ASMJIT_INST_2x(vcvttss2si, Vcvttss2si, Gp, Xmm)                      // AVX  AVX512_F{sae}
    2347             :   ASMJIT_INST_2x(vcvttss2si, Vcvttss2si, Gp, Mem)                      // AVX  AVX512_F{sae}
    2348             :   ASMJIT_INST_2x(vcvttss2usi, Vcvttss2usi, Gp, Xmm)                    //      AVX512_F{sae}
    2349             :   ASMJIT_INST_2x(vcvttss2usi, Vcvttss2usi, Gp, Mem)                    //      AVX512_F{sae}
    2350             :   ASMJIT_INST_2x(vcvtudq2pd, Vcvtudq2pd, Vec, Vec)                     //      AVX512_F{kz|b32}
    2351             :   ASMJIT_INST_2x(vcvtudq2pd, Vcvtudq2pd, Vec, Mem)                     //      AVX512_F{kz|b32}
    2352             :   ASMJIT_INST_2x(vcvtudq2ps, Vcvtudq2ps, Vec, Vec)                     //      AVX512_F{kz|b32}
    2353             :   ASMJIT_INST_2x(vcvtudq2ps, Vcvtudq2ps, Vec, Mem)                     //      AVX512_F{kz|b32}
    2354             :   ASMJIT_INST_2x(vcvtuqq2pd, Vcvtuqq2pd, Vec, Vec)                     //      AVX512_DQ{kz|b64}
    2355             :   ASMJIT_INST_2x(vcvtuqq2pd, Vcvtuqq2pd, Vec, Mem)                     //      AVX512_DQ{kz|b64}
    2356             :   ASMJIT_INST_2x(vcvtuqq2ps, Vcvtuqq2ps, Vec, Vec)                     //      AVX512_DQ{kz|b64}
    2357             :   ASMJIT_INST_2x(vcvtuqq2ps, Vcvtuqq2ps, Vec, Mem)                     //      AVX512_DQ{kz|b64}
    2358             :   ASMJIT_INST_3x(vcvtusi2sd, Vcvtusi2sd, Xmm, Xmm, Gp)                 //      AVX512_F{er}
    2359             :   ASMJIT_INST_3x(vcvtusi2sd, Vcvtusi2sd, Xmm, Xmm, Mem)                //      AVX512_F{er}
    2360             :   ASMJIT_INST_3x(vcvtusi2ss, Vcvtusi2ss, Xmm, Xmm, Gp)                 //      AVX512_F{er}
    2361             :   ASMJIT_INST_3x(vcvtusi2ss, Vcvtusi2ss, Xmm, Xmm, Mem)                //      AVX512_F{er}
    2362             :   ASMJIT_INST_4x(vdbpsadbw, Vdbpsadbw, Vec, Vec, Vec, Imm)             //      AVX512_BW{kz}
    2363             :   ASMJIT_INST_4x(vdbpsadbw, Vdbpsadbw, Vec, Vec, Mem, Imm)             //      AVX512_BW{kz}
    2364             :   ASMJIT_INST_3x(vdivpd, Vdivpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    2365             :   ASMJIT_INST_3x(vdivpd, Vdivpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    2366             :   ASMJIT_INST_3x(vdivps, Vdivps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    2367             :   ASMJIT_INST_3x(vdivps, Vdivps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    2368        9871 :   ASMJIT_INST_3x(vdivsd, Vdivsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2369             :   ASMJIT_INST_3x(vdivsd, Vdivsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2370             :   ASMJIT_INST_3x(vdivss, Vdivss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2371             :   ASMJIT_INST_3x(vdivss, Vdivss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2372             :   ASMJIT_INST_3x(vdpbf16ps, Vdpbf16ps, Vec, Vec, Vec)                  //      AVX512_BF16{kz|b32}
    2373             :   ASMJIT_INST_3x(vdpbf16ps, Vdpbf16ps, Vec, Vec, Mem)                  //      AVX512_BF16{kz|b32}
    2374             :   ASMJIT_INST_4x(vdppd, Vdppd, Vec, Vec, Vec, Imm)                     // AVX
    2375             :   ASMJIT_INST_4x(vdppd, Vdppd, Vec, Vec, Mem, Imm)                     // AVX
    2376             :   ASMJIT_INST_4x(vdpps, Vdpps, Vec, Vec, Vec, Imm)                     // AVX
    2377             :   ASMJIT_INST_4x(vdpps, Vdpps, Vec, Vec, Mem, Imm)                     // AVX
    2378             :   ASMJIT_INST_2x(vexp2pd, Vexp2pd, Vec, Vec)                           //      AVX512_ER{kz|sae|b64}
    2379             :   ASMJIT_INST_2x(vexp2pd, Vexp2pd, Vec, Mem)                           //      AVX512_ER{kz|sae|b64}
    2380             :   ASMJIT_INST_2x(vexp2ps, Vexp2ps, Vec, Vec)                           //      AVX512_ER{kz|sae|b32}
    2381             :   ASMJIT_INST_2x(vexp2ps, Vexp2ps, Vec, Mem)                           //      AVX512_ER{kz|sae|b32}
    2382             :   ASMJIT_INST_2x(vexpandpd, Vexpandpd, Vec, Vec)                       //      AVX512_F{kz}
    2383             :   ASMJIT_INST_2x(vexpandpd, Vexpandpd, Vec, Mem)                       //      AVX512_F{kz}
    2384             :   ASMJIT_INST_2x(vexpandps, Vexpandps, Vec, Vec)                       //      AVX512_F{kz}
    2385             :   ASMJIT_INST_2x(vexpandps, Vexpandps, Vec, Mem)                       //      AVX512_F{kz}
    2386             :   ASMJIT_INST_3x(vextractf128, Vextractf128, Vec, Vec, Imm)            // AVX
    2387             :   ASMJIT_INST_3x(vextractf128, Vextractf128, Mem, Vec, Imm)            // AVX
    2388             :   ASMJIT_INST_3x(vextractf32x4, Vextractf32x4, Vec, Vec, Imm)          //      AVX512_F{kz}
    2389             :   ASMJIT_INST_3x(vextractf32x4, Vextractf32x4, Mem, Vec, Imm)          //      AVX512_F{kz}
    2390             :   ASMJIT_INST_3x(vextractf32x8, Vextractf32x8, Vec, Vec, Imm)          //      AVX512_DQ{kz}
    2391             :   ASMJIT_INST_3x(vextractf32x8, Vextractf32x8, Mem, Vec, Imm)          //      AVX512_DQ{kz}
    2392             :   ASMJIT_INST_3x(vextractf64x2, Vextractf64x2, Vec, Vec, Imm)          //      AVX512_DQ{kz}
    2393             :   ASMJIT_INST_3x(vextractf64x2, Vextractf64x2, Mem, Vec, Imm)          //      AVX512_DQ{kz}
    2394             :   ASMJIT_INST_3x(vextractf64x4, Vextractf64x4, Vec, Vec, Imm)          //      AVX512_F{kz}
    2395             :   ASMJIT_INST_3x(vextractf64x4, Vextractf64x4, Mem, Vec, Imm)          //      AVX512_F{kz}
    2396             :   ASMJIT_INST_3x(vextracti128, Vextracti128, Vec, Vec, Imm)            // AVX2
    2397             :   ASMJIT_INST_3x(vextracti128, Vextracti128, Mem, Vec, Imm)            // AVX2
    2398             :   ASMJIT_INST_3x(vextracti32x4, Vextracti32x4, Vec, Vec, Imm)          //      AVX512_F{kz}
    2399             :   ASMJIT_INST_3x(vextracti32x4, Vextracti32x4, Mem, Vec, Imm)          //      AVX512_F{kz}
    2400             :   ASMJIT_INST_3x(vextracti32x8, Vextracti32x8, Vec, Vec, Imm)          //      AVX512_DQ{kz}
    2401             :   ASMJIT_INST_3x(vextracti32x8, Vextracti32x8, Mem, Vec, Imm)          //      AVX512_DQ{kz}
    2402             :   ASMJIT_INST_3x(vextracti64x2, Vextracti64x2, Vec, Vec, Imm)          //      AVX512_DQ{kz}
    2403             :   ASMJIT_INST_3x(vextracti64x2, Vextracti64x2, Mem, Vec, Imm)          //      AVX512_DQ{kz}
    2404             :   ASMJIT_INST_3x(vextracti64x4, Vextracti64x4, Vec, Vec, Imm)          //      AVX512_F{kz}
    2405             :   ASMJIT_INST_3x(vextracti64x4, Vextracti64x4, Mem, Vec, Imm)          //      AVX512_F{kz}
    2406             :   ASMJIT_INST_3x(vextractps, Vextractps, Gp, Xmm, Imm)                 // AVX  AVX512_F
    2407             :   ASMJIT_INST_3x(vextractps, Vextractps, Mem, Xmm, Imm)                // AVX  AVX512_F
    2408             :   ASMJIT_INST_4x(vfixupimmpd, Vfixupimmpd, Vec, Vec, Vec, Imm)         //      AVX512_F{kz|b64}
    2409             :   ASMJIT_INST_4x(vfixupimmpd, Vfixupimmpd, Vec, Vec, Mem, Imm)         //      AVX512_F{kz|b64}
    2410             :   ASMJIT_INST_4x(vfixupimmps, Vfixupimmps, Vec, Vec, Vec, Imm)         //      AVX512_F{kz|b32}
    2411             :   ASMJIT_INST_4x(vfixupimmps, Vfixupimmps, Vec, Vec, Mem, Imm)         //      AVX512_F{kz|b32}
    2412             :   ASMJIT_INST_4x(vfixupimmsd, Vfixupimmsd, Xmm, Xmm, Xmm, Imm)         //      AVX512_F{kz|sae}
    2413             :   ASMJIT_INST_4x(vfixupimmsd, Vfixupimmsd, Xmm, Xmm, Mem, Imm)         //      AVX512_F{kz|sae}
    2414             :   ASMJIT_INST_4x(vfixupimmss, Vfixupimmss, Xmm, Xmm, Xmm, Imm)         //      AVX512_F{kz|sae}
    2415             :   ASMJIT_INST_4x(vfixupimmss, Vfixupimmss, Xmm, Xmm, Mem, Imm)         //      AVX512_F{kz|sae}
    2416             :   ASMJIT_INST_3x(vfmadd132pd, Vfmadd132pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2417             :   ASMJIT_INST_3x(vfmadd132pd, Vfmadd132pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2418             :   ASMJIT_INST_3x(vfmadd132ps, Vfmadd132ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2419             :   ASMJIT_INST_3x(vfmadd132ps, Vfmadd132ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2420             :   ASMJIT_INST_3x(vfmadd132sd, Vfmadd132sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2421             :   ASMJIT_INST_3x(vfmadd132sd, Vfmadd132sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2422             :   ASMJIT_INST_3x(vfmadd132ss, Vfmadd132ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2423             :   ASMJIT_INST_3x(vfmadd132ss, Vfmadd132ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2424             :   ASMJIT_INST_3x(vfmadd213pd, Vfmadd213pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2425             :   ASMJIT_INST_3x(vfmadd213pd, Vfmadd213pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2426             :   ASMJIT_INST_3x(vfmadd213ps, Vfmadd213ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2427             :   ASMJIT_INST_3x(vfmadd213ps, Vfmadd213ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2428             :   ASMJIT_INST_3x(vfmadd213sd, Vfmadd213sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2429             :   ASMJIT_INST_3x(vfmadd213sd, Vfmadd213sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2430             :   ASMJIT_INST_3x(vfmadd213ss, Vfmadd213ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2431             :   ASMJIT_INST_3x(vfmadd213ss, Vfmadd213ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2432             :   ASMJIT_INST_3x(vfmadd231pd, Vfmadd231pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2433             :   ASMJIT_INST_3x(vfmadd231pd, Vfmadd231pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2434             :   ASMJIT_INST_3x(vfmadd231ps, Vfmadd231ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2435             :   ASMJIT_INST_3x(vfmadd231ps, Vfmadd231ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2436             :   ASMJIT_INST_3x(vfmadd231sd, Vfmadd231sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2437             :   ASMJIT_INST_3x(vfmadd231sd, Vfmadd231sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2438             :   ASMJIT_INST_3x(vfmadd231ss, Vfmadd231ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2439             :   ASMJIT_INST_3x(vfmadd231ss, Vfmadd231ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2440             :   ASMJIT_INST_3x(vfmaddsub132pd, Vfmaddsub132pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2441             :   ASMJIT_INST_3x(vfmaddsub132pd, Vfmaddsub132pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2442             :   ASMJIT_INST_3x(vfmaddsub132ps, Vfmaddsub132ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2443             :   ASMJIT_INST_3x(vfmaddsub132ps, Vfmaddsub132ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2444             :   ASMJIT_INST_3x(vfmaddsub213pd, Vfmaddsub213pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2445             :   ASMJIT_INST_3x(vfmaddsub213pd, Vfmaddsub213pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2446             :   ASMJIT_INST_3x(vfmaddsub213ps, Vfmaddsub213ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2447             :   ASMJIT_INST_3x(vfmaddsub213ps, Vfmaddsub213ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2448             :   ASMJIT_INST_3x(vfmaddsub231pd, Vfmaddsub231pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2449             :   ASMJIT_INST_3x(vfmaddsub231pd, Vfmaddsub231pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2450             :   ASMJIT_INST_3x(vfmaddsub231ps, Vfmaddsub231ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2451             :   ASMJIT_INST_3x(vfmaddsub231ps, Vfmaddsub231ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2452             :   ASMJIT_INST_3x(vfmsub132pd, Vfmsub132pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2453             :   ASMJIT_INST_3x(vfmsub132pd, Vfmsub132pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2454             :   ASMJIT_INST_3x(vfmsub132ps, Vfmsub132ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2455             :   ASMJIT_INST_3x(vfmsub132ps, Vfmsub132ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2456             :   ASMJIT_INST_3x(vfmsub132sd, Vfmsub132sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2457             :   ASMJIT_INST_3x(vfmsub132sd, Vfmsub132sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2458             :   ASMJIT_INST_3x(vfmsub132ss, Vfmsub132ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2459             :   ASMJIT_INST_3x(vfmsub132ss, Vfmsub132ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2460             :   ASMJIT_INST_3x(vfmsub213pd, Vfmsub213pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2461             :   ASMJIT_INST_3x(vfmsub213pd, Vfmsub213pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2462             :   ASMJIT_INST_3x(vfmsub213ps, Vfmsub213ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2463             :   ASMJIT_INST_3x(vfmsub213ps, Vfmsub213ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2464             :   ASMJIT_INST_3x(vfmsub213sd, Vfmsub213sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2465             :   ASMJIT_INST_3x(vfmsub213sd, Vfmsub213sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2466             :   ASMJIT_INST_3x(vfmsub213ss, Vfmsub213ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2467             :   ASMJIT_INST_3x(vfmsub213ss, Vfmsub213ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2468             :   ASMJIT_INST_3x(vfmsub231pd, Vfmsub231pd, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b64}
    2469             :   ASMJIT_INST_3x(vfmsub231pd, Vfmsub231pd, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b64}
    2470             :   ASMJIT_INST_3x(vfmsub231ps, Vfmsub231ps, Vec, Vec, Vec)              // FMA  AVX512_F{kz|b32}
    2471             :   ASMJIT_INST_3x(vfmsub231ps, Vfmsub231ps, Vec, Vec, Mem)              // FMA  AVX512_F{kz|b32}
    2472             :   ASMJIT_INST_3x(vfmsub231sd, Vfmsub231sd, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2473             :   ASMJIT_INST_3x(vfmsub231sd, Vfmsub231sd, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2474             :   ASMJIT_INST_3x(vfmsub231ss, Vfmsub231ss, Xmm, Xmm, Xmm)              // FMA  AVX512_F{kz|er}
    2475             :   ASMJIT_INST_3x(vfmsub231ss, Vfmsub231ss, Xmm, Xmm, Mem)              // FMA  AVX512_F{kz|er}
    2476             :   ASMJIT_INST_3x(vfmsubadd132pd, Vfmsubadd132pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2477             :   ASMJIT_INST_3x(vfmsubadd132pd, Vfmsubadd132pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2478             :   ASMJIT_INST_3x(vfmsubadd132ps, Vfmsubadd132ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2479             :   ASMJIT_INST_3x(vfmsubadd132ps, Vfmsubadd132ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2480             :   ASMJIT_INST_3x(vfmsubadd213pd, Vfmsubadd213pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2481             :   ASMJIT_INST_3x(vfmsubadd213pd, Vfmsubadd213pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2482             :   ASMJIT_INST_3x(vfmsubadd213ps, Vfmsubadd213ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2483             :   ASMJIT_INST_3x(vfmsubadd213ps, Vfmsubadd213ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2484             :   ASMJIT_INST_3x(vfmsubadd231pd, Vfmsubadd231pd, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b64}
    2485             :   ASMJIT_INST_3x(vfmsubadd231pd, Vfmsubadd231pd, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b64}
    2486             :   ASMJIT_INST_3x(vfmsubadd231ps, Vfmsubadd231ps, Vec, Vec, Vec)        // FMA  AVX512_F{kz|b32}
    2487             :   ASMJIT_INST_3x(vfmsubadd231ps, Vfmsubadd231ps, Vec, Vec, Mem)        // FMA  AVX512_F{kz|b32}
    2488             :   ASMJIT_INST_3x(vfnmadd132pd, Vfnmadd132pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2489             :   ASMJIT_INST_3x(vfnmadd132pd, Vfnmadd132pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2490             :   ASMJIT_INST_3x(vfnmadd132ps, Vfnmadd132ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2491             :   ASMJIT_INST_3x(vfnmadd132ps, Vfnmadd132ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2492             :   ASMJIT_INST_3x(vfnmadd132sd, Vfnmadd132sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2493             :   ASMJIT_INST_3x(vfnmadd132sd, Vfnmadd132sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2494             :   ASMJIT_INST_3x(vfnmadd132ss, Vfnmadd132ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2495             :   ASMJIT_INST_3x(vfnmadd132ss, Vfnmadd132ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2496             :   ASMJIT_INST_3x(vfnmadd213pd, Vfnmadd213pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2497             :   ASMJIT_INST_3x(vfnmadd213pd, Vfnmadd213pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2498             :   ASMJIT_INST_3x(vfnmadd213ps, Vfnmadd213ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2499             :   ASMJIT_INST_3x(vfnmadd213ps, Vfnmadd213ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2500             :   ASMJIT_INST_3x(vfnmadd213sd, Vfnmadd213sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2501             :   ASMJIT_INST_3x(vfnmadd213sd, Vfnmadd213sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2502             :   ASMJIT_INST_3x(vfnmadd213ss, Vfnmadd213ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2503             :   ASMJIT_INST_3x(vfnmadd213ss, Vfnmadd213ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2504             :   ASMJIT_INST_3x(vfnmadd231pd, Vfnmadd231pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2505             :   ASMJIT_INST_3x(vfnmadd231pd, Vfnmadd231pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2506             :   ASMJIT_INST_3x(vfnmadd231ps, Vfnmadd231ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2507             :   ASMJIT_INST_3x(vfnmadd231ps, Vfnmadd231ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2508             :   ASMJIT_INST_3x(vfnmadd231sd, Vfnmadd231sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2509             :   ASMJIT_INST_3x(vfnmadd231sd, Vfnmadd231sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2510             :   ASMJIT_INST_3x(vfnmadd231ss, Vfnmadd231ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2511             :   ASMJIT_INST_3x(vfnmadd231ss, Vfnmadd231ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2512             :   ASMJIT_INST_3x(vfnmsub132pd, Vfnmsub132pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2513             :   ASMJIT_INST_3x(vfnmsub132pd, Vfnmsub132pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2514             :   ASMJIT_INST_3x(vfnmsub132ps, Vfnmsub132ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2515             :   ASMJIT_INST_3x(vfnmsub132ps, Vfnmsub132ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2516             :   ASMJIT_INST_3x(vfnmsub132sd, Vfnmsub132sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2517             :   ASMJIT_INST_3x(vfnmsub132sd, Vfnmsub132sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2518             :   ASMJIT_INST_3x(vfnmsub132ss, Vfnmsub132ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2519             :   ASMJIT_INST_3x(vfnmsub132ss, Vfnmsub132ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2520             :   ASMJIT_INST_3x(vfnmsub213pd, Vfnmsub213pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2521             :   ASMJIT_INST_3x(vfnmsub213pd, Vfnmsub213pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2522             :   ASMJIT_INST_3x(vfnmsub213ps, Vfnmsub213ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2523             :   ASMJIT_INST_3x(vfnmsub213ps, Vfnmsub213ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2524             :   ASMJIT_INST_3x(vfnmsub213sd, Vfnmsub213sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2525             :   ASMJIT_INST_3x(vfnmsub213sd, Vfnmsub213sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2526             :   ASMJIT_INST_3x(vfnmsub213ss, Vfnmsub213ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2527             :   ASMJIT_INST_3x(vfnmsub213ss, Vfnmsub213ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2528             :   ASMJIT_INST_3x(vfnmsub231pd, Vfnmsub231pd, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b64}
    2529             :   ASMJIT_INST_3x(vfnmsub231pd, Vfnmsub231pd, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b64}
    2530             :   ASMJIT_INST_3x(vfnmsub231ps, Vfnmsub231ps, Vec, Vec, Vec)            // FMA  AVX512_F{kz|b32}
    2531             :   ASMJIT_INST_3x(vfnmsub231ps, Vfnmsub231ps, Vec, Vec, Mem)            // FMA  AVX512_F{kz|b32}
    2532             :   ASMJIT_INST_3x(vfnmsub231sd, Vfnmsub231sd, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2533             :   ASMJIT_INST_3x(vfnmsub231sd, Vfnmsub231sd, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2534             :   ASMJIT_INST_3x(vfnmsub231ss, Vfnmsub231ss, Xmm, Xmm, Xmm)            // FMA  AVX512_F{kz|er}
    2535             :   ASMJIT_INST_3x(vfnmsub231ss, Vfnmsub231ss, Xmm, Xmm, Mem)            // FMA  AVX512_F{kz|er}
    2536             :   ASMJIT_INST_3x(vfpclasspd, Vfpclasspd, KReg, Vec, Imm)               //      AVX512_DQ{k|b64}
    2537             :   ASMJIT_INST_3x(vfpclasspd, Vfpclasspd, KReg, Mem, Imm)               //      AVX512_DQ{k|b64}
    2538             :   ASMJIT_INST_3x(vfpclassps, Vfpclassps, KReg, Vec, Imm)               //      AVX512_DQ{k|b32}
    2539             :   ASMJIT_INST_3x(vfpclassps, Vfpclassps, KReg, Mem, Imm)               //      AVX512_DQ{k|b32}
    2540             :   ASMJIT_INST_3x(vfpclasssd, Vfpclasssd, KReg, Xmm, Imm)               //      AVX512_DQ{k}
    2541             :   ASMJIT_INST_3x(vfpclasssd, Vfpclasssd, KReg, Mem, Imm)               //      AVX512_DQ{k}
    2542             :   ASMJIT_INST_3x(vfpclassss, Vfpclassss, KReg, Xmm, Imm)               //      AVX512_DQ{k}
    2543             :   ASMJIT_INST_3x(vfpclassss, Vfpclassss, KReg, Mem, Imm)               //      AVX512_DQ{k}
    2544             :   ASMJIT_INST_2x(vgatherdpd, Vgatherdpd, Vec, Mem)                     //      AVX512_F{k}
    2545             :   ASMJIT_INST_3x(vgatherdpd, Vgatherdpd, Vec, Mem, Vec)                // AVX2
    2546             :   ASMJIT_INST_2x(vgatherdps, Vgatherdps, Vec, Mem)                     //      AVX512_F{k}
    2547             :   ASMJIT_INST_3x(vgatherdps, Vgatherdps, Vec, Mem, Vec)                // AVX2
    2548             :   ASMJIT_INST_1x(vgatherpf0dpd, Vgatherpf0dpd, Mem)                    //      AVX512_PF{k}
    2549             :   ASMJIT_INST_1x(vgatherpf0dps, Vgatherpf0dps, Mem)                    //      AVX512_PF{k}
    2550             :   ASMJIT_INST_1x(vgatherpf0qpd, Vgatherpf0qpd, Mem)                    //      AVX512_PF{k}
    2551             :   ASMJIT_INST_1x(vgatherpf0qps, Vgatherpf0qps, Mem)                    //      AVX512_PF{k}
    2552             :   ASMJIT_INST_1x(vgatherpf1dpd, Vgatherpf1dpd, Mem)                    //      AVX512_PF{k}
    2553             :   ASMJIT_INST_1x(vgatherpf1dps, Vgatherpf1dps, Mem)                    //      AVX512_PF{k}
    2554             :   ASMJIT_INST_1x(vgatherpf1qpd, Vgatherpf1qpd, Mem)                    //      AVX512_PF{k}
    2555             :   ASMJIT_INST_1x(vgatherpf1qps, Vgatherpf1qps, Mem)                    //      AVX512_PF{k}
    2556             :   ASMJIT_INST_2x(vgatherqpd, Vgatherqpd, Vec, Mem)                     //      AVX512_F{k}
    2557             :   ASMJIT_INST_3x(vgatherqpd, Vgatherqpd, Vec, Mem, Vec)                // AVX2
    2558             :   ASMJIT_INST_2x(vgatherqps, Vgatherqps, Vec, Mem)                     //      AVX512_F{k}
    2559             :   ASMJIT_INST_3x(vgatherqps, Vgatherqps, Vec, Mem, Vec)                // AVX2
    2560             :   ASMJIT_INST_2x(vgetexppd, Vgetexppd, Vec, Vec)                       //      AVX512_F{kz|b64}
    2561             :   ASMJIT_INST_2x(vgetexppd, Vgetexppd, Vec, Mem)                       //      AVX512_F{kz|b64}
    2562             :   ASMJIT_INST_2x(vgetexpps, Vgetexpps, Vec, Vec)                       //      AVX512_F{kz|b32}
    2563             :   ASMJIT_INST_2x(vgetexpps, Vgetexpps, Vec, Mem)                       //      AVX512_F{kz|b32}
    2564             :   ASMJIT_INST_3x(vgetexpsd, Vgetexpsd, Xmm, Xmm, Xmm)                  //      AVX512_F{kz|sae}
    2565             :   ASMJIT_INST_3x(vgetexpsd, Vgetexpsd, Xmm, Xmm, Mem)                  //      AVX512_F{kz|sae}
    2566             :   ASMJIT_INST_3x(vgetexpss, Vgetexpss, Xmm, Xmm, Xmm)                  //      AVX512_F{kz|sae}
    2567             :   ASMJIT_INST_3x(vgetexpss, Vgetexpss, Xmm, Xmm, Mem)                  //      AVX512_F{kz|sae}
    2568             :   ASMJIT_INST_3x(vgetmantpd, Vgetmantpd, Vec, Vec, Imm)                //      AVX512_F{kz|b64}
    2569             :   ASMJIT_INST_3x(vgetmantpd, Vgetmantpd, Vec, Mem, Imm)                //      AVX512_F{kz|b64}
    2570             :   ASMJIT_INST_3x(vgetmantps, Vgetmantps, Vec, Vec, Imm)                //      AVX512_F{kz|b32}
    2571             :   ASMJIT_INST_3x(vgetmantps, Vgetmantps, Vec, Mem, Imm)                //      AVX512_F{kz|b32}
    2572             :   ASMJIT_INST_4x(vgetmantsd, Vgetmantsd, Xmm, Xmm, Xmm, Imm)           //      AVX512_F{kz|sae}
    2573             :   ASMJIT_INST_4x(vgetmantsd, Vgetmantsd, Xmm, Xmm, Mem, Imm)           //      AVX512_F{kz|sae}
    2574             :   ASMJIT_INST_4x(vgetmantss, Vgetmantss, Xmm, Xmm, Xmm, Imm)           //      AVX512_F{kz|sae}
    2575             :   ASMJIT_INST_4x(vgetmantss, Vgetmantss, Xmm, Xmm, Mem, Imm)           //      AVX512_F{kz|sae}
    2576             :   ASMJIT_INST_4x(vgf2p8affineinvqb, Vgf2p8affineinvqb,Vec,Vec,Vec,Imm) // AVX  AVX512_VL{kz} GFNI
    2577             :   ASMJIT_INST_4x(vgf2p8affineinvqb, Vgf2p8affineinvqb,Vec,Vec,Mem,Imm) // AVX  AVX512_VL{kz} GFNI
    2578             :   ASMJIT_INST_4x(vgf2p8affineqb, Vgf2p8affineqb, Vec, Vec, Vec, Imm)   // AVX  AVX512_VL{kz} GFNI
    2579             :   ASMJIT_INST_4x(vgf2p8affineqb, Vgf2p8affineqb, Vec, Vec, Mem, Imm)   // AVX  AVX512_VL{kz} GFNI
    2580             :   ASMJIT_INST_3x(vgf2p8mulb, Vgf2p8mulb, Vec, Vec, Vec)                // AVX  AVX512_VL{kz} GFNI
    2581             :   ASMJIT_INST_3x(vgf2p8mulb, Vgf2p8mulb, Vec, Vec, Mem)                // AVX  AVX512_VL{kz} GFNI
    2582             :   ASMJIT_INST_3x(vhaddpd, Vhaddpd, Vec, Vec, Vec)                      // AVX
    2583             :   ASMJIT_INST_3x(vhaddpd, Vhaddpd, Vec, Vec, Mem)                      // AVX
    2584             :   ASMJIT_INST_3x(vhaddps, Vhaddps, Vec, Vec, Vec)                      // AVX
    2585             :   ASMJIT_INST_3x(vhaddps, Vhaddps, Vec, Vec, Mem)                      // AVX
    2586             :   ASMJIT_INST_3x(vhsubpd, Vhsubpd, Vec, Vec, Vec)                      // AVX
    2587             :   ASMJIT_INST_3x(vhsubpd, Vhsubpd, Vec, Vec, Mem)                      // AVX
    2588             :   ASMJIT_INST_3x(vhsubps, Vhsubps, Vec, Vec, Vec)                      // AVX
    2589             :   ASMJIT_INST_3x(vhsubps, Vhsubps, Vec, Vec, Mem)                      // AVX
    2590             :   ASMJIT_INST_4x(vinsertf128, Vinsertf128, Vec, Vec, Vec, Imm)         // AVX
    2591             :   ASMJIT_INST_4x(vinsertf128, Vinsertf128, Vec, Vec, Mem, Imm)         // AVX
    2592             :   ASMJIT_INST_4x(vinsertf32x4, Vinsertf32x4, Vec, Vec, Vec, Imm)       //      AVX512_F{kz}
    2593             :   ASMJIT_INST_4x(vinsertf32x4, Vinsertf32x4, Vec, Vec, Mem, Imm)       //      AVX512_F{kz}
    2594             :   ASMJIT_INST_4x(vinsertf32x8, Vinsertf32x8, Vec, Vec, Vec, Imm)       //      AVX512_DQ{kz}
    2595             :   ASMJIT_INST_4x(vinsertf32x8, Vinsertf32x8, Vec, Vec, Mem, Imm)       //      AVX512_DQ{kz}
    2596             :   ASMJIT_INST_4x(vinsertf64x2, Vinsertf64x2, Vec, Vec, Vec, Imm)       //      AVX512_DQ{kz}
    2597             :   ASMJIT_INST_4x(vinsertf64x2, Vinsertf64x2, Vec, Vec, Mem, Imm)       //      AVX512_DQ{kz}
    2598             :   ASMJIT_INST_4x(vinsertf64x4, Vinsertf64x4, Vec, Vec, Vec, Imm)       //      AVX512_F{kz}
    2599             :   ASMJIT_INST_4x(vinsertf64x4, Vinsertf64x4, Vec, Vec, Mem, Imm)       //      AVX512_F{kz}
    2600             :   ASMJIT_INST_4x(vinserti128, Vinserti128, Vec, Vec, Vec, Imm)         // AVX2
    2601             :   ASMJIT_INST_4x(vinserti128, Vinserti128, Vec, Vec, Mem, Imm)         // AVX2
    2602             :   ASMJIT_INST_4x(vinserti32x4, Vinserti32x4, Vec, Vec, Vec, Imm)       //      AVX512_F{kz}
    2603             :   ASMJIT_INST_4x(vinserti32x4, Vinserti32x4, Vec, Vec, Mem, Imm)       //      AVX512_F{kz}
    2604             :   ASMJIT_INST_4x(vinserti32x8, Vinserti32x8, Vec, Vec, Vec, Imm)       //      AVX512_DQ{kz}
    2605             :   ASMJIT_INST_4x(vinserti32x8, Vinserti32x8, Vec, Vec, Mem, Imm)       //      AVX512_DQ{kz}
    2606             :   ASMJIT_INST_4x(vinserti64x2, Vinserti64x2, Vec, Vec, Vec, Imm)       //      AVX512_DQ{kz}
    2607             :   ASMJIT_INST_4x(vinserti64x2, Vinserti64x2, Vec, Vec, Mem, Imm)       //      AVX512_DQ{kz}
    2608             :   ASMJIT_INST_4x(vinserti64x4, Vinserti64x4, Vec, Vec, Vec, Imm)       //      AVX512_F{kz}
    2609             :   ASMJIT_INST_4x(vinserti64x4, Vinserti64x4, Vec, Vec, Mem, Imm)       //      AVX512_F{kz}
    2610             :   ASMJIT_INST_4x(vinsertps, Vinsertps, Xmm, Xmm, Xmm, Imm)             // AVX  AVX512_F
    2611             :   ASMJIT_INST_4x(vinsertps, Vinsertps, Xmm, Xmm, Mem, Imm)             // AVX  AVX512_F
    2612             :   ASMJIT_INST_2x(vlddqu, Vlddqu, Vec, Mem)                             // AVX
    2613             :   ASMJIT_INST_1x(vldmxcsr, Vldmxcsr, Mem)                              // AVX
    2614             :   ASMJIT_INST_3x(vmaskmovdqu, Vmaskmovdqu, Vec, Vec, DS_ZDI)           // AVX  [EXPLICIT]
    2615             :   ASMJIT_INST_3x(vmaskmovpd, Vmaskmovpd, Mem, Vec, Vec)                // AVX
    2616             :   ASMJIT_INST_3x(vmaskmovpd, Vmaskmovpd, Vec, Vec, Mem)                // AVX
    2617             :   ASMJIT_INST_3x(vmaskmovps, Vmaskmovps, Mem, Vec, Vec)                // AVX
    2618             :   ASMJIT_INST_3x(vmaskmovps, Vmaskmovps, Vec, Vec, Mem)                // AVX
    2619             :   ASMJIT_INST_3x(vmaxpd, Vmaxpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    2620             :   ASMJIT_INST_3x(vmaxpd, Vmaxpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    2621             :   ASMJIT_INST_3x(vmaxps, Vmaxps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    2622             :   ASMJIT_INST_3x(vmaxps, Vmaxps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    2623           6 :   ASMJIT_INST_3x(vmaxsd, Vmaxsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|sae}
    2624             :   ASMJIT_INST_3x(vmaxsd, Vmaxsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|sae}
    2625             :   ASMJIT_INST_3x(vmaxss, Vmaxss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|sae}
    2626             :   ASMJIT_INST_3x(vmaxss, Vmaxss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|sae}
    2627             :   ASMJIT_INST_3x(vminpd, Vminpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    2628             :   ASMJIT_INST_3x(vminpd, Vminpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    2629             :   ASMJIT_INST_3x(vminps, Vminps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    2630             :   ASMJIT_INST_3x(vminps, Vminps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    2631           6 :   ASMJIT_INST_3x(vminsd, Vminsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|sae}
    2632             :   ASMJIT_INST_3x(vminsd, Vminsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|sae}
    2633             :   ASMJIT_INST_3x(vminss, Vminss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|sae}
    2634             :   ASMJIT_INST_3x(vminss, Vminss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|sae}
    2635             :   ASMJIT_INST_2x(vmovapd, Vmovapd, Vec, Vec)                           // AVX  AVX512_F{kz}
    2636             :   ASMJIT_INST_2x(vmovapd, Vmovapd, Vec, Mem)                           // AVX  AVX512_F{kz}
    2637             :   ASMJIT_INST_2x(vmovapd, Vmovapd, Mem, Vec)                           // AVX  AVX512_F{kz}
    2638             :   ASMJIT_INST_2x(vmovaps, Vmovaps, Vec, Vec)                           // AVX  AVX512_F{kz}
    2639             :   ASMJIT_INST_2x(vmovaps, Vmovaps, Vec, Mem)                           // AVX  AVX512_F{kz}
    2640             :   ASMJIT_INST_2x(vmovaps, Vmovaps, Mem, Vec)                           // AVX  AVX512_F{kz}
    2641             :   ASMJIT_INST_2x(vmovd, Vmovd, Gp, Xmm)                                // AVX  AVX512_F
    2642             :   ASMJIT_INST_2x(vmovd, Vmovd, Mem, Xmm)                               // AVX  AVX512_F
    2643             :   ASMJIT_INST_2x(vmovd, Vmovd, Xmm, Gp)                                // AVX  AVX512_F
    2644             :   ASMJIT_INST_2x(vmovd, Vmovd, Xmm, Mem)                               // AVX  AVX512_F
    2645             :   ASMJIT_INST_2x(vmovddup, Vmovddup, Vec, Vec)                         // AVX  AVX512_F{kz}
    2646             :   ASMJIT_INST_2x(vmovddup, Vmovddup, Vec, Mem)                         // AVX  AVX512_F{kz}
    2647             :   ASMJIT_INST_2x(vmovdqa, Vmovdqa, Vec, Vec)                           // AVX
    2648             :   ASMJIT_INST_2x(vmovdqa, Vmovdqa, Vec, Mem)                           // AVX
    2649             :   ASMJIT_INST_2x(vmovdqa, Vmovdqa, Mem, Vec)                           // AVX
    2650             :   ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Vec, Vec)                       //      AVX512_F{kz}
    2651             :   ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Vec, Mem)                       //      AVX512_F{kz}
    2652             :   ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Mem, Vec)                       //      AVX512_F{kz}
    2653             :   ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Vec, Vec)                       //      AVX512_F{kz}
    2654             :   ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Vec, Mem)                       //      AVX512_F{kz}
    2655             :   ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Mem, Vec)                       //      AVX512_F{kz}
    2656             :   ASMJIT_INST_2x(vmovdqu, Vmovdqu, Vec, Vec)                           // AVX
    2657             :   ASMJIT_INST_2x(vmovdqu, Vmovdqu, Vec, Mem)                           // AVX
    2658             :   ASMJIT_INST_2x(vmovdqu, Vmovdqu, Mem, Vec)                           // AVX
    2659             :   ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Vec, Vec)                       //      AVX512_BW{kz}
    2660             :   ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Vec, Mem)                       //      AVX512_BW{kz}
    2661             :   ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Mem, Vec)                       //      AVX512_BW{kz}
    2662             :   ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Vec, Vec)                       //      AVX512_F{kz}
    2663             :   ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Vec, Mem)                       //      AVX512_F{kz}
    2664             :   ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Mem, Vec)                       //      AVX512_F{kz}
    2665             :   ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Vec, Vec)                       //      AVX512_F{kz}
    2666             :   ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Vec, Mem)                       //      AVX512_F{kz}
    2667             :   ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Mem, Vec)                       //      AVX512_F{kz}
    2668             :   ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Vec, Vec)                         //      AVX512_BW{kz}
    2669             :   ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Vec, Mem)                         //      AVX512_BW{kz}
    2670             :   ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Mem, Vec)                         //      AVX512_BW{kz}
    2671             :   ASMJIT_INST_3x(vmovhlps, Vmovhlps, Xmm, Xmm, Xmm)                    // AVX  AVX512_F
    2672             :   ASMJIT_INST_2x(vmovhpd, Vmovhpd, Mem, Xmm)                           // AVX  AVX512_F
    2673             :   ASMJIT_INST_3x(vmovhpd, Vmovhpd, Xmm, Xmm, Mem)                      // AVX  AVX512_F
    2674             :   ASMJIT_INST_2x(vmovhps, Vmovhps, Mem, Xmm)                           // AVX  AVX512_F
    2675             :   ASMJIT_INST_3x(vmovhps, Vmovhps, Xmm, Xmm, Mem)                      // AVX  AVX512_F
    2676             :   ASMJIT_INST_3x(vmovlhps, Vmovlhps, Xmm, Xmm, Xmm)                    // AVX  AVX512_F
    2677             :   ASMJIT_INST_2x(vmovlpd, Vmovlpd, Mem, Xmm)                           // AVX  AVX512_F
    2678             :   ASMJIT_INST_3x(vmovlpd, Vmovlpd, Xmm, Xmm, Mem)                      // AVX  AVX512_F
    2679             :   ASMJIT_INST_2x(vmovlps, Vmovlps, Mem, Xmm)                           // AVX  AVX512_F
    2680             :   ASMJIT_INST_3x(vmovlps, Vmovlps, Xmm, Xmm, Mem)                      // AVX  AVX512_F
    2681             :   ASMJIT_INST_2x(vmovmskpd, Vmovmskpd, Gp, Vec)                        // AVX
    2682             :   ASMJIT_INST_2x(vmovmskps, Vmovmskps, Gp, Vec)                        // AVX
    2683             :   ASMJIT_INST_2x(vmovntdq, Vmovntdq, Mem, Vec)                         // AVX+ AVX512_F
    2684             :   ASMJIT_INST_2x(vmovntdqa, Vmovntdqa, Vec, Mem)                       // AVX+ AVX512_F
    2685             :   ASMJIT_INST_2x(vmovntpd, Vmovntpd, Mem, Vec)                         // AVX  AVX512_F
    2686             :   ASMJIT_INST_2x(vmovntps, Vmovntps, Mem, Vec)                         // AVX  AVX512_F
    2687             :   ASMJIT_INST_2x(vmovq, Vmovq, Gp, Xmm)                                // AVX  AVX512_F
    2688             :   ASMJIT_INST_2x(vmovq, Vmovq, Mem, Xmm)                               // AVX  AVX512_F
    2689             :   ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Mem)                               // AVX  AVX512_F
    2690             :   ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Gp)                                // AVX  AVX512_F
    2691             :   ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Xmm)                               // AVX  AVX512_F
    2692          94 :   ASMJIT_INST_2x(vmovsd, Vmovsd, Mem, Xmm)                             // AVX  AVX512_F
    2693       70880 :   ASMJIT_INST_2x(vmovsd, Vmovsd, Xmm, Mem)                             // AVX  AVX512_F{kz}
    2694       30807 :   ASMJIT_INST_3x(vmovsd, Vmovsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz}
    2695             :   ASMJIT_INST_2x(vmovshdup, Vmovshdup, Vec, Vec)                       // AVX  AVX512_F{kz}
    2696             :   ASMJIT_INST_2x(vmovshdup, Vmovshdup, Vec, Mem)                       // AVX  AVX512_F{kz}
    2697             :   ASMJIT_INST_2x(vmovsldup, Vmovsldup, Vec, Vec)                       // AVX  AVX512_F{kz}
    2698             :   ASMJIT_INST_2x(vmovsldup, Vmovsldup, Vec, Mem)                       // AVX  AVX512_F{kz}
    2699             :   ASMJIT_INST_2x(vmovss, Vmovss, Mem, Xmm)                             // AVX  AVX512_F
    2700             :   ASMJIT_INST_2x(vmovss, Vmovss, Xmm, Mem)                             // AVX  AVX512_F{kz}
    2701             :   ASMJIT_INST_3x(vmovss, Vmovss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz}
    2702             :   ASMJIT_INST_2x(vmovupd, Vmovupd, Vec, Vec)                           // AVX  AVX512_F{kz}
    2703             :   ASMJIT_INST_2x(vmovupd, Vmovupd, Vec, Mem)                           // AVX  AVX512_F{kz}
    2704             :   ASMJIT_INST_2x(vmovupd, Vmovupd, Mem, Vec)                           // AVX  AVX512_F{kz}
    2705             :   ASMJIT_INST_2x(vmovups, Vmovups, Vec, Vec)                           // AVX  AVX512_F{kz}
    2706             :   ASMJIT_INST_2x(vmovups, Vmovups, Vec, Mem)                           // AVX  AVX512_F{kz}
    2707             :   ASMJIT_INST_2x(vmovups, Vmovups, Mem, Vec)                           // AVX  AVX512_F{kz}
    2708             :   ASMJIT_INST_4x(vmpsadbw, Vmpsadbw, Vec, Vec, Vec, Imm)               // AVX+
    2709             :   ASMJIT_INST_4x(vmpsadbw, Vmpsadbw, Vec, Vec, Mem, Imm)               // AVX+
    2710             :   ASMJIT_INST_3x(vmulpd, Vmulpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    2711             :   ASMJIT_INST_3x(vmulpd, Vmulpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    2712             :   ASMJIT_INST_3x(vmulps, Vmulps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    2713             :   ASMJIT_INST_3x(vmulps, Vmulps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    2714       53708 :   ASMJIT_INST_3x(vmulsd, Vmulsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2715             :   ASMJIT_INST_3x(vmulsd, Vmulsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2716             :   ASMJIT_INST_3x(vmulss, Vmulss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    2717             :   ASMJIT_INST_3x(vmulss, Vmulss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    2718             :   ASMJIT_INST_3x(vorpd, Vorpd, Vec, Vec, Vec)                          // AVX  AVX512_DQ{kz|b64}
    2719             :   ASMJIT_INST_3x(vorpd, Vorpd, Vec, Vec, Mem)                          // AVX  AVX512_DQ{kz|b64}
    2720             :   ASMJIT_INST_3x(vorps, Vorps, Vec, Vec, Vec)                          // AVX  AVX512_F{kz|b32}
    2721             :   ASMJIT_INST_3x(vorps, Vorps, Vec, Vec, Mem)                          // AVX  AVX512_F{kz|b32}
    2722             :   ASMJIT_INST_4x(vp2intersectd, Vp2intersectd, KReg, KReg, Vec, Vec)   //      AVX512_VP2INTERSECT{kz}
    2723             :   ASMJIT_INST_4x(vp2intersectd, Vp2intersectd, KReg, KReg, Vec, Mem)   //      AVX512_VP2INTERSECT{kz}
    2724             :   ASMJIT_INST_4x(vp2intersectq, Vp2intersectq, KReg, KReg, Vec, Vec)   //      AVX512_VP2INTERSECT{kz}
    2725             :   ASMJIT_INST_4x(vp2intersectq, Vp2intersectq, KReg, KReg, Vec, Mem)   //      AVX512_VP2INTERSECT{kz}
    2726             :   ASMJIT_INST_6x(vp4dpwssd, Vp4dpwssd, Zmm, Zmm, Zmm, Zmm, Zmm, Mem)   //      AVX512_4FMAPS{kz}
    2727             :   ASMJIT_INST_6x(vp4dpwssds, Vp4dpwssds, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) //      AVX512_4FMAPS{kz}
    2728             :   ASMJIT_INST_2x(vpabsb, Vpabsb, Vec, Vec)                             // AVX+ AVX512_BW{kz}
    2729             :   ASMJIT_INST_2x(vpabsb, Vpabsb, Vec, Mem)                             // AVX+ AVX512_BW{kz}
    2730             :   ASMJIT_INST_2x(vpabsd, Vpabsd, Vec, Vec)                             // AVX+ AVX512_F{kz}
    2731             :   ASMJIT_INST_2x(vpabsd, Vpabsd, Vec, Mem)                             // AVX+ AVX512_F{kz}
    2732             :   ASMJIT_INST_2x(vpabsq, Vpabsq, Vec, Vec)                             //      AVX512_F{kz}
    2733             :   ASMJIT_INST_2x(vpabsq, Vpabsq, Vec, Mem)                             //      AVX512_F{kz}
    2734             :   ASMJIT_INST_2x(vpabsw, Vpabsw, Vec, Vec)                             // AVX+ AVX512_BW{kz}
    2735             :   ASMJIT_INST_2x(vpabsw, Vpabsw, Vec, Mem)                             // AVX+ AVX512_BW{kz}
    2736             :   ASMJIT_INST_3x(vpackssdw, Vpackssdw, Vec, Vec, Vec)                  // AVX+ AVX512_BW{kz|b32}
    2737             :   ASMJIT_INST_3x(vpackssdw, Vpackssdw, Vec, Vec, Mem)                  // AVX+ AVX512_BW{kz|b32}
    2738             :   ASMJIT_INST_3x(vpacksswb, Vpacksswb, Vec, Vec, Vec)                  // AVX+ AVX512_BW{kz}
    2739             :   ASMJIT_INST_3x(vpacksswb, Vpacksswb, Vec, Vec, Mem)                  // AVX+ AVX512_BW{kz}
    2740             :   ASMJIT_INST_3x(vpackusdw, Vpackusdw, Vec, Vec, Vec)                  // AVX+ AVX512_BW{kz|b32}
    2741             :   ASMJIT_INST_3x(vpackusdw, Vpackusdw, Vec, Vec, Mem)                  // AVX+ AVX512_BW{kz|b32}
    2742             :   ASMJIT_INST_3x(vpackuswb, Vpackuswb, Vec, Vec, Vec)                  // AVX+ AVX512_BW{kz}
    2743             :   ASMJIT_INST_3x(vpackuswb, Vpackuswb, Vec, Vec, Mem)                  // AVX+ AVX512_BW{kz}
    2744             :   ASMJIT_INST_3x(vpaddb, Vpaddb, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    2745             :   ASMJIT_INST_3x(vpaddb, Vpaddb, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    2746             :   ASMJIT_INST_3x(vpaddd, Vpaddd, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz|b32}
    2747             :   ASMJIT_INST_3x(vpaddd, Vpaddd, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz|b32}
    2748             :   ASMJIT_INST_3x(vpaddq, Vpaddq, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz|b64}
    2749             :   ASMJIT_INST_3x(vpaddq, Vpaddq, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz|b64}
    2750             :   ASMJIT_INST_3x(vpaddsb, Vpaddsb, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    2751             :   ASMJIT_INST_3x(vpaddsb, Vpaddsb, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    2752             :   ASMJIT_INST_3x(vpaddsw, Vpaddsw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    2753             :   ASMJIT_INST_3x(vpaddsw, Vpaddsw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    2754             :   ASMJIT_INST_3x(vpaddusb, Vpaddusb, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    2755             :   ASMJIT_INST_3x(vpaddusb, Vpaddusb, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    2756             :   ASMJIT_INST_3x(vpaddusw, Vpaddusw, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    2757             :   ASMJIT_INST_3x(vpaddusw, Vpaddusw, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    2758             :   ASMJIT_INST_3x(vpaddw, Vpaddw, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    2759             :   ASMJIT_INST_3x(vpaddw, Vpaddw, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    2760             :   ASMJIT_INST_4x(vpalignr, Vpalignr, Vec, Vec, Vec, Imm)               // AVX+ AVX512_BW{kz}
    2761             :   ASMJIT_INST_4x(vpalignr, Vpalignr, Vec, Vec, Mem, Imm)               // AVX+ AVX512_BW{kz}
    2762             :   ASMJIT_INST_3x(vpand, Vpand, Vec, Vec, Vec)                          // AVX+
    2763             :   ASMJIT_INST_3x(vpand, Vpand, Vec, Vec, Mem)                          // AVX+
    2764             :   ASMJIT_INST_3x(vpandd, Vpandd, Vec, Vec, Vec)                        //      AVX512_F{kz|b32}
    2765             :   ASMJIT_INST_3x(vpandd, Vpandd, Vec, Vec, Mem)                        //      AVX512_F{kz|b32}
    2766             :   ASMJIT_INST_3x(vpandn, Vpandn, Vec, Vec, Vec)                        // AV+
    2767             :   ASMJIT_INST_3x(vpandn, Vpandn, Vec, Vec, Mem)                        // AVX+
    2768             :   ASMJIT_INST_3x(vpandnd, Vpandnd, Vec, Vec, Vec)                      //      AVX512_F{kz|b32}
    2769             :   ASMJIT_INST_3x(vpandnd, Vpandnd, Vec, Vec, Mem)                      //      AVX512_F{kz|b32}
    2770             :   ASMJIT_INST_3x(vpandnq, Vpandnq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    2771             :   ASMJIT_INST_3x(vpandnq, Vpandnq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    2772             :   ASMJIT_INST_3x(vpandq, Vpandq, Vec, Vec, Vec)                        //      AVX512_F{kz|b64}
    2773             :   ASMJIT_INST_3x(vpandq, Vpandq, Vec, Vec, Mem)                        //      AVX512_F{kz|b64}
    2774             :   ASMJIT_INST_3x(vpavgb, Vpavgb, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    2775             :   ASMJIT_INST_3x(vpavgb, Vpavgb, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    2776             :   ASMJIT_INST_3x(vpavgw, Vpavgw, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    2777             :   ASMJIT_INST_3x(vpavgw, Vpavgw, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    2778             :   ASMJIT_INST_4x(vpblendd, Vpblendd, Vec, Vec, Vec, Imm)               // AVX2
    2779             :   ASMJIT_INST_4x(vpblendd, Vpblendd, Vec, Vec, Mem, Imm)               // AVX2
    2780             :   ASMJIT_INST_3x(vpblendmb, Vpblendmb, Vec, Vec, Vec)                  //      AVX512_BW{kz}
    2781             :   ASMJIT_INST_3x(vpblendmb, Vpblendmb, Vec, Vec, Mem)                  //      AVX512_BW{kz}
    2782             :   ASMJIT_INST_3x(vpblendmd, Vpblendmd, Vec, Vec, Vec)                  //      AVX512_F{kz|b32}
    2783             :   ASMJIT_INST_3x(vpblendmd, Vpblendmd, Vec, Vec, Mem)                  //      AVX512_F{kz|b32}
    2784             :   ASMJIT_INST_3x(vpblendmq, Vpblendmq, Vec, Vec, Vec)                  //      AVX512_F{kz|b64}
    2785             :   ASMJIT_INST_3x(vpblendmq, Vpblendmq, Vec, Vec, Mem)                  //      AVX512_F{kz|b64}
    2786             :   ASMJIT_INST_3x(vpblendmw, Vpblendmw, Vec, Vec, Vec)                  //      AVX512_BW{kz}
    2787             :   ASMJIT_INST_3x(vpblendmw, Vpblendmw, Vec, Vec, Mem)                  //      AVX512_BW{kz}
    2788             :   ASMJIT_INST_4x(vpblendvb, Vpblendvb, Vec, Vec, Vec, Vec)             // AVX+
    2789             :   ASMJIT_INST_4x(vpblendvb, Vpblendvb, Vec, Vec, Mem, Vec)             // AVX+
    2790             :   ASMJIT_INST_4x(vpblendw, Vpblendw, Vec, Vec, Vec, Imm)               // AVX+
    2791             :   ASMJIT_INST_4x(vpblendw, Vpblendw, Vec, Vec, Mem, Imm)               // AVX+
    2792             :   ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Vec)                 // AVX2 AVX512_BW{kz}
    2793             :   ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Mem)                 // AVX2 AVX512_BW{kz}
    2794             :   ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Gp)                  //      AVX512_BW{kz}
    2795             :   ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Vec)                 // AVX2 AVX512_F{kz}
    2796             :   ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Mem)                 // AVX2 AVX512_F{kz}
    2797             :   ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Gp)                  //      AVX512_F{kz}
    2798             :   ASMJIT_INST_2x(vpbroadcastmb2q, Vpbroadcastmb2q, Vec, KReg)          //      AVX512_CD
    2799             :   ASMJIT_INST_2x(vpbroadcastmw2d, Vpbroadcastmw2d, Vec, KReg)          //      AVX512_CD
    2800             :   ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Vec)                 // AVX2 AVX512_F{kz}
    2801             :   ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Mem)                 // AVX2 AVX512_F{kz}
    2802             :   ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Gp)                  //      AVX512_F{kz}
    2803             :   ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Vec)                 // AVX2 AVX512_BW{kz}
    2804             :   ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Mem)                 // AVX2 AVX512_BW{kz}
    2805             :   ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Gp)                  //      AVX512_BW{kz}
    2806             :   ASMJIT_INST_4x(vpclmulqdq, Vpclmulqdq, Vec, Vec, Vec, Imm)           // AVX  VPCLMULQDQ AVX512_F
    2807             :   ASMJIT_INST_4x(vpclmulqdq, Vpclmulqdq, Vec, Vec, Mem, Imm)           // AVX  VPCLMULQDQ AVX512_F
    2808             :   ASMJIT_INST_4x(vpcmpb, Vpcmpb, KReg, Vec, Vec, Imm)                  //      AVX512_BW{k}
    2809             :   ASMJIT_INST_4x(vpcmpb, Vpcmpb, KReg, Vec, Mem, Imm)                  //      AVX512_BW{k}
    2810             :   ASMJIT_INST_4x(vpcmpd, Vpcmpd, KReg, Vec, Vec, Imm)                  //      AVX512_F{k|b32}
    2811             :   ASMJIT_INST_4x(vpcmpd, Vpcmpd, KReg, Vec, Mem, Imm)                  //      AVX512_F{k|b32}
    2812             :   ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, Vec, Vec, Vec)                    // AVX+
    2813             :   ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, Vec, Vec, Mem)                    // AVX+
    2814             :   ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, KReg, Vec, Vec)                   //      AVX512_BW{k}
    2815             :   ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, KReg, Vec, Mem)                   //      AVX512_BW{k}
    2816             :   ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, Vec, Vec, Vec)                    // AVX+
    2817             :   ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, Vec, Vec, Mem)                    // AVX+
    2818             :   ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, KReg, Vec, Vec)                   //      AVX512_F{k|b32}
    2819             :   ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, KReg, Vec, Mem)                   //      AVX512_F{k|b32}
    2820             :   ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, Vec, Vec, Vec)                    // AVX+
    2821             :   ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, Vec, Vec, Mem)                    // AVX+
    2822             :   ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, KReg, Vec, Vec)                   //      AVX512_F{k|b64}
    2823             :   ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, KReg, Vec, Mem)                   //      AVX512_F{k|b64}
    2824             :   ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, Vec, Vec, Vec)                    // AVX+
    2825             :   ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, Vec, Vec, Mem)                    // AVX+
    2826             :   ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, KReg, Vec, Vec)                   //      AVX512_BW{k}
    2827             :   ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, KReg, Vec, Mem)                   //      AVX512_BW{k}
    2828             :   ASMJIT_INST_6x(vpcmpestri, Vpcmpestri, Vec, Vec, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // AVX  [EXPLICIT]
    2829             :   ASMJIT_INST_6x(vpcmpestri, Vpcmpestri, Vec, Mem, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // AVX  [EXPLICIT]
    2830             :   ASMJIT_INST_6x(vpcmpestrm, Vpcmpestrm, Vec, Vec, Imm, XMM0, Gp_EAX, Gp_EDX)   // AVX  [EXPLICIT]
    2831             :   ASMJIT_INST_6x(vpcmpestrm, Vpcmpestrm, Vec, Mem, Imm, XMM0, Gp_EAX, Gp_EDX)   // AVX  [EXPLICIT]
    2832             :   ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, Vec, Vec, Vec)                    // AVX+
    2833             :   ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, Vec, Vec, Mem)                    // AVX+
    2834             :   ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, KReg, Vec, Vec)                   //      AVX512_BW{k}
    2835             :   ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, KReg, Vec, Mem)                   //      AVX512_BW{k}
    2836             :   ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, Vec, Vec, Vec)                    // AVX+
    2837             :   ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, Vec, Vec, Mem)                    // AVX+
    2838             :   ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, KReg, Vec, Vec)                   //      AVX512_F{k|b32}
    2839             :   ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, KReg, Vec, Mem)                   //      AVX512_F{k|b32}
    2840             :   ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, Vec, Vec, Vec)                    // AVX+
    2841             :   ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, Vec, Vec, Mem)                    // AVX+
    2842             :   ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, KReg, Vec, Vec)                   //      AVX512_F{k|b64}
    2843             :   ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, KReg, Vec, Mem)                   //      AVX512_F{k|b64}
    2844             :   ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, Vec, Vec, Vec)                    // AVX+
    2845             :   ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, Vec, Vec, Mem)                    // AVX+
    2846             :   ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, KReg, Vec, Vec)                   //      AVX512_BW{k}
    2847             :   ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, KReg, Vec, Mem)                   //      AVX512_BW{k}
    2848             :   ASMJIT_INST_4x(vpcmpistri, Vpcmpistri, Vec, Vec, Imm, Gp_ECX)        // AVX  [EXPLICIT]
    2849             :   ASMJIT_INST_4x(vpcmpistri, Vpcmpistri, Vec, Mem, Imm, Gp_ECX)        // AVX  [EXPLICIT]
    2850             :   ASMJIT_INST_4x(vpcmpistrm, Vpcmpistrm, Vec, Vec, Imm, XMM0)          // AVX  [EXPLICIT]
    2851             :   ASMJIT_INST_4x(vpcmpistrm, Vpcmpistrm, Vec, Mem, Imm, XMM0)          // AVX  [EXPLICIT]
    2852             :   ASMJIT_INST_4x(vpcmpq, Vpcmpq, KReg, Vec, Vec, Imm)                  //      AVX512_F{k|b64}
    2853             :   ASMJIT_INST_4x(vpcmpq, Vpcmpq, KReg, Vec, Mem, Imm)                  //      AVX512_F{k|b64}
    2854             :   ASMJIT_INST_4x(vpcmpub, Vpcmpub, KReg, Vec, Vec, Imm)                //      AVX512_BW{k}
    2855             :   ASMJIT_INST_4x(vpcmpub, Vpcmpub, KReg, Vec, Mem, Imm)                //      AVX512_BW{k}
    2856             :   ASMJIT_INST_4x(vpcmpud, Vpcmpud, KReg, Vec, Vec, Imm)                //      AVX512_F{k|b32}
    2857             :   ASMJIT_INST_4x(vpcmpud, Vpcmpud, KReg, Vec, Mem, Imm)                //      AVX512_F{k|b32}
    2858             :   ASMJIT_INST_4x(vpcmpuq, Vpcmpuq, KReg, Vec, Vec, Imm)                //      AVX512_F{k|b64}
    2859             :   ASMJIT_INST_4x(vpcmpuq, Vpcmpuq, KReg, Vec, Mem, Imm)                //      AVX512_F{k|b64}
    2860             :   ASMJIT_INST_4x(vpcmpuw, Vpcmpuw, KReg, Vec, Vec, Imm)                //      AVX512_BW{k|b64}
    2861             :   ASMJIT_INST_4x(vpcmpuw, Vpcmpuw, KReg, Vec, Mem, Imm)                //      AVX512_BW{k|b64}
    2862             :   ASMJIT_INST_4x(vpcmpw, Vpcmpw, KReg, Vec, Vec, Imm)                  //      AVX512_BW{k|b64}
    2863             :   ASMJIT_INST_4x(vpcmpw, Vpcmpw, KReg, Vec, Mem, Imm)                  //      AVX512_BW{k|b64}
    2864             :   ASMJIT_INST_2x(vpcompressb, Vpcompressb, Vec, Vec)                   //      AVX512_VBMI2{kz}
    2865             :   ASMJIT_INST_2x(vpcompressb, Vpcompressb, Mem, Vec)                   //      AVX512_VBMI2{kz}
    2866             :   ASMJIT_INST_2x(vpcompressd, Vpcompressd, Vec, Vec)                   //      AVX512_F{kz}
    2867             :   ASMJIT_INST_2x(vpcompressd, Vpcompressd, Mem, Vec)                   //      AVX512_F{kz}
    2868             :   ASMJIT_INST_2x(vpcompressq, Vpcompressq, Vec, Vec)                   //      AVX512_F{kz}
    2869             :   ASMJIT_INST_2x(vpcompressq, Vpcompressq, Mem, Vec)                   //      AVX512_F{kz}
    2870             :   ASMJIT_INST_2x(vpcompressw, Vpcompressw, Vec, Vec)                   //      AVX512_VBMI2{kz}
    2871             :   ASMJIT_INST_2x(vpcompressw, Vpcompressw, Mem, Vec)                   //      AVX512_VBMI2{kz}
    2872             :   ASMJIT_INST_2x(vpconflictd, Vpconflictd, Vec, Vec)                   //      AVX512_CD{kz|b32}
    2873             :   ASMJIT_INST_2x(vpconflictd, Vpconflictd, Vec, Mem)                   //      AVX512_CD{kz|b32}
    2874             :   ASMJIT_INST_2x(vpconflictq, Vpconflictq, Vec, Vec)                   //      AVX512_CD{kz|b32}
    2875             :   ASMJIT_INST_2x(vpconflictq, Vpconflictq, Vec, Mem)                   //      AVX512_CD{kz|b32}
    2876             :   ASMJIT_INST_3x(vpdpbusd, Vpdpbusd, Vec, Vec, Vec)                    // AVX_VNNI AVX512_VNNI{kz|b32}
    2877             :   ASMJIT_INST_3x(vpdpbusd, Vpdpbusd, Vec, Vec, Mem)                    // AVX_VNNI AVX512_VNNI{kz|b32}
    2878             :   ASMJIT_INST_3x(vpdpbusds, Vpdpbusds, Vec, Vec, Vec)                  // AVX_VNNI AVX512_VNNI{kz|b32}
    2879             :   ASMJIT_INST_3x(vpdpbusds, Vpdpbusds, Vec, Vec, Mem)                  // AVX_VNNI AVX512_VNNI{kz|b32}
    2880             :   ASMJIT_INST_3x(vpdpwssd, Vpdpwssd, Vec, Vec, Vec)                    // AVX_VNNI AVX512_VNNI{kz|b32}
    2881             :   ASMJIT_INST_3x(vpdpwssd, Vpdpwssd, Vec, Vec, Mem)                    // AVX_VNNI AVX512_VNNI{kz|b32}
    2882             :   ASMJIT_INST_3x(vpdpwssds, Vpdpwssds, Vec, Vec, Vec)                  // AVX_VNNI AVX512_VNNI{kz|b32}
    2883             :   ASMJIT_INST_3x(vpdpwssds, Vpdpwssds, Vec, Vec, Mem)                  // AVX_VNNI AVX512_VNNI{kz|b32}
    2884             :   ASMJIT_INST_4x(vperm2f128, Vperm2f128, Vec, Vec, Vec, Imm)           // AVX
    2885             :   ASMJIT_INST_4x(vperm2f128, Vperm2f128, Vec, Vec, Mem, Imm)           // AVX
    2886             :   ASMJIT_INST_4x(vperm2i128, Vperm2i128, Vec, Vec, Vec, Imm)           // AVX2
    2887             :   ASMJIT_INST_4x(vperm2i128, Vperm2i128, Vec, Vec, Mem, Imm)           // AVX2
    2888             :   ASMJIT_INST_3x(vpermb, Vpermb, Vec, Vec, Vec)                        //      AVX512_VBMI{kz}
    2889             :   ASMJIT_INST_3x(vpermb, Vpermb, Vec, Vec, Mem)                        //      AVX512_VBMI{kz}
    2890             :   ASMJIT_INST_3x(vpermd, Vpermd, Vec, Vec, Vec)                        // AVX2 AVX512_F{kz|b32}
    2891             :   ASMJIT_INST_3x(vpermd, Vpermd, Vec, Vec, Mem)                        // AVX2 AVX512_F{kz|b32}
    2892             :   ASMJIT_INST_3x(vpermi2b, Vpermi2b, Vec, Vec, Vec)                    //      AVX512_VBMI{kz}
    2893             :   ASMJIT_INST_3x(vpermi2b, Vpermi2b, Vec, Vec, Mem)                    //      AVX512_VBMI{kz}
    2894             :   ASMJIT_INST_3x(vpermi2d, Vpermi2d, Vec, Vec, Vec)                    //      AVX512_F{kz|b32}
    2895             :   ASMJIT_INST_3x(vpermi2d, Vpermi2d, Vec, Vec, Mem)                    //      AVX512_F{kz|b32}
    2896             :   ASMJIT_INST_3x(vpermi2pd, Vpermi2pd, Vec, Vec, Vec)                  //      AVX512_F{kz|b64}
    2897             :   ASMJIT_INST_3x(vpermi2pd, Vpermi2pd, Vec, Vec, Mem)                  //      AVX512_F{kz|b64}
    2898             :   ASMJIT_INST_3x(vpermi2ps, Vpermi2ps, Vec, Vec, Vec)                  //      AVX512_F{kz|b32}
    2899             :   ASMJIT_INST_3x(vpermi2ps, Vpermi2ps, Vec, Vec, Mem)                  //      AVX512_F{kz|b32}
    2900             :   ASMJIT_INST_3x(vpermi2q, Vpermi2q, Vec, Vec, Vec)                    //      AVX512_F{kz|b64}
    2901             :   ASMJIT_INST_3x(vpermi2q, Vpermi2q, Vec, Vec, Mem)                    //      AVX512_F{kz|b64}
    2902             :   ASMJIT_INST_3x(vpermi2w, Vpermi2w, Vec, Vec, Vec)                    //      AVX512_BW{kz}
    2903             :   ASMJIT_INST_3x(vpermi2w, Vpermi2w, Vec, Vec, Mem)                    //      AVX512_BW{kz}
    2904             :   ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b64}
    2905             :   ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b64}
    2906             :   ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Imm)                  // AVX  AVX512_F{kz|b64}
    2907             :   ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Mem, Imm)                  // AVX  AVX512_F{kz|b64}
    2908             :   ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b64}
    2909             :   ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b64}
    2910             :   ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Imm)                  // AVX  AVX512_F{kz|b64}
    2911             :   ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Mem, Imm)                  // AVX  AVX512_F{kz|b64}
    2912             :   ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Imm)                      // AVX2
    2913             :   ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Mem, Imm)                      // AVX2
    2914             :   ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    2915             :   ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    2916             :   ASMJIT_INST_3x(vpermps, Vpermps, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b32}
    2917             :   ASMJIT_INST_3x(vpermps, Vpermps, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b32}
    2918             :   ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Imm)                        // AVX2 AVX512_F{kz|b64}
    2919             :   ASMJIT_INST_3x(vpermq, Vpermq, Vec, Mem, Imm)                        // AVX2 AVX512_F{kz|b64}
    2920             :   ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Vec)                        //      AVX512_F{kz|b64}
    2921             :   ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Mem)                        //      AVX512_F{kz|b64}
    2922             :   ASMJIT_INST_3x(vpermt2b, Vpermt2b, Vec, Vec, Vec)                    //      AVX512_VBMI{kz}
    2923             :   ASMJIT_INST_3x(vpermt2b, Vpermt2b, Vec, Vec, Mem)                    //      AVX512_VBMI{kz}
    2924             :   ASMJIT_INST_3x(vpermt2d, Vpermt2d, Vec, Vec, Vec)                    //      AVX512_F{kz|b32}
    2925             :   ASMJIT_INST_3x(vpermt2d, Vpermt2d, Vec, Vec, Mem)                    //      AVX512_F{kz|b32}
    2926             :   ASMJIT_INST_3x(vpermt2pd, Vpermt2pd, Vec, Vec, Vec)                  //      AVX512_F{kz|b64}
    2927             :   ASMJIT_INST_3x(vpermt2pd, Vpermt2pd, Vec, Vec, Mem)                  //      AVX512_F{kz|b64}
    2928             :   ASMJIT_INST_3x(vpermt2ps, Vpermt2ps, Vec, Vec, Vec)                  //      AVX512_F{kz|b32}
    2929             :   ASMJIT_INST_3x(vpermt2ps, Vpermt2ps, Vec, Vec, Mem)                  //      AVX512_F{kz|b32}
    2930             :   ASMJIT_INST_3x(vpermt2q, Vpermt2q, Vec, Vec, Vec)                    //      AVX512_F{kz|b64}
    2931             :   ASMJIT_INST_3x(vpermt2q, Vpermt2q, Vec, Vec, Mem)                    //      AVX512_F{kz|b64}
    2932             :   ASMJIT_INST_3x(vpermt2w, Vpermt2w, Vec, Vec, Vec)                    //      AVX512_BW{kz}
    2933             :   ASMJIT_INST_3x(vpermt2w, Vpermt2w, Vec, Vec, Mem)                    //      AVX512_BW{kz}
    2934             :   ASMJIT_INST_3x(vpermw, Vpermw, Vec, Vec, Vec)                        //      AVX512_BW{kz}
    2935             :   ASMJIT_INST_3x(vpermw, Vpermw, Vec, Vec, Mem)                        //      AVX512_BW{kz}
    2936             :   ASMJIT_INST_2x(vpexpandb, Vpexpandb, Vec, Vec)                       //      AVX512_VBMI2{kz}
    2937             :   ASMJIT_INST_2x(vpexpandb, Vpexpandb, Vec, Mem)                       //      AVX512_VBMI2{kz}
    2938             :   ASMJIT_INST_2x(vpexpandd, Vpexpandd, Vec, Vec)                       //      AVX512_F{kz}
    2939             :   ASMJIT_INST_2x(vpexpandd, Vpexpandd, Vec, Mem)                       //      AVX512_F{kz}
    2940             :   ASMJIT_INST_2x(vpexpandq, Vpexpandq, Vec, Vec)                       //      AVX512_F{kz}
    2941             :   ASMJIT_INST_2x(vpexpandq, Vpexpandq, Vec, Mem)                       //      AVX512_F{kz}
    2942             :   ASMJIT_INST_2x(vpexpandw, Vpexpandw, Vec, Vec)                       //      AVX512_VBMI2{kz}
    2943             :   ASMJIT_INST_2x(vpexpandw, Vpexpandw, Vec, Mem)                       //      AVX512_VBMI2{kz}
    2944             :   ASMJIT_INST_3x(vpextrb, Vpextrb, Gp, Xmm, Imm)                       // AVX  AVX512_BW
    2945             :   ASMJIT_INST_3x(vpextrb, Vpextrb, Mem, Xmm, Imm)                      // AVX  AVX512_BW
    2946             :   ASMJIT_INST_3x(vpextrd, Vpextrd, Gp, Xmm, Imm)                       // AVX  AVX512_DQ
    2947             :   ASMJIT_INST_3x(vpextrd, Vpextrd, Mem, Xmm, Imm)                      // AVX  AVX512_DQ
    2948             :   ASMJIT_INST_3x(vpextrq, Vpextrq, Gp, Xmm, Imm)                       // AVX  AVX512_DQ
    2949             :   ASMJIT_INST_3x(vpextrq, Vpextrq, Mem, Xmm, Imm)                      // AVX  AVX512_DQ
    2950             :   ASMJIT_INST_3x(vpextrw, Vpextrw, Gp, Xmm, Imm)                       // AVX  AVX512_BW
    2951             :   ASMJIT_INST_3x(vpextrw, Vpextrw, Mem, Xmm, Imm)                      // AVX  AVX512_BW
    2952             :   ASMJIT_INST_2x(vpgatherdd, Vpgatherdd, Vec, Mem)                     //      AVX512_F{k}
    2953             :   ASMJIT_INST_3x(vpgatherdd, Vpgatherdd, Vec, Mem, Vec)                // AVX2
    2954             :   ASMJIT_INST_2x(vpgatherdq, Vpgatherdq, Vec, Mem)                     //      AVX512_F{k}
    2955             :   ASMJIT_INST_3x(vpgatherdq, Vpgatherdq, Vec, Mem, Vec)                // AVX2
    2956             :   ASMJIT_INST_2x(vpgatherqd, Vpgatherqd, Vec, Mem)                     //      AVX512_F{k}
    2957             :   ASMJIT_INST_3x(vpgatherqd, Vpgatherqd, Vec, Mem, Vec)                // AVX2
    2958             :   ASMJIT_INST_2x(vpgatherqq, Vpgatherqq, Vec, Mem)                     //      AVX512_F{k}
    2959             :   ASMJIT_INST_3x(vpgatherqq, Vpgatherqq, Vec, Mem, Vec)                // AVX2
    2960             :   ASMJIT_INST_3x(vphaddd, Vphaddd, Vec, Vec, Vec)                      // AVX+
    2961             :   ASMJIT_INST_3x(vphaddd, Vphaddd, Vec, Vec, Mem)                      // AVX+
    2962             :   ASMJIT_INST_3x(vphaddsw, Vphaddsw, Vec, Vec, Vec)                    // AVX+
    2963             :   ASMJIT_INST_3x(vphaddsw, Vphaddsw, Vec, Vec, Mem)                    // AVX+
    2964             :   ASMJIT_INST_3x(vphaddw, Vphaddw, Vec, Vec, Vec)                      // AVX+
    2965             :   ASMJIT_INST_3x(vphaddw, Vphaddw, Vec, Vec, Mem)                      // AVX+
    2966             :   ASMJIT_INST_2x(vphminposuw, Vphminposuw, Vec, Vec)                   // AVX
    2967             :   ASMJIT_INST_2x(vphminposuw, Vphminposuw, Vec, Mem)                   // AVX
    2968             :   ASMJIT_INST_3x(vphsubd, Vphsubd, Vec, Vec, Vec)                      // AVX+
    2969             :   ASMJIT_INST_3x(vphsubd, Vphsubd, Vec, Vec, Mem)                      // AVX+
    2970             :   ASMJIT_INST_3x(vphsubsw, Vphsubsw, Vec, Vec, Vec)                    // AVX+
    2971             :   ASMJIT_INST_3x(vphsubsw, Vphsubsw, Vec, Vec, Mem)                    // AVX+
    2972             :   ASMJIT_INST_3x(vphsubw, Vphsubw, Vec, Vec, Vec)                      // AVX+
    2973             :   ASMJIT_INST_3x(vphsubw, Vphsubw, Vec, Vec, Mem)                      // AVX+
    2974             :   ASMJIT_INST_4x(vpinsrb, Vpinsrb, Xmm, Xmm, Gp, Imm)                  // AVX  AVX512_BW{kz}
    2975             :   ASMJIT_INST_4x(vpinsrb, Vpinsrb, Xmm, Xmm, Mem, Imm)                 // AVX  AVX512_BW{kz}
    2976             :   ASMJIT_INST_4x(vpinsrd, Vpinsrd, Xmm, Xmm, Gp, Imm)                  // AVX  AVX512_DQ{kz}
    2977             :   ASMJIT_INST_4x(vpinsrd, Vpinsrd, Xmm, Xmm, Mem, Imm)                 // AVX  AVX512_DQ{kz}
    2978             :   ASMJIT_INST_4x(vpinsrq, Vpinsrq, Xmm, Xmm, Gp, Imm)                  // AVX  AVX512_DQ{kz}
    2979             :   ASMJIT_INST_4x(vpinsrq, Vpinsrq, Xmm, Xmm, Mem, Imm)                 // AVX  AVX512_DQ{kz}
    2980             :   ASMJIT_INST_4x(vpinsrw, Vpinsrw, Xmm, Xmm, Gp, Imm)                  // AVX  AVX512_BW{kz}
    2981             :   ASMJIT_INST_4x(vpinsrw, Vpinsrw, Xmm, Xmm, Mem, Imm)                 // AVX  AVX512_BW{kz}
    2982             :   ASMJIT_INST_2x(vplzcntd, Vplzcntd, Vec, Vec)                         //      AVX512_CD{kz|b32}
    2983             :   ASMJIT_INST_2x(vplzcntd, Vplzcntd, Vec, Mem)                         //      AVX512_CD{kz|b32}
    2984             :   ASMJIT_INST_2x(vplzcntq, Vplzcntq, Vec, Vec)                         //      AVX512_CD{kz|b64}
    2985             :   ASMJIT_INST_2x(vplzcntq, Vplzcntq, Vec, Mem)                         //      AVX512_CD{kz|b64}
    2986             :   ASMJIT_INST_3x(vpmadd52huq, Vpmadd52huq, Vec, Vec, Vec)              //      AVX512_IFMA{kz|b64}
    2987             :   ASMJIT_INST_3x(vpmadd52huq, Vpmadd52huq, Vec, Vec, Mem)              //      AVX512_IFMA{kz|b64}
    2988             :   ASMJIT_INST_3x(vpmadd52luq, Vpmadd52luq, Vec, Vec, Vec)              //      AVX512_IFMA{kz|b64}
    2989             :   ASMJIT_INST_3x(vpmadd52luq, Vpmadd52luq, Vec, Vec, Mem)              //      AVX512_IFMA{kz|b64}
    2990             :   ASMJIT_INST_3x(vpmaddubsw, Vpmaddubsw, Vec, Vec, Vec)                // AVX+ AVX512_BW{kz}
    2991             :   ASMJIT_INST_3x(vpmaddubsw, Vpmaddubsw, Vec, Vec, Mem)                // AVX+ AVX512_BW{kz}
    2992             :   ASMJIT_INST_3x(vpmaddwd, Vpmaddwd, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    2993             :   ASMJIT_INST_3x(vpmaddwd, Vpmaddwd, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    2994             :   ASMJIT_INST_3x(vpmaskmovd, Vpmaskmovd, Mem, Vec, Vec)                // AVX2
    2995             :   ASMJIT_INST_3x(vpmaskmovd, Vpmaskmovd, Vec, Vec, Mem)                // AVX2
    2996             :   ASMJIT_INST_3x(vpmaskmovq, Vpmaskmovq, Mem, Vec, Vec)                // AVX2
    2997             :   ASMJIT_INST_3x(vpmaskmovq, Vpmaskmovq, Vec, Vec, Mem)                // AVX2
    2998             :   ASMJIT_INST_3x(vpmaxsb, Vpmaxsb, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    2999             :   ASMJIT_INST_3x(vpmaxsb, Vpmaxsb, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3000             :   ASMJIT_INST_3x(vpmaxsd, Vpmaxsd, Vec, Vec, Vec)                      // AVX+ AVX512_F{kz|b32}
    3001             :   ASMJIT_INST_3x(vpmaxsd, Vpmaxsd, Vec, Vec, Mem)                      // AVX+ AVX512_F{kz|b32}
    3002             :   ASMJIT_INST_3x(vpmaxsq, Vpmaxsq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3003             :   ASMJIT_INST_3x(vpmaxsq, Vpmaxsq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3004             :   ASMJIT_INST_3x(vpmaxsw, Vpmaxsw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3005             :   ASMJIT_INST_3x(vpmaxsw, Vpmaxsw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3006             :   ASMJIT_INST_3x(vpmaxub, Vpmaxub, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3007             :   ASMJIT_INST_3x(vpmaxub, Vpmaxub, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3008             :   ASMJIT_INST_3x(vpmaxud, Vpmaxud, Vec, Vec, Vec)                      // AVX+ AVX512_F{kz|b32}
    3009             :   ASMJIT_INST_3x(vpmaxud, Vpmaxud, Vec, Vec, Mem)                      // AVX+ AVX512_F{kz|b32}
    3010             :   ASMJIT_INST_3x(vpmaxuq, Vpmaxuq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3011             :   ASMJIT_INST_3x(vpmaxuq, Vpmaxuq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3012             :   ASMJIT_INST_3x(vpmaxuw, Vpmaxuw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3013             :   ASMJIT_INST_3x(vpmaxuw, Vpmaxuw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3014             :   ASMJIT_INST_3x(vpminsb, Vpminsb, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3015             :   ASMJIT_INST_3x(vpminsb, Vpminsb, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3016             :   ASMJIT_INST_3x(vpminsd, Vpminsd, Vec, Vec, Vec)                      // AVX+ AVX512_F{kz|b32}
    3017             :   ASMJIT_INST_3x(vpminsd, Vpminsd, Vec, Vec, Mem)                      // AVX+ AVX512_F{kz|b32}
    3018             :   ASMJIT_INST_3x(vpminsq, Vpminsq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3019             :   ASMJIT_INST_3x(vpminsq, Vpminsq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3020             :   ASMJIT_INST_3x(vpminsw, Vpminsw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3021             :   ASMJIT_INST_3x(vpminsw, Vpminsw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3022             :   ASMJIT_INST_3x(vpminub, Vpminub, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3023             :   ASMJIT_INST_3x(vpminub, Vpminub, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3024             :   ASMJIT_INST_3x(vpminud, Vpminud, Vec, Vec, Vec)                      // AVX+ AVX512_F{kz|b32}
    3025             :   ASMJIT_INST_3x(vpminud, Vpminud, Vec, Vec, Mem)                      // AVX+ AVX512_F{kz|b32}
    3026             :   ASMJIT_INST_3x(vpminuq, Vpminuq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3027             :   ASMJIT_INST_3x(vpminuq, Vpminuq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3028             :   ASMJIT_INST_3x(vpminuw, Vpminuw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3029             :   ASMJIT_INST_3x(vpminuw, Vpminuw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3030             :   ASMJIT_INST_2x(vpmovb2m, Vpmovb2m, KReg, Vec)                        //      AVX512_BW
    3031             :   ASMJIT_INST_2x(vpmovd2m, Vpmovd2m, KReg, Vec)                        //      AVX512_DQ
    3032             :   ASMJIT_INST_2x(vpmovdb, Vpmovdb, Vec, Vec)                           //      AVX512_F{kz}
    3033             :   ASMJIT_INST_2x(vpmovdb, Vpmovdb, Mem, Vec)                           //      AVX512_F{kz}
    3034             :   ASMJIT_INST_2x(vpmovdw, Vpmovdw, Vec, Vec)                           //      AVX512_F{kz}
    3035             :   ASMJIT_INST_2x(vpmovdw, Vpmovdw, Mem, Vec)                           //      AVX512_F{kz}
    3036             :   ASMJIT_INST_2x(vpmovm2b, Vpmovm2b, Vec, KReg)                        //      AVX512_BW
    3037             :   ASMJIT_INST_2x(vpmovm2d, Vpmovm2d, Vec, KReg)                        //      AVX512_DQ
    3038             :   ASMJIT_INST_2x(vpmovm2q, Vpmovm2q, Vec, KReg)                        //      AVX512_DQ
    3039             :   ASMJIT_INST_2x(vpmovm2w, Vpmovm2w, Vec, KReg)                        //      AVX512_BW
    3040             :   ASMJIT_INST_2x(vpmovmskb, Vpmovmskb, Gp, Vec)                        // AVX+
    3041             :   ASMJIT_INST_2x(vpmovq2m, Vpmovq2m, KReg, Vec)                        //      AVX512_DQ
    3042             :   ASMJIT_INST_2x(vpmovqb, Vpmovqb, Vec, Vec)                           //      AVX512_F{kz}
    3043             :   ASMJIT_INST_2x(vpmovqb, Vpmovqb, Mem, Vec)                           //      AVX512_F{kz}
    3044             :   ASMJIT_INST_2x(vpmovqd, Vpmovqd, Vec, Vec)                           //      AVX512_F{kz}
    3045             :   ASMJIT_INST_2x(vpmovqd, Vpmovqd, Mem, Vec)                           //      AVX512_F{kz}
    3046             :   ASMJIT_INST_2x(vpmovqw, Vpmovqw, Vec, Vec)                           //      AVX512_F{kz}
    3047             :   ASMJIT_INST_2x(vpmovqw, Vpmovqw, Mem, Vec)                           //      AVX512_F{kz}
    3048             :   ASMJIT_INST_2x(vpmovsdb, Vpmovsdb, Vec, Vec)                         //      AVX512_F{kz}
    3049             :   ASMJIT_INST_2x(vpmovsdb, Vpmovsdb, Mem, Vec)                         //      AVX512_F{kz}
    3050             :   ASMJIT_INST_2x(vpmovsdw, Vpmovsdw, Vec, Vec)                         //      AVX512_F{kz}
    3051             :   ASMJIT_INST_2x(vpmovsdw, Vpmovsdw, Mem, Vec)                         //      AVX512_F{kz}
    3052             :   ASMJIT_INST_2x(vpmovsqb, Vpmovsqb, Vec, Vec)                         //      AVX512_F{kz}
    3053             :   ASMJIT_INST_2x(vpmovsqb, Vpmovsqb, Mem, Vec)                         //      AVX512_F{kz}
    3054             :   ASMJIT_INST_2x(vpmovsqd, Vpmovsqd, Vec, Vec)                         //      AVX512_F{kz}
    3055             :   ASMJIT_INST_2x(vpmovsqd, Vpmovsqd, Mem, Vec)                         //      AVX512_F{kz}
    3056             :   ASMJIT_INST_2x(vpmovsqw, Vpmovsqw, Vec, Vec)                         //      AVX512_F{kz}
    3057             :   ASMJIT_INST_2x(vpmovsqw, Vpmovsqw, Mem, Vec)                         //      AVX512_F{kz}
    3058             :   ASMJIT_INST_2x(vpmovswb, Vpmovswb, Vec, Vec)                         //      AVX512_BW{kz}
    3059             :   ASMJIT_INST_2x(vpmovswb, Vpmovswb, Mem, Vec)                         //      AVX512_BW{kz}
    3060             :   ASMJIT_INST_2x(vpmovsxbd, Vpmovsxbd, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3061             :   ASMJIT_INST_2x(vpmovsxbd, Vpmovsxbd, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3062             :   ASMJIT_INST_2x(vpmovsxbq, Vpmovsxbq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3063             :   ASMJIT_INST_2x(vpmovsxbq, Vpmovsxbq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3064             :   ASMJIT_INST_2x(vpmovsxbw, Vpmovsxbw, Vec, Vec)                       // AVX+ AVX512_BW{kz}
    3065             :   ASMJIT_INST_2x(vpmovsxbw, Vpmovsxbw, Vec, Mem)                       // AVX+ AVX512_BW{kz}
    3066             :   ASMJIT_INST_2x(vpmovsxdq, Vpmovsxdq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3067             :   ASMJIT_INST_2x(vpmovsxdq, Vpmovsxdq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3068             :   ASMJIT_INST_2x(vpmovsxwd, Vpmovsxwd, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3069             :   ASMJIT_INST_2x(vpmovsxwd, Vpmovsxwd, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3070             :   ASMJIT_INST_2x(vpmovsxwq, Vpmovsxwq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3071             :   ASMJIT_INST_2x(vpmovsxwq, Vpmovsxwq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3072             :   ASMJIT_INST_2x(vpmovusdb, Vpmovusdb, Vec, Vec)                       //      AVX512_F{kz}
    3073             :   ASMJIT_INST_2x(vpmovusdb, Vpmovusdb, Mem, Vec)                       //      AVX512_F{kz}
    3074             :   ASMJIT_INST_2x(vpmovusdw, Vpmovusdw, Vec, Vec)                       //      AVX512_F{kz}
    3075             :   ASMJIT_INST_2x(vpmovusdw, Vpmovusdw, Mem, Vec)                       //      AVX512_F{kz}
    3076             :   ASMJIT_INST_2x(vpmovusqb, Vpmovusqb, Vec, Vec)                       //      AVX512_F{kz}
    3077             :   ASMJIT_INST_2x(vpmovusqb, Vpmovusqb, Mem, Vec)                       //      AVX512_F{kz}
    3078             :   ASMJIT_INST_2x(vpmovusqd, Vpmovusqd, Vec, Vec)                       //      AVX512_F{kz}
    3079             :   ASMJIT_INST_2x(vpmovusqd, Vpmovusqd, Mem, Vec)                       //      AVX512_F{kz}
    3080             :   ASMJIT_INST_2x(vpmovusqw, Vpmovusqw, Vec, Vec)                       //      AVX512_F{kz}
    3081             :   ASMJIT_INST_2x(vpmovusqw, Vpmovusqw, Mem, Vec)                       //      AVX512_F{kz}
    3082             :   ASMJIT_INST_2x(vpmovuswb, Vpmovuswb, Vec, Vec)                       //      AVX512_BW{kz}
    3083             :   ASMJIT_INST_2x(vpmovuswb, Vpmovuswb, Mem, Vec)                       //      AVX512_BW{kz}
    3084             :   ASMJIT_INST_2x(vpmovw2m, Vpmovw2m, KReg, Vec)                        //      AVX512_BW
    3085             :   ASMJIT_INST_2x(vpmovwb, Vpmovwb, Vec, Vec)                           //      AVX512_BW{kz}
    3086             :   ASMJIT_INST_2x(vpmovwb, Vpmovwb, Mem, Vec)                           //      AVX512_BW{kz}
    3087             :   ASMJIT_INST_2x(vpmovzxbd, Vpmovzxbd, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3088             :   ASMJIT_INST_2x(vpmovzxbd, Vpmovzxbd, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3089             :   ASMJIT_INST_2x(vpmovzxbq, Vpmovzxbq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3090             :   ASMJIT_INST_2x(vpmovzxbq, Vpmovzxbq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3091             :   ASMJIT_INST_2x(vpmovzxbw, Vpmovzxbw, Vec, Vec)                       // AVX+ AVX512_BW{kz}
    3092             :   ASMJIT_INST_2x(vpmovzxbw, Vpmovzxbw, Vec, Mem)                       // AVX+ AVX512_BW{kz}
    3093             :   ASMJIT_INST_2x(vpmovzxdq, Vpmovzxdq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3094             :   ASMJIT_INST_2x(vpmovzxdq, Vpmovzxdq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3095             :   ASMJIT_INST_2x(vpmovzxwd, Vpmovzxwd, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3096             :   ASMJIT_INST_2x(vpmovzxwd, Vpmovzxwd, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3097             :   ASMJIT_INST_2x(vpmovzxwq, Vpmovzxwq, Vec, Vec)                       // AVX+ AVX512_F{kz}
    3098             :   ASMJIT_INST_2x(vpmovzxwq, Vpmovzxwq, Vec, Mem)                       // AVX+ AVX512_F{kz}
    3099             :   ASMJIT_INST_3x(vpmuldq, Vpmuldq, Vec, Vec, Vec)                      // AVX  AVX512_F{kz|b64}
    3100             :   ASMJIT_INST_3x(vpmuldq, Vpmuldq, Vec, Vec, Mem)                      // AVX  AVX512_F{kz|b64}
    3101             :   ASMJIT_INST_3x(vpmulhrsw, Vpmulhrsw, Vec, Vec, Vec)                  // AVX+ AVX512_BW{kz}
    3102             :   ASMJIT_INST_3x(vpmulhrsw, Vpmulhrsw, Vec, Vec, Mem)                  // AVX+ AVX512_BW{kz}
    3103             :   ASMJIT_INST_3x(vpmulhuw, Vpmulhuw, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    3104             :   ASMJIT_INST_3x(vpmulhuw, Vpmulhuw, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    3105             :   ASMJIT_INST_3x(vpmulhw, Vpmulhw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3106             :   ASMJIT_INST_3x(vpmulhw, Vpmulhw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3107             :   ASMJIT_INST_3x(vpmulld, Vpmulld, Vec, Vec, Vec)                      // AVX+ AVX512_F{kz|b32}
    3108             :   ASMJIT_INST_3x(vpmulld, Vpmulld, Vec, Vec, Mem)                      // AVX+ AVX512_F{kz|b32}
    3109             :   ASMJIT_INST_3x(vpmullq, Vpmullq, Vec, Vec, Vec)                      //      AVX512_DQ{kz|b64}
    3110             :   ASMJIT_INST_3x(vpmullq, Vpmullq, Vec, Vec, Mem)                      //      AVX512_DQ{kz|b64}
    3111             :   ASMJIT_INST_3x(vpmullw, Vpmullw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3112             :   ASMJIT_INST_3x(vpmullw, Vpmullw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3113             :   ASMJIT_INST_3x(vpmultishiftqb, Vpmultishiftqb, Vec, Vec, Vec)        //      AVX512_VBMI{kz|b64}
    3114             :   ASMJIT_INST_3x(vpmultishiftqb, Vpmultishiftqb, Vec, Vec, Mem)        //      AVX512_VBMI{kz|b64}
    3115             :   ASMJIT_INST_3x(vpmuludq, Vpmuludq, Vec, Vec, Vec)                    // AVX+ AVX512_F{kz|b64}
    3116             :   ASMJIT_INST_3x(vpmuludq, Vpmuludq, Vec, Vec, Mem)                    // AVX+ AVX512_F{kz|b64}
    3117             :   ASMJIT_INST_2x(vpopcntb, Vpopcntb, Vec, Vec)                         //      AVX512_BITALG{kz|b32}
    3118             :   ASMJIT_INST_2x(vpopcntb, Vpopcntb, Vec, Mem)                         //      AVX512_BITALG{kz|b32}
    3119             :   ASMJIT_INST_2x(vpopcntd, Vpopcntd, Vec, Vec)                         //      AVX512_VPOPCNTDQ{kz|b32}
    3120             :   ASMJIT_INST_2x(vpopcntd, Vpopcntd, Vec, Mem)                         //      AVX512_VPOPCNTDQ{kz|b32}
    3121             :   ASMJIT_INST_2x(vpopcntq, Vpopcntq, Vec, Vec)                         //      AVX512_VPOPCNTDQ{kz|b64}
    3122             :   ASMJIT_INST_2x(vpopcntq, Vpopcntq, Vec, Mem)                         //      AVX512_VPOPCNTDQ{kz|b64}
    3123             :   ASMJIT_INST_2x(vpopcntw, Vpopcntw, Vec, Vec)                         //      AVX512_BITALG{kz|b32}
    3124             :   ASMJIT_INST_2x(vpopcntw, Vpopcntw, Vec, Mem)                         //      AVX512_BITALG{kz|b32}
    3125             :   ASMJIT_INST_3x(vpor, Vpor, Vec, Vec, Vec)                            // AV+
    3126             :   ASMJIT_INST_3x(vpor, Vpor, Vec, Vec, Mem)                            // AVX+
    3127             :   ASMJIT_INST_3x(vpord, Vpord, Vec, Vec, Vec)                          //      AVX512_F{kz|b32}
    3128             :   ASMJIT_INST_3x(vpord, Vpord, Vec, Vec, Mem)                          //      AVX512_F{kz|b32}
    3129             :   ASMJIT_INST_3x(vporq, Vporq, Vec, Vec, Vec)                          //      AVX512_F{kz|b64}
    3130             :   ASMJIT_INST_3x(vporq, Vporq, Vec, Vec, Mem)                          //      AVX512_F{kz|b64}
    3131             :   ASMJIT_INST_3x(vprold, Vprold, Vec, Vec, Imm)                        //      AVX512_F{kz|b32}
    3132             :   ASMJIT_INST_3x(vprold, Vprold, Vec, Mem, Imm)                        //      AVX512_F{kz|b32}
    3133             :   ASMJIT_INST_3x(vprolq, Vprolq, Vec, Vec, Imm)                        //      AVX512_F{kz|b64}
    3134             :   ASMJIT_INST_3x(vprolq, Vprolq, Vec, Mem, Imm)                        //      AVX512_F{kz|b64}
    3135             :   ASMJIT_INST_3x(vprolvd, Vprolvd, Vec, Vec, Vec)                      //      AVX512_F{kz|b32}
    3136             :   ASMJIT_INST_3x(vprolvd, Vprolvd, Vec, Vec, Mem)                      //      AVX512_F{kz|b32}
    3137             :   ASMJIT_INST_3x(vprolvq, Vprolvq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3138             :   ASMJIT_INST_3x(vprolvq, Vprolvq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3139             :   ASMJIT_INST_3x(vprord, Vprord, Vec, Vec, Imm)                        //      AVX512_F{kz|b32}
    3140             :   ASMJIT_INST_3x(vprord, Vprord, Vec, Mem, Imm)                        //      AVX512_F{kz|b32}
    3141             :   ASMJIT_INST_3x(vprorq, Vprorq, Vec, Vec, Imm)                        //      AVX512_F{kz|b64}
    3142             :   ASMJIT_INST_3x(vprorq, Vprorq, Vec, Mem, Imm)                        //      AVX512_F{kz|b64}
    3143             :   ASMJIT_INST_3x(vprorvd, Vprorvd, Vec, Vec, Vec)                      //      AVX512_F{kz|b32}
    3144             :   ASMJIT_INST_3x(vprorvd, Vprorvd, Vec, Vec, Mem)                      //      AVX512_F{kz|b32}
    3145             :   ASMJIT_INST_3x(vprorvq, Vprorvq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3146             :   ASMJIT_INST_3x(vprorvq, Vprorvq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3147             :   ASMJIT_INST_3x(vpsadbw, Vpsadbw, Vec, Vec, Vec)                      // AVX+ AVX512_BW
    3148             :   ASMJIT_INST_3x(vpsadbw, Vpsadbw, Vec, Vec, Mem)                      // AVX+ AVX512_BW
    3149             :   ASMJIT_INST_2x(vpscatterdd, Vpscatterdd, Mem, Vec)                   //      AVX512_F{k}
    3150             :   ASMJIT_INST_2x(vpscatterdq, Vpscatterdq, Mem, Vec)                   //      AVX512_F{k}
    3151             :   ASMJIT_INST_2x(vpscatterqd, Vpscatterqd, Mem, Vec)                   //      AVX512_F{k}
    3152             :   ASMJIT_INST_2x(vpscatterqq, Vpscatterqq, Mem, Vec)                   //      AVX512_F{k}
    3153             :   ASMJIT_INST_4x(vpshldd, Vpshldd, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3154             :   ASMJIT_INST_4x(vpshldd, Vpshldd, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3155             :   ASMJIT_INST_4x(vpshldq, Vpshldq, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3156             :   ASMJIT_INST_4x(vpshldq, Vpshldq, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3157             :   ASMJIT_INST_3x(vpshldvd, Vpshldvd, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3158             :   ASMJIT_INST_3x(vpshldvd, Vpshldvd, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3159             :   ASMJIT_INST_3x(vpshldvq, Vpshldvq, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3160             :   ASMJIT_INST_3x(vpshldvq, Vpshldvq, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3161             :   ASMJIT_INST_3x(vpshldvw, Vpshldvw, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3162             :   ASMJIT_INST_3x(vpshldvw, Vpshldvw, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3163             :   ASMJIT_INST_4x(vpshldw, Vpshldw, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3164             :   ASMJIT_INST_4x(vpshldw, Vpshldw, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3165             :   ASMJIT_INST_4x(vpshrdd, Vpshrdd, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3166             :   ASMJIT_INST_4x(vpshrdd, Vpshrdd, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3167             :   ASMJIT_INST_4x(vpshrdq, Vpshrdq, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3168             :   ASMJIT_INST_4x(vpshrdq, Vpshrdq, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3169             :   ASMJIT_INST_3x(vpshrdvd, Vpshrdvd, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3170             :   ASMJIT_INST_3x(vpshrdvd, Vpshrdvd, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3171             :   ASMJIT_INST_3x(vpshrdvq, Vpshrdvq, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3172             :   ASMJIT_INST_3x(vpshrdvq, Vpshrdvq, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3173             :   ASMJIT_INST_3x(vpshrdvw, Vpshrdvw, Vec, Vec, Vec)                    //      AVX512_VBMI2{kz}
    3174             :   ASMJIT_INST_3x(vpshrdvw, Vpshrdvw, Vec, Vec, Mem)                    //      AVX512_VBMI2{kz}
    3175             :   ASMJIT_INST_4x(vpshrdw, Vpshrdw, Vec, Vec, Vec, Imm)                 //      AVX512_VBMI2{kz}
    3176             :   ASMJIT_INST_4x(vpshrdw, Vpshrdw, Vec, Vec, Mem, Imm)                 //      AVX512_VBMI2{kz}
    3177             :   ASMJIT_INST_3x(vpshufb, Vpshufb, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3178             :   ASMJIT_INST_3x(vpshufb, Vpshufb, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3179             :   ASMJIT_INST_3x(vpshufbitqmb, Vpshufbitqmb, KReg, Vec, Vec)           //      AVX512_BITALG{k}
    3180             :   ASMJIT_INST_3x(vpshufbitqmb, Vpshufbitqmb, KReg, Vec, Mem)           //      AVX512_BITALG{k}
    3181             :   ASMJIT_INST_3x(vpshufd, Vpshufd, Vec, Vec, Imm)                      // AVX+ AVX512_F{kz|b32}
    3182             :   ASMJIT_INST_3x(vpshufd, Vpshufd, Vec, Mem, Imm)                      // AVX+ AVX512_F{kz|b32}
    3183             :   ASMJIT_INST_3x(vpshufhw, Vpshufhw, Vec, Vec, Imm)                    // AVX+ AVX512_BW{kz}
    3184             :   ASMJIT_INST_3x(vpshufhw, Vpshufhw, Vec, Mem, Imm)                    // AVX+ AVX512_BW{kz}
    3185             :   ASMJIT_INST_3x(vpshuflw, Vpshuflw, Vec, Vec, Imm)                    // AVX+ AVX512_BW{kz}
    3186             :   ASMJIT_INST_3x(vpshuflw, Vpshuflw, Vec, Mem, Imm)                    // AVX+ AVX512_BW{kz}
    3187             :   ASMJIT_INST_3x(vpsignb, Vpsignb, Vec, Vec, Vec)                      // AVX+
    3188             :   ASMJIT_INST_3x(vpsignb, Vpsignb, Vec, Vec, Mem)                      // AVX+
    3189             :   ASMJIT_INST_3x(vpsignd, Vpsignd, Vec, Vec, Vec)                      // AVX+
    3190             :   ASMJIT_INST_3x(vpsignd, Vpsignd, Vec, Vec, Mem)                      // AVX+
    3191             :   ASMJIT_INST_3x(vpsignw, Vpsignw, Vec, Vec, Vec)                      // AVX+
    3192             :   ASMJIT_INST_3x(vpsignw, Vpsignw, Vec, Vec, Mem)                      // AVX+
    3193             :   ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Imm)                        // AVX+ AVX512_F{kz|b32}
    3194             :   ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz}
    3195             :   ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz}
    3196             :   ASMJIT_INST_3x(vpslld, Vpslld, Vec, Mem, Imm)                        //      AVX512_F{kz|b32}
    3197             :   ASMJIT_INST_3x(vpslldq, Vpslldq, Vec, Vec, Imm)                      // AVX+ AVX512_BW
    3198             :   ASMJIT_INST_3x(vpslldq, Vpslldq, Vec, Mem, Imm)                      //      AVX512_BW
    3199             :   ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Imm)                        // AVX+ AVX512_F{kz|b64}
    3200             :   ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz}
    3201             :   ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz}
    3202             :   ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Mem, Imm)                        //      AVX512_F{kz|b64}
    3203             :   ASMJIT_INST_3x(vpsllvd, Vpsllvd, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b32}
    3204             :   ASMJIT_INST_3x(vpsllvd, Vpsllvd, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b32}
    3205             :   ASMJIT_INST_3x(vpsllvq, Vpsllvq, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b64}
    3206             :   ASMJIT_INST_3x(vpsllvq, Vpsllvq, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b64}
    3207             :   ASMJIT_INST_3x(vpsllvw, Vpsllvw, Vec, Vec, Vec)                      //      AVX512_BW{kz}
    3208             :   ASMJIT_INST_3x(vpsllvw, Vpsllvw, Vec, Vec, Mem)                      //      AVX512_BW{kz}
    3209             :   ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Imm)                        // AVX+ AVX512_BW{kz}
    3210             :   ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    3211             :   ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    3212             :   ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Mem, Imm)                        //      AVX512_BW{kz}
    3213             :   ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Imm)                        // AVX+ AVX512_F{kz|b32}
    3214             :   ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz}
    3215             :   ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz}
    3216             :   ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Mem, Imm)                        //      AVX512_F{kz|b32}
    3217             :   ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Vec)                        //      AVX512_F{kz}
    3218             :   ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Mem)                        //      AVX512_F{kz}
    3219             :   ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Imm)                        //      AVX512_F{kz|b64}
    3220             :   ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Mem, Imm)                        //      AVX512_F{kz|b64}
    3221             :   ASMJIT_INST_3x(vpsravd, Vpsravd, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b32}
    3222             :   ASMJIT_INST_3x(vpsravd, Vpsravd, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b32}
    3223             :   ASMJIT_INST_3x(vpsravq, Vpsravq, Vec, Vec, Vec)                      //      AVX512_F{kz|b64}
    3224             :   ASMJIT_INST_3x(vpsravq, Vpsravq, Vec, Vec, Mem)                      //      AVX512_F{kz|b64}
    3225             :   ASMJIT_INST_3x(vpsravw, Vpsravw, Vec, Vec, Vec)                      //      AVX512_BW{kz}
    3226             :   ASMJIT_INST_3x(vpsravw, Vpsravw, Vec, Vec, Mem)                      //      AVX512_BW{kz}
    3227             :   ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Imm)                        // AVX+ AVX512_BW{kz}
    3228             :   ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    3229             :   ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    3230             :   ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Mem, Imm)                        //      AVX512_BW{kz}
    3231             :   ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Imm)                        // AVX+ AVX512_F{kz|b32}
    3232             :   ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz}
    3233             :   ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz}
    3234             :   ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Mem, Imm)                        //      AVX512_F{kz|b32}
    3235             :   ASMJIT_INST_3x(vpsrldq, Vpsrldq, Vec, Vec, Imm)                      // AVX+ AVX512_BW
    3236             :   ASMJIT_INST_3x(vpsrldq, Vpsrldq, Vec, Mem, Imm)                      //      AVX512_BW
    3237             :   ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Imm)                        // AVX  AVX512_F{kz|b64}
    3238             :   ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Vec)                        // AVX  AVX512_F{kz}
    3239             :   ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Mem)                        // AVX  AVX512_F{kz}
    3240             :   ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Mem, Imm)                        //      AVX512_F{kz|b64}
    3241             :   ASMJIT_INST_3x(vpsrlvd, Vpsrlvd, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b32}
    3242             :   ASMJIT_INST_3x(vpsrlvd, Vpsrlvd, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b32}
    3243             :   ASMJIT_INST_3x(vpsrlvq, Vpsrlvq, Vec, Vec, Vec)                      // AVX2 AVX512_F{kz|b64}
    3244             :   ASMJIT_INST_3x(vpsrlvq, Vpsrlvq, Vec, Vec, Mem)                      // AVX2 AVX512_F{kz|b64}
    3245             :   ASMJIT_INST_3x(vpsrlvw, Vpsrlvw, Vec, Vec, Vec)                      //      AVX512_BW{kz}
    3246             :   ASMJIT_INST_3x(vpsrlvw, Vpsrlvw, Vec, Vec, Mem)                      //      AVX512_BW{kz}
    3247             :   ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Imm)                        // AVX+ AVX512_BW{kz}
    3248             :   ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    3249             :   ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    3250             :   ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Mem, Imm)                        //      AVX512_BW{kz}
    3251             :   ASMJIT_INST_3x(vpsubb, Vpsubb, Vec, Vec, Vec)                        // AVX+ AVX512_BW{kz}
    3252             :   ASMJIT_INST_3x(vpsubb, Vpsubb, Vec, Vec, Mem)                        // AVX+ AVX512_BW{kz}
    3253             :   ASMJIT_INST_3x(vpsubd, Vpsubd, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz|b32}
    3254             :   ASMJIT_INST_3x(vpsubd, Vpsubd, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz|b32}
    3255             :   ASMJIT_INST_3x(vpsubq, Vpsubq, Vec, Vec, Vec)                        // AVX+ AVX512_F{kz|b64}
    3256             :   ASMJIT_INST_3x(vpsubq, Vpsubq, Vec, Vec, Mem)                        // AVX+ AVX512_F{kz|b64}
    3257             :   ASMJIT_INST_3x(vpsubsb, Vpsubsb, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3258             :   ASMJIT_INST_3x(vpsubsb, Vpsubsb, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3259             :   ASMJIT_INST_3x(vpsubsw, Vpsubsw, Vec, Vec, Vec)                      // AVX+ AVX512_BW{kz}
    3260             :   ASMJIT_INST_3x(vpsubsw, Vpsubsw, Vec, Vec, Mem)                      // AVX+ AVX512_BW{kz}
    3261             :   ASMJIT_INST_3x(vpsubusb, Vpsubusb, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    3262             :   ASMJIT_INST_3x(vpsubusb, Vpsubusb, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    3263             :   ASMJIT_INST_3x(vpsubusw, Vpsubusw, Vec, Vec, Vec)                    // AVX+ AVX512_BW{kz}
    3264             :   ASMJIT_INST_3x(vpsubusw, Vpsubusw, Vec, Vec, Mem)                    // AVX+ AVX512_BW{kz}
    3265             :   ASMJIT_INST_3x(vpsubw, Vpsubw, Vec, Vec, Vec)                        // AVX  AVX512_BW{kz}
    3266             :   ASMJIT_INST_3x(vpsubw, Vpsubw, Vec, Vec, Mem)                        // AVX  AVX512_BW{kz}
    3267             :   ASMJIT_INST_4x(vpternlogd, Vpternlogd, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b32}
    3268             :   ASMJIT_INST_4x(vpternlogd, Vpternlogd, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b32}
    3269             :   ASMJIT_INST_4x(vpternlogq, Vpternlogq, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b64}
    3270             :   ASMJIT_INST_4x(vpternlogq, Vpternlogq, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b64}
    3271             :   ASMJIT_INST_2x(vptest, Vptest, Vec, Vec)                             // AVX
    3272             :   ASMJIT_INST_2x(vptest, Vptest, Vec, Mem)                             // AVX
    3273             :   ASMJIT_INST_3x(vptestmb, Vptestmb, KReg, Vec, Vec)                   //      AVX512_BW{k}
    3274             :   ASMJIT_INST_3x(vptestmb, Vptestmb, KReg, Vec, Mem)                   //      AVX512_BW{k}
    3275             :   ASMJIT_INST_3x(vptestmd, Vptestmd, KReg, Vec, Vec)                   //      AVX512_F{k|b32}
    3276             :   ASMJIT_INST_3x(vptestmd, Vptestmd, KReg, Vec, Mem)                   //      AVX512_F{k|b32}
    3277             :   ASMJIT_INST_3x(vptestmq, Vptestmq, KReg, Vec, Vec)                   //      AVX512_F{k|b64}
    3278             :   ASMJIT_INST_3x(vptestmq, Vptestmq, KReg, Vec, Mem)                   //      AVX512_F{k|b64}
    3279             :   ASMJIT_INST_3x(vptestmw, Vptestmw, KReg, Vec, Vec)                   //      AVX512_BW{k}
    3280             :   ASMJIT_INST_3x(vptestmw, Vptestmw, KReg, Vec, Mem)                   //      AVX512_BW{k}
    3281             :   ASMJIT_INST_3x(vptestnmb, Vptestnmb, KReg, Vec, Vec)                 //      AVX512_BW{k}
    3282             :   ASMJIT_INST_3x(vptestnmb, Vptestnmb, KReg, Vec, Mem)                 //      AVX512_BW{k}
    3283             :   ASMJIT_INST_3x(vptestnmd, Vptestnmd, KReg, Vec, Vec)                 //      AVX512_F{k|b32}
    3284             :   ASMJIT_INST_3x(vptestnmd, Vptestnmd, KReg, Vec, Mem)                 //      AVX512_F{k|b32}
    3285             :   ASMJIT_INST_3x(vptestnmq, Vptestnmq, KReg, Vec, Vec)                 //      AVX512_F{k|b64}
    3286             :   ASMJIT_INST_3x(vptestnmq, Vptestnmq, KReg, Vec, Mem)                 //      AVX512_F{k|b64}
    3287             :   ASMJIT_INST_3x(vptestnmw, Vptestnmw, KReg, Vec, Vec)                 //      AVX512_BW{k}
    3288             :   ASMJIT_INST_3x(vptestnmw, Vptestnmw, KReg, Vec, Mem)                 //      AVX512_BW{k}
    3289             :   ASMJIT_INST_3x(vpunpckhbw, Vpunpckhbw, Vec, Vec, Vec)                // AVX+ AVX512_BW{kz}
    3290             :   ASMJIT_INST_3x(vpunpckhbw, Vpunpckhbw, Vec, Vec, Mem)                // AVX+ AVX512_BW{kz}
    3291             :   ASMJIT_INST_3x(vpunpckhdq, Vpunpckhdq, Vec, Vec, Vec)                // AVX+ AVX512_F{kz|b32}
    3292             :   ASMJIT_INST_3x(vpunpckhdq, Vpunpckhdq, Vec, Vec, Mem)                // AVX+ AVX512_F{kz|b32}
    3293             :   ASMJIT_INST_3x(vpunpckhqdq, Vpunpckhqdq, Vec, Vec, Vec)              // AVX+ AVX512_F{kz|b64}
    3294             :   ASMJIT_INST_3x(vpunpckhqdq, Vpunpckhqdq, Vec, Vec, Mem)              // AVX+ AVX512_F{kz|b64}
    3295             :   ASMJIT_INST_3x(vpunpckhwd, Vpunpckhwd, Vec, Vec, Vec)                // AVX+ AVX512_BW{kz}
    3296             :   ASMJIT_INST_3x(vpunpckhwd, Vpunpckhwd, Vec, Vec, Mem)                // AVX+ AVX512_BW{kz}
    3297             :   ASMJIT_INST_3x(vpunpcklbw, Vpunpcklbw, Vec, Vec, Vec)                // AVX+ AVX512_BW{kz}
    3298             :   ASMJIT_INST_3x(vpunpcklbw, Vpunpcklbw, Vec, Vec, Mem)                // AVX+ AVX512_BW{kz}
    3299             :   ASMJIT_INST_3x(vpunpckldq, Vpunpckldq, Vec, Vec, Vec)                // AVX+ AVX512_F{kz|b32}
    3300             :   ASMJIT_INST_3x(vpunpckldq, Vpunpckldq, Vec, Vec, Mem)                // AVX+ AVX512_F{kz|b32}
    3301             :   ASMJIT_INST_3x(vpunpcklqdq, Vpunpcklqdq, Vec, Vec, Vec)              // AVX+ AVX512_F{kz|b64}
    3302             :   ASMJIT_INST_3x(vpunpcklqdq, Vpunpcklqdq, Vec, Vec, Mem)              // AVX+ AVX512_F{kz|b64}
    3303             :   ASMJIT_INST_3x(vpunpcklwd, Vpunpcklwd, Vec, Vec, Vec)                // AVX+ AVX512_BW{kz}
    3304             :   ASMJIT_INST_3x(vpunpcklwd, Vpunpcklwd, Vec, Vec, Mem)                // AVX+ AVX512_BW{kz}
    3305             :   ASMJIT_INST_3x(vpxor, Vpxor, Vec, Vec, Vec)                          // AVX+
    3306             :   ASMJIT_INST_3x(vpxor, Vpxor, Vec, Vec, Mem)                          // AVX+
    3307             :   ASMJIT_INST_3x(vpxord, Vpxord, Vec, Vec, Vec)                        //      AVX512_F{kz|b32}
    3308             :   ASMJIT_INST_3x(vpxord, Vpxord, Vec, Vec, Mem)                        //      AVX512_F{kz|b32}
    3309             :   ASMJIT_INST_3x(vpxorq, Vpxorq, Vec, Vec, Vec)                        //      AVX512_F{kz|b64}
    3310             :   ASMJIT_INST_3x(vpxorq, Vpxorq, Vec, Vec, Mem)                        //      AVX512_F{kz|b64}
    3311             :   ASMJIT_INST_4x(vrangepd, Vrangepd, Vec, Vec, Vec, Imm)               //      AVX512_DQ{kz|b64}
    3312             :   ASMJIT_INST_4x(vrangepd, Vrangepd, Vec, Vec, Mem, Imm)               //      AVX512_DQ{kz|b64}
    3313             :   ASMJIT_INST_4x(vrangeps, Vrangeps, Vec, Vec, Vec, Imm)               //      AVX512_DQ{kz|b32}
    3314             :   ASMJIT_INST_4x(vrangeps, Vrangeps, Vec, Vec, Mem, Imm)               //      AVX512_DQ{kz|b32}
    3315             :   ASMJIT_INST_4x(vrangesd, Vrangesd, Xmm, Xmm, Xmm, Imm)               //      AVX512_DQ{kz|sae}
    3316             :   ASMJIT_INST_4x(vrangesd, Vrangesd, Xmm, Xmm, Mem, Imm)               //      AVX512_DQ{kz|sae}
    3317             :   ASMJIT_INST_4x(vrangess, Vrangess, Xmm, Xmm, Xmm, Imm)               //      AVX512_DQ{kz|sae}
    3318             :   ASMJIT_INST_4x(vrangess, Vrangess, Xmm, Xmm, Mem, Imm)               //      AVX512_DQ{kz|sae}
    3319             :   ASMJIT_INST_2x(vrcp14pd, Vrcp14pd, Vec, Vec)                         //      AVX512_F{kz|b64}
    3320             :   ASMJIT_INST_2x(vrcp14pd, Vrcp14pd, Vec, Mem)                         //      AVX512_F{kz|b64}
    3321             :   ASMJIT_INST_2x(vrcp14ps, Vrcp14ps, Vec, Vec)                         //      AVX512_F{kz|b32}
    3322             :   ASMJIT_INST_2x(vrcp14ps, Vrcp14ps, Vec, Mem)                         //      AVX512_F{kz|b32}
    3323             :   ASMJIT_INST_3x(vrcp14sd, Vrcp14sd, Xmm, Xmm, Xmm)                    //      AVX512_F{kz}
    3324             :   ASMJIT_INST_3x(vrcp14sd, Vrcp14sd, Xmm, Xmm, Mem)                    //      AVX512_F{kz}
    3325             :   ASMJIT_INST_3x(vrcp14ss, Vrcp14ss, Xmm, Xmm, Xmm)                    //      AVX512_F{kz}
    3326             :   ASMJIT_INST_3x(vrcp14ss, Vrcp14ss, Xmm, Xmm, Mem)                    //      AVX512_F{kz}
    3327             :   ASMJIT_INST_2x(vrcp28pd, Vrcp28pd, Vec, Vec)                         //      AVX512_ER{kz|sae|b64}
    3328             :   ASMJIT_INST_2x(vrcp28pd, Vrcp28pd, Vec, Mem)                         //      AVX512_ER{kz|sae|b64}
    3329             :   ASMJIT_INST_2x(vrcp28ps, Vrcp28ps, Vec, Vec)                         //      AVX512_ER{kz|sae|b32}
    3330             :   ASMJIT_INST_2x(vrcp28ps, Vrcp28ps, Vec, Mem)                         //      AVX512_ER{kz|sae|b32}
    3331             :   ASMJIT_INST_3x(vrcp28sd, Vrcp28sd, Xmm, Xmm, Xmm)                    //      AVX512_ER{kz|sae}
    3332             :   ASMJIT_INST_3x(vrcp28sd, Vrcp28sd, Xmm, Xmm, Mem)                    //      AVX512_ER{kz|sae}
    3333             :   ASMJIT_INST_3x(vrcp28ss, Vrcp28ss, Xmm, Xmm, Xmm)                    //      AVX512_ER{kz|sae}
    3334             :   ASMJIT_INST_3x(vrcp28ss, Vrcp28ss, Xmm, Xmm, Mem)                    //      AVX512_ER{kz|sae}
    3335             :   ASMJIT_INST_2x(vrcpps, Vrcpps, Vec, Vec)                             // AVX
    3336             :   ASMJIT_INST_2x(vrcpps, Vrcpps, Vec, Mem)                             // AVX
    3337             :   ASMJIT_INST_3x(vrcpss, Vrcpss, Xmm, Xmm, Xmm)                        // AVX
    3338             :   ASMJIT_INST_3x(vrcpss, Vrcpss, Xmm, Xmm, Mem)                        // AVX
    3339             :   ASMJIT_INST_3x(vreducepd, Vreducepd, Vec, Vec, Imm)                  //      AVX512_DQ{kz|b64}
    3340             :   ASMJIT_INST_3x(vreducepd, Vreducepd, Vec, Mem, Imm)                  //      AVX512_DQ{kz|b64}
    3341             :   ASMJIT_INST_3x(vreduceps, Vreduceps, Vec, Vec, Imm)                  //      AVX512_DQ{kz|b32}
    3342             :   ASMJIT_INST_3x(vreduceps, Vreduceps, Vec, Mem, Imm)                  //      AVX512_DQ{kz|b32}
    3343             :   ASMJIT_INST_4x(vreducesd, Vreducesd, Xmm, Xmm, Xmm, Imm)             //      AVX512_DQ{kz}
    3344             :   ASMJIT_INST_4x(vreducesd, Vreducesd, Xmm, Xmm, Mem, Imm)             //      AVX512_DQ{kz}
    3345             :   ASMJIT_INST_4x(vreducess, Vreducess, Xmm, Xmm, Xmm, Imm)             //      AVX512_DQ{kz}
    3346             :   ASMJIT_INST_4x(vreducess, Vreducess, Xmm, Xmm, Mem, Imm)             //      AVX512_DQ{kz}
    3347             :   ASMJIT_INST_3x(vrndscalepd, Vrndscalepd, Vec, Vec, Imm)              //      AVX512_F{kz|b64}
    3348             :   ASMJIT_INST_3x(vrndscalepd, Vrndscalepd, Vec, Mem, Imm)              //      AVX512_F{kz|b64}
    3349             :   ASMJIT_INST_3x(vrndscaleps, Vrndscaleps, Vec, Vec, Imm)              //      AVX512_F{kz|b32}
    3350             :   ASMJIT_INST_3x(vrndscaleps, Vrndscaleps, Vec, Mem, Imm)              //      AVX512_F{kz|b32}
    3351             :   ASMJIT_INST_4x(vrndscalesd, Vrndscalesd, Xmm, Xmm, Xmm, Imm)         //      AVX512_F{kz|sae}
    3352             :   ASMJIT_INST_4x(vrndscalesd, Vrndscalesd, Xmm, Xmm, Mem, Imm)         //      AVX512_F{kz|sae}
    3353             :   ASMJIT_INST_4x(vrndscaless, Vrndscaless, Xmm, Xmm, Xmm, Imm)         //      AVX512_F{kz|sae}
    3354             :   ASMJIT_INST_4x(vrndscaless, Vrndscaless, Xmm, Xmm, Mem, Imm)         //      AVX512_F{kz|sae}
    3355             :   ASMJIT_INST_3x(vroundpd, Vroundpd, Vec, Vec, Imm)                    // AVX
    3356             :   ASMJIT_INST_3x(vroundpd, Vroundpd, Vec, Mem, Imm)                    // AVX
    3357             :   ASMJIT_INST_3x(vroundps, Vroundps, Vec, Vec, Imm)                    // AVX
    3358             :   ASMJIT_INST_3x(vroundps, Vroundps, Vec, Mem, Imm)                    // AVX
    3359           6 :   ASMJIT_INST_4x(vroundsd, Vroundsd, Xmm, Xmm, Xmm, Imm)               // AVX
    3360             :   ASMJIT_INST_4x(vroundsd, Vroundsd, Xmm, Xmm, Mem, Imm)               // AVX
    3361             :   ASMJIT_INST_4x(vroundss, Vroundss, Xmm, Xmm, Xmm, Imm)               // AVX
    3362             :   ASMJIT_INST_4x(vroundss, Vroundss, Xmm, Xmm, Mem, Imm)               // AVX
    3363             :   ASMJIT_INST_2x(vrsqrt14pd, Vrsqrt14pd, Vec, Vec)                     //      AVX512_F{kz|b64}
    3364             :   ASMJIT_INST_2x(vrsqrt14pd, Vrsqrt14pd, Vec, Mem)                     //      AVX512_F{kz|b64}
    3365             :   ASMJIT_INST_2x(vrsqrt14ps, Vrsqrt14ps, Vec, Vec)                     //      AVX512_F{kz|b32}
    3366             :   ASMJIT_INST_2x(vrsqrt14ps, Vrsqrt14ps, Vec, Mem)                     //      AVX512_F{kz|b32}
    3367             :   ASMJIT_INST_3x(vrsqrt14sd, Vrsqrt14sd, Xmm, Xmm, Xmm)                //      AVX512_F{kz}
    3368             :   ASMJIT_INST_3x(vrsqrt14sd, Vrsqrt14sd, Xmm, Xmm, Mem)                //      AVX512_F{kz}
    3369             :   ASMJIT_INST_3x(vrsqrt14ss, Vrsqrt14ss, Xmm, Xmm, Xmm)                //      AVX512_F{kz}
    3370             :   ASMJIT_INST_3x(vrsqrt14ss, Vrsqrt14ss, Xmm, Xmm, Mem)                //      AVX512_F{kz}
    3371             :   ASMJIT_INST_2x(vrsqrt28pd, Vrsqrt28pd, Vec, Vec)                     //      AVX512_ER{kz|sae|b64}
    3372             :   ASMJIT_INST_2x(vrsqrt28pd, Vrsqrt28pd, Vec, Mem)                     //      AVX512_ER{kz|sae|b64}
    3373             :   ASMJIT_INST_2x(vrsqrt28ps, Vrsqrt28ps, Vec, Vec)                     //      AVX512_ER{kz|sae|b32}
    3374             :   ASMJIT_INST_2x(vrsqrt28ps, Vrsqrt28ps, Vec, Mem)                     //      AVX512_ER{kz|sae|b32}
    3375             :   ASMJIT_INST_3x(vrsqrt28sd, Vrsqrt28sd, Xmm, Xmm, Xmm)                //      AVX512_ER{kz|sae}
    3376             :   ASMJIT_INST_3x(vrsqrt28sd, Vrsqrt28sd, Xmm, Xmm, Mem)                //      AVX512_ER{kz|sae}
    3377             :   ASMJIT_INST_3x(vrsqrt28ss, Vrsqrt28ss, Xmm, Xmm, Xmm)                //      AVX512_ER{kz|sae}
    3378             :   ASMJIT_INST_3x(vrsqrt28ss, Vrsqrt28ss, Xmm, Xmm, Mem)                //      AVX512_ER{kz|sae}
    3379             :   ASMJIT_INST_2x(vrsqrtps, Vrsqrtps, Vec, Vec)                         // AVX
    3380             :   ASMJIT_INST_2x(vrsqrtps, Vrsqrtps, Vec, Mem)                         // AVX
    3381             :   ASMJIT_INST_3x(vrsqrtss, Vrsqrtss, Xmm, Xmm, Xmm)                    // AVX
    3382             :   ASMJIT_INST_3x(vrsqrtss, Vrsqrtss, Xmm, Xmm, Mem)                    // AVX
    3383             :   ASMJIT_INST_3x(vscalefpd, Vscalefpd, Vec, Vec, Vec)                  //      AVX512_F{kz|b64}
    3384             :   ASMJIT_INST_3x(vscalefpd, Vscalefpd, Vec, Vec, Mem)                  //      AVX512_F{kz|b64}
    3385             :   ASMJIT_INST_3x(vscalefps, Vscalefps, Vec, Vec, Vec)                  //      AVX512_F{kz|b32}
    3386             :   ASMJIT_INST_3x(vscalefps, Vscalefps, Vec, Vec, Mem)                  //      AVX512_F{kz|b32}
    3387             :   ASMJIT_INST_3x(vscalefsd, Vscalefsd, Xmm, Xmm, Xmm)                  //      AVX512_F{kz|er}
    3388             :   ASMJIT_INST_3x(vscalefsd, Vscalefsd, Xmm, Xmm, Mem)                  //      AVX512_F{kz|er}
    3389             :   ASMJIT_INST_3x(vscalefss, Vscalefss, Xmm, Xmm, Xmm)                  //      AVX512_F{kz|er}
    3390             :   ASMJIT_INST_3x(vscalefss, Vscalefss, Xmm, Xmm, Mem)                  //      AVX512_F{kz|er}
    3391             :   ASMJIT_INST_2x(vscatterdpd, Vscatterdpd, Mem, Vec)                   //      AVX512_F{k}
    3392             :   ASMJIT_INST_2x(vscatterdps, Vscatterdps, Mem, Vec)                   //      AVX512_F{k}
    3393             :   ASMJIT_INST_1x(vscatterpf0dpd, Vscatterpf0dpd, Mem)                  //      AVX512_PF{k}
    3394             :   ASMJIT_INST_1x(vscatterpf0dps, Vscatterpf0dps, Mem)                  //      AVX512_PF{k}
    3395             :   ASMJIT_INST_1x(vscatterpf0qpd, Vscatterpf0qpd, Mem)                  //      AVX512_PF{k}
    3396             :   ASMJIT_INST_1x(vscatterpf0qps, Vscatterpf0qps, Mem)                  //      AVX512_PF{k}
    3397             :   ASMJIT_INST_1x(vscatterpf1dpd, Vscatterpf1dpd, Mem)                  //      AVX512_PF{k}
    3398             :   ASMJIT_INST_1x(vscatterpf1dps, Vscatterpf1dps, Mem)                  //      AVX512_PF{k}
    3399             :   ASMJIT_INST_1x(vscatterpf1qpd, Vscatterpf1qpd, Mem)                  //      AVX512_PF{k}
    3400             :   ASMJIT_INST_1x(vscatterpf1qps, Vscatterpf1qps, Mem)                  //      AVX512_PF{k}
    3401             :   ASMJIT_INST_2x(vscatterqpd, Vscatterqpd, Mem, Vec)                   //      AVX512_F{k}
    3402             :   ASMJIT_INST_2x(vscatterqps, Vscatterqps, Mem, Vec)                   //      AVX512_F{k}
    3403             :   ASMJIT_INST_4x(vshuff32x4, Vshuff32x4, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b32}
    3404             :   ASMJIT_INST_4x(vshuff32x4, Vshuff32x4, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b32}
    3405             :   ASMJIT_INST_4x(vshuff64x2, Vshuff64x2, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b64}
    3406             :   ASMJIT_INST_4x(vshuff64x2, Vshuff64x2, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b64}
    3407             :   ASMJIT_INST_4x(vshufi32x4, Vshufi32x4, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b32}
    3408             :   ASMJIT_INST_4x(vshufi32x4, Vshufi32x4, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b32}
    3409             :   ASMJIT_INST_4x(vshufi64x2, Vshufi64x2, Vec, Vec, Vec, Imm)           //      AVX512_F{kz|b64}
    3410             :   ASMJIT_INST_4x(vshufi64x2, Vshufi64x2, Vec, Vec, Mem, Imm)           //      AVX512_F{kz|b64}
    3411             :   ASMJIT_INST_4x(vshufpd, Vshufpd, Vec, Vec, Vec, Imm)                 // AVX  AVX512_F{kz|b32}
    3412             :   ASMJIT_INST_4x(vshufpd, Vshufpd, Vec, Vec, Mem, Imm)                 // AVX  AVX512_F{kz|b32}
    3413             :   ASMJIT_INST_4x(vshufps, Vshufps, Vec, Vec, Vec, Imm)                 // AVX  AVX512_F{kz|b64}
    3414             :   ASMJIT_INST_4x(vshufps, Vshufps, Vec, Vec, Mem, Imm)                 // AVX  AVX512_F{kz|b64}
    3415             :   ASMJIT_INST_2x(vsqrtpd, Vsqrtpd, Vec, Vec)                           // AVX  AVX512_F{kz|b64}
    3416             :   ASMJIT_INST_2x(vsqrtpd, Vsqrtpd, Vec, Mem)                           // AVX  AVX512_F{kz|b64}
    3417             :   ASMJIT_INST_2x(vsqrtps, Vsqrtps, Vec, Vec)                           // AVX  AVX512_F{kz|b32}
    3418             :   ASMJIT_INST_2x(vsqrtps, Vsqrtps, Vec, Mem)                           // AVX  AVX512_F{kz|b32}
    3419        1645 :   ASMJIT_INST_3x(vsqrtsd, Vsqrtsd, Xmm, Xmm, Xmm)                      // AVX  AVX512_F{kz|er}
    3420             :   ASMJIT_INST_3x(vsqrtsd, Vsqrtsd, Xmm, Xmm, Mem)                      // AVX  AVX512_F{kz|er}
    3421             :   ASMJIT_INST_3x(vsqrtss, Vsqrtss, Xmm, Xmm, Xmm)                      // AVX  AVX512_F{kz|er}
    3422             :   ASMJIT_INST_3x(vsqrtss, Vsqrtss, Xmm, Xmm, Mem)                      // AVX  AVX512_F{kz|er}
    3423             :   ASMJIT_INST_1x(vstmxcsr, Vstmxcsr, Mem)                              // AVX
    3424             :   ASMJIT_INST_3x(vsubpd, Vsubpd, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b64}
    3425             :   ASMJIT_INST_3x(vsubpd, Vsubpd, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b64}
    3426             :   ASMJIT_INST_3x(vsubps, Vsubps, Vec, Vec, Vec)                        // AVX  AVX512_F{kz|b32}
    3427             :   ASMJIT_INST_3x(vsubps, Vsubps, Vec, Vec, Mem)                        // AVX  AVX512_F{kz|b32}
    3428        6741 :   ASMJIT_INST_3x(vsubsd, Vsubsd, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    3429             :   ASMJIT_INST_3x(vsubsd, Vsubsd, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    3430             :   ASMJIT_INST_3x(vsubss, Vsubss, Xmm, Xmm, Xmm)                        // AVX  AVX512_F{kz|er}
    3431             :   ASMJIT_INST_3x(vsubss, Vsubss, Xmm, Xmm, Mem)                        // AVX  AVX512_F{kz|er}
    3432             :   ASMJIT_INST_2x(vtestpd, Vtestpd, Vec, Vec)                           // AVX
    3433             :   ASMJIT_INST_2x(vtestpd, Vtestpd, Vec, Mem)                           // AVX
    3434             :   ASMJIT_INST_2x(vtestps, Vtestps, Vec, Vec)                           // AVX
    3435             :   ASMJIT_INST_2x(vtestps, Vtestps, Vec, Mem)                           // AVX
    3436             :   ASMJIT_INST_2x(vucomisd, Vucomisd, Xmm, Xmm)                         // AVX  AVX512_F{sae}
    3437             :   ASMJIT_INST_2x(vucomisd, Vucomisd, Xmm, Mem)                         // AVX  AVX512_F{sae}
    3438             :   ASMJIT_INST_2x(vucomiss, Vucomiss, Xmm, Xmm)                         // AVX  AVX512_F{sae}
    3439             :   ASMJIT_INST_2x(vucomiss, Vucomiss, Xmm, Mem)                         // AVX  AVX512_F{sae}
    3440             :   ASMJIT_INST_3x(vunpckhpd, Vunpckhpd, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b64}
    3441             :   ASMJIT_INST_3x(vunpckhpd, Vunpckhpd, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b64}
    3442             :   ASMJIT_INST_3x(vunpckhps, Vunpckhps, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b32}
    3443             :   ASMJIT_INST_3x(vunpckhps, Vunpckhps, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b32}
    3444             :   ASMJIT_INST_3x(vunpcklpd, Vunpcklpd, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b64}
    3445             :   ASMJIT_INST_3x(vunpcklpd, Vunpcklpd, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b64}
    3446             :   ASMJIT_INST_3x(vunpcklps, Vunpcklps, Vec, Vec, Vec)                  // AVX  AVX512_F{kz|b32}
    3447             :   ASMJIT_INST_3x(vunpcklps, Vunpcklps, Vec, Vec, Mem)                  // AVX  AVX512_F{kz|b32}
    3448             :   ASMJIT_INST_3x(vxorpd, Vxorpd, Vec, Vec, Vec)                        // AVX  AVX512_DQ{kz|b64}
    3449             :   ASMJIT_INST_3x(vxorpd, Vxorpd, Vec, Vec, Mem)                        // AVX  AVX512_DQ{kz|b64}
    3450        4680 :   ASMJIT_INST_3x(vxorps, Vxorps, Vec, Vec, Vec)                        // AVX  AVX512_DQ{kz|b32}
    3451             :   ASMJIT_INST_3x(vxorps, Vxorps, Vec, Vec, Mem)                        // AVX  AVX512_DQ{kz|b32}
    3452             :   ASMJIT_INST_0x(vzeroall, Vzeroall)                                   // AVX
    3453           0 :   ASMJIT_INST_0x(vzeroupper, Vzeroupper)                               // AVX
    3454             : 
    3455             :   //! \}
    3456             : 
    3457             :   //! \name FMA4 Instructions
    3458             :   //! \{
    3459             : 
    3460             :   ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Vec, Vec)               // FMA4
    3461             :   ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Mem, Vec)               // FMA4
    3462             :   ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Vec, Mem)               // FMA4
    3463             :   ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Vec, Vec)               // FMA4
    3464             :   ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Mem, Vec)               // FMA4
    3465             :   ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Vec, Mem)               // FMA4
    3466             :   ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Xmm, Xmm)               // FMA4
    3467             :   ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Mem, Xmm)               // FMA4
    3468             :   ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Xmm, Mem)               // FMA4
    3469             :   ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Xmm, Xmm)               // FMA4
    3470             :   ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Mem, Xmm)               // FMA4
    3471             :   ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Xmm, Mem)               // FMA4
    3472             :   ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Vec, Vec)         // FMA4
    3473             :   ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Mem, Vec)         // FMA4
    3474             :   ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Vec, Mem)         // FMA4
    3475             :   ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Vec, Vec)         // FMA4
    3476             :   ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Mem, Vec)         // FMA4
    3477             :   ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Vec, Mem)         // FMA4
    3478             :   ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Vec, Vec)         // FMA4
    3479             :   ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Mem, Vec)         // FMA4
    3480             :   ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Vec, Mem)         // FMA4
    3481             :   ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Vec, Vec)         // FMA4
    3482             :   ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Mem, Vec)         // FMA4
    3483             :   ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Vec, Mem)         // FMA4
    3484             :   ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Vec, Vec)               // FMA4
    3485             :   ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Mem, Vec)               // FMA4
    3486             :   ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Vec, Mem)               // FMA4
    3487             :   ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Vec, Vec)               // FMA4
    3488             :   ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Mem, Vec)               // FMA4
    3489             :   ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Vec, Mem)               // FMA4
    3490             :   ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Xmm, Xmm)               // FMA4
    3491             :   ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Mem, Xmm)               // FMA4
    3492             :   ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Xmm, Mem)               // FMA4
    3493             :   ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Xmm, Xmm)               // FMA4
    3494             :   ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Mem, Xmm)               // FMA4
    3495             :   ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Xmm, Mem)               // FMA4
    3496             :   ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Vec, Vec)             // FMA4
    3497             :   ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Mem, Vec)             // FMA4
    3498             :   ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Vec, Mem)             // FMA4
    3499             :   ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Vec, Vec)             // FMA4
    3500             :   ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Mem, Vec)             // FMA4
    3501             :   ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Vec, Mem)             // FMA4
    3502             :   ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Xmm, Xmm)             // FMA4
    3503             :   ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Mem, Xmm)             // FMA4
    3504             :   ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Xmm, Mem)             // FMA4
    3505             :   ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Xmm, Xmm)             // FMA4
    3506             :   ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Mem, Xmm)             // FMA4
    3507             :   ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Xmm, Mem)             // FMA4
    3508             :   ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Vec, Vec)             // FMA4
    3509             :   ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Mem, Vec)             // FMA4
    3510             :   ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Vec, Mem)             // FMA4
    3511             :   ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Vec, Vec)             // FMA4
    3512             :   ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Mem, Vec)             // FMA4
    3513             :   ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Vec, Mem)             // FMA4
    3514             :   ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Xmm, Xmm)             // FMA4
    3515             :   ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Mem, Xmm)             // FMA4
    3516             :   ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Xmm, Mem)             // FMA4
    3517             :   ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Xmm, Xmm)             // FMA4
    3518             :   ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Mem, Xmm)             // FMA4
    3519             :   ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Xmm, Mem)             // FMA4
    3520             : 
    3521             :   //! \}
    3522             : 
    3523             :   //! \name XOP Instructions (Deprecated)
    3524             :   //! \{
    3525             : 
    3526             :   ASMJIT_INST_2x(vfrczpd, Vfrczpd, Vec, Vec)                           // XOP
    3527             :   ASMJIT_INST_2x(vfrczpd, Vfrczpd, Vec, Mem)                           // XOP
    3528             :   ASMJIT_INST_2x(vfrczps, Vfrczps, Vec, Vec)                           // XOP
    3529             :   ASMJIT_INST_2x(vfrczps, Vfrczps, Vec, Mem)                           // XOP
    3530             :   ASMJIT_INST_2x(vfrczsd, Vfrczsd, Xmm, Xmm)                           // XOP
    3531             :   ASMJIT_INST_2x(vfrczsd, Vfrczsd, Xmm, Mem)                           // XOP
    3532             :   ASMJIT_INST_2x(vfrczss, Vfrczss, Xmm, Xmm)                           // XOP
    3533             :   ASMJIT_INST_2x(vfrczss, Vfrczss, Xmm, Mem)                           // XOP
    3534             :   ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Vec, Vec)                   // XOP
    3535             :   ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Mem, Vec)                   // XOP
    3536             :   ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Vec, Mem)                   // XOP
    3537             :   ASMJIT_INST_4x(vpcomb, Vpcomb, Xmm, Xmm, Xmm, Imm)                   // XOP
    3538             :   ASMJIT_INST_4x(vpcomb, Vpcomb, Xmm, Xmm, Mem, Imm)                   // XOP
    3539             :   ASMJIT_INST_4x(vpcomd, Vpcomd, Xmm, Xmm, Xmm, Imm)                   // XOP
    3540             :   ASMJIT_INST_4x(vpcomd, Vpcomd, Xmm, Xmm, Mem, Imm)                   // XOP
    3541             :   ASMJIT_INST_4x(vpcomq, Vpcomq, Xmm, Xmm, Xmm, Imm)                   // XOP
    3542             :   ASMJIT_INST_4x(vpcomq, Vpcomq, Xmm, Xmm, Mem, Imm)                   // XOP
    3543             :   ASMJIT_INST_4x(vpcomw, Vpcomw, Xmm, Xmm, Xmm, Imm)                   // XOP
    3544             :   ASMJIT_INST_4x(vpcomw, Vpcomw, Xmm, Xmm, Mem, Imm)                   // XOP
    3545             :   ASMJIT_INST_4x(vpcomub, Vpcomub, Xmm, Xmm, Xmm, Imm)                 // XOP
    3546             :   ASMJIT_INST_4x(vpcomub, Vpcomub, Xmm, Xmm, Mem, Imm)                 // XOP
    3547             :   ASMJIT_INST_4x(vpcomud, Vpcomud, Xmm, Xmm, Xmm, Imm)                 // XOP
    3548             :   ASMJIT_INST_4x(vpcomud, Vpcomud, Xmm, Xmm, Mem, Imm)                 // XOP
    3549             :   ASMJIT_INST_4x(vpcomuq, Vpcomuq, Xmm, Xmm, Xmm, Imm)                 // XOP
    3550             :   ASMJIT_INST_4x(vpcomuq, Vpcomuq, Xmm, Xmm, Mem, Imm)                 // XOP
    3551             :   ASMJIT_INST_4x(vpcomuw, Vpcomuw, Xmm, Xmm, Xmm, Imm)                 // XOP
    3552             :   ASMJIT_INST_4x(vpcomuw, Vpcomuw, Xmm, Xmm, Mem, Imm)                 // XOP
    3553             :   ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Vec, Vec, Imm)      // XOP
    3554             :   ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Mem, Vec, Imm)      // XOP
    3555             :   ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Vec, Mem, Imm)      // XOP
    3556             :   ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Vec, Vec, Imm)      // XOP
    3557             :   ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Mem, Vec, Imm)      // XOP
    3558             :   ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Vec, Mem, Imm)      // XOP
    3559             :   ASMJIT_INST_2x(vphaddbd, Vphaddbd, Xmm, Xmm)                         // XOP
    3560             :   ASMJIT_INST_2x(vphaddbd, Vphaddbd, Xmm, Mem)                         // XOP
    3561             :   ASMJIT_INST_2x(vphaddbq, Vphaddbq, Xmm, Xmm)                         // XOP
    3562             :   ASMJIT_INST_2x(vphaddbq, Vphaddbq, Xmm, Mem)                         // XOP
    3563             :   ASMJIT_INST_2x(vphaddbw, Vphaddbw, Xmm, Xmm)                         // XOP
    3564             :   ASMJIT_INST_2x(vphaddbw, Vphaddbw, Xmm, Mem)                         // XOP
    3565             :   ASMJIT_INST_2x(vphadddq, Vphadddq, Xmm, Xmm)                         // XOP
    3566             :   ASMJIT_INST_2x(vphadddq, Vphadddq, Xmm, Mem)                         // XOP
    3567             :   ASMJIT_INST_2x(vphaddwd, Vphaddwd, Xmm, Xmm)                         // XOP
    3568             :   ASMJIT_INST_2x(vphaddwd, Vphaddwd, Xmm, Mem)                         // XOP
    3569             :   ASMJIT_INST_2x(vphaddwq, Vphaddwq, Xmm, Xmm)                         // XOP
    3570             :   ASMJIT_INST_2x(vphaddwq, Vphaddwq, Xmm, Mem)                         // XOP
    3571             :   ASMJIT_INST_2x(vphaddubd, Vphaddubd, Xmm, Xmm)                       // XOP
    3572             :   ASMJIT_INST_2x(vphaddubd, Vphaddubd, Xmm, Mem)                       // XOP
    3573             :   ASMJIT_INST_2x(vphaddubq, Vphaddubq, Xmm, Xmm)                       // XOP
    3574             :   ASMJIT_INST_2x(vphaddubq, Vphaddubq, Xmm, Mem)                       // XOP
    3575             :   ASMJIT_INST_2x(vphaddubw, Vphaddubw, Xmm, Xmm)                       // XOP
    3576             :   ASMJIT_INST_2x(vphaddubw, Vphaddubw, Xmm, Mem)                       // XOP
    3577             :   ASMJIT_INST_2x(vphaddudq, Vphaddudq, Xmm, Xmm)                       // XOP
    3578             :   ASMJIT_INST_2x(vphaddudq, Vphaddudq, Xmm, Mem)                       // XOP
    3579             :   ASMJIT_INST_2x(vphadduwd, Vphadduwd, Xmm, Xmm)                       // XOP
    3580             :   ASMJIT_INST_2x(vphadduwd, Vphadduwd, Xmm, Mem)                       // XOP
    3581             :   ASMJIT_INST_2x(vphadduwq, Vphadduwq, Xmm, Xmm)                       // XOP
    3582             :   ASMJIT_INST_2x(vphadduwq, Vphadduwq, Xmm, Mem)                       // XOP
    3583             :   ASMJIT_INST_2x(vphsubbw, Vphsubbw, Xmm, Xmm)                         // XOP
    3584             :   ASMJIT_INST_2x(vphsubbw, Vphsubbw, Xmm, Mem)                         // XOP
    3585             :   ASMJIT_INST_2x(vphsubdq, Vphsubdq, Xmm, Xmm)                         // XOP
    3586             :   ASMJIT_INST_2x(vphsubdq, Vphsubdq, Xmm, Mem)                         // XOP
    3587             :   ASMJIT_INST_2x(vphsubwd, Vphsubwd, Xmm, Xmm)                         // XOP
    3588             :   ASMJIT_INST_2x(vphsubwd, Vphsubwd, Xmm, Mem)                         // XOP
    3589             :   ASMJIT_INST_4x(vpmacsdd, Vpmacsdd, Xmm, Xmm, Xmm, Xmm)               // XOP
    3590             :   ASMJIT_INST_4x(vpmacsdd, Vpmacsdd, Xmm, Xmm, Mem, Xmm)               // XOP
    3591             :   ASMJIT_INST_4x(vpmacsdqh, Vpmacsdqh, Xmm, Xmm, Xmm, Xmm)             // XOP
    3592             :   ASMJIT_INST_4x(vpmacsdqh, Vpmacsdqh, Xmm, Xmm, Mem, Xmm)             // XOP
    3593             :   ASMJIT_INST_4x(vpmacsdql, Vpmacsdql, Xmm, Xmm, Xmm, Xmm)             // XOP
    3594             :   ASMJIT_INST_4x(vpmacsdql, Vpmacsdql, Xmm, Xmm, Mem, Xmm)             // XOP
    3595             :   ASMJIT_INST_4x(vpmacswd, Vpmacswd, Xmm, Xmm, Xmm, Xmm)               // XOP
    3596             :   ASMJIT_INST_4x(vpmacswd, Vpmacswd, Xmm, Xmm, Mem, Xmm)               // XOP
    3597             :   ASMJIT_INST_4x(vpmacsww, Vpmacsww, Xmm, Xmm, Xmm, Xmm)               // XOP
    3598             :   ASMJIT_INST_4x(vpmacsww, Vpmacsww, Xmm, Xmm, Mem, Xmm)               // XOP
    3599             :   ASMJIT_INST_4x(vpmacssdd, Vpmacssdd, Xmm, Xmm, Xmm, Xmm)             // XOP
    3600             :   ASMJIT_INST_4x(vpmacssdd, Vpmacssdd, Xmm, Xmm, Mem, Xmm)             // XOP
    3601             :   ASMJIT_INST_4x(vpmacssdqh, Vpmacssdqh, Xmm, Xmm, Xmm, Xmm)           // XOP
    3602             :   ASMJIT_INST_4x(vpmacssdqh, Vpmacssdqh, Xmm, Xmm, Mem, Xmm)           // XOP
    3603             :   ASMJIT_INST_4x(vpmacssdql, Vpmacssdql, Xmm, Xmm, Xmm, Xmm)           // XOP
    3604             :   ASMJIT_INST_4x(vpmacssdql, Vpmacssdql, Xmm, Xmm, Mem, Xmm)           // XOP
    3605             :   ASMJIT_INST_4x(vpmacsswd, Vpmacsswd, Xmm, Xmm, Xmm, Xmm)             // XOP
    3606             :   ASMJIT_INST_4x(vpmacsswd, Vpmacsswd, Xmm, Xmm, Mem, Xmm)             // XOP
    3607             :   ASMJIT_INST_4x(vpmacssww, Vpmacssww, Xmm, Xmm, Xmm, Xmm)             // XOP
    3608             :   ASMJIT_INST_4x(vpmacssww, Vpmacssww, Xmm, Xmm, Mem, Xmm)             // XOP
    3609             :   ASMJIT_INST_4x(vpmadcsswd, Vpmadcsswd, Xmm, Xmm, Xmm, Xmm)           // XOP
    3610             :   ASMJIT_INST_4x(vpmadcsswd, Vpmadcsswd, Xmm, Xmm, Mem, Xmm)           // XOP
    3611             :   ASMJIT_INST_4x(vpmadcswd, Vpmadcswd, Xmm, Xmm, Xmm, Xmm)             // XOP
    3612             :   ASMJIT_INST_4x(vpmadcswd, Vpmadcswd, Xmm, Xmm, Mem, Xmm)             // XOP
    3613             :   ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Xmm, Xmm)                   // XOP
    3614             :   ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Mem, Xmm)                   // XOP
    3615             :   ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Xmm, Mem)                   // XOP
    3616             :   ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Xmm)                        // XOP
    3617             :   ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Mem, Xmm)                        // XOP
    3618             :   ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Mem)                        // XOP
    3619             :   ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Imm)                        // XOP
    3620             :   ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Mem, Imm)                        // XOP
    3621             :   ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Xmm)                        // XOP
    3622             :   ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Mem, Xmm)                        // XOP
    3623             :   ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Mem)                        // XOP
    3624             :   ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Imm)                        // XOP
    3625             :   ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Mem, Imm)                        // XOP
    3626             :   ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Xmm)                        // XOP
    3627             :   ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Mem, Xmm)                        // XOP
    3628             :   ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Mem)                        // XOP
    3629             :   ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Imm)                        // XOP
    3630             :   ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Mem, Imm)                        // XOP
    3631             :   ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Xmm)                        // XOP
    3632             :   ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Mem, Xmm)                        // XOP
    3633             :   ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Mem)                        // XOP
    3634             :   ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Imm)                        // XOP
    3635             :   ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Mem, Imm)                        // XOP
    3636             :   ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Xmm, Xmm)                        // XOP
    3637             :   ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Mem, Xmm)                        // XOP
    3638             :   ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Xmm, Mem)                        // XOP
    3639             :   ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Xmm, Xmm)                        // XOP
    3640             :   ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Mem, Xmm)                        // XOP
    3641             :   ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Xmm, Mem)                        // XOP
    3642             :   ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Xmm, Xmm)                        // XOP
    3643             :   ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Mem, Xmm)                        // XOP
    3644             :   ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Xmm, Mem)                        // XOP
    3645             :   ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Xmm, Xmm)                        // XOP
    3646             :   ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Mem, Xmm)                        // XOP
    3647             :   ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Xmm, Mem)                        // XOP
    3648             :   ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Xmm, Xmm)                        // XOP
    3649             :   ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Mem, Xmm)                        // XOP
    3650             :   ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Xmm, Mem)                        // XOP
    3651             :   ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Xmm, Xmm)                        // XOP
    3652             :   ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Mem, Xmm)                        // XOP
    3653             :   ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Xmm, Mem)                        // XOP
    3654             :   ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Xmm, Xmm)                        // XOP
    3655             :   ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Mem, Xmm)                        // XOP
    3656             :   ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Xmm, Mem)                        // XOP
    3657             :   ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Xmm, Xmm)                        // XOP
    3658             :   ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Mem, Xmm)                        // XOP
    3659             :   ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Xmm, Mem)                        // XOP
    3660             : 
    3661             :   //! \}
    3662             : 
    3663             :   //! \name AVX512_FP16 Instructions
    3664             :   //! \{
    3665             : 
    3666             :   ASMJIT_INST_3x(vaddph, Vaddph, Vec, Vec, Vec)
    3667             :   ASMJIT_INST_3x(vaddph, Vaddph, Vec, Vec, Mem)
    3668             :   ASMJIT_INST_3x(vaddsh, Vaddsh, Vec, Vec, Vec)
    3669             :   ASMJIT_INST_3x(vaddsh, Vaddsh, Vec, Vec, Mem)
    3670             :   ASMJIT_INST_4x(vcmpph, Vcmpph, KReg, Vec, Vec, Imm)
    3671             :   ASMJIT_INST_4x(vcmpph, Vcmpph, KReg, Vec, Mem, Imm)
    3672             :   ASMJIT_INST_4x(vcmpsh, Vcmpsh, KReg, Vec, Vec, Imm)
    3673             :   ASMJIT_INST_4x(vcmpsh, Vcmpsh, KReg, Vec, Mem, Imm)
    3674             :   ASMJIT_INST_2x(vcomish, Vcomish, Vec, Vec)
    3675             :   ASMJIT_INST_2x(vcomish, Vcomish, Vec, Mem)
    3676             :   ASMJIT_INST_2x(vcvtdq2ph, Vcvtdq2ph, Vec, Vec)
    3677             :   ASMJIT_INST_2x(vcvtdq2ph, Vcvtdq2ph, Vec, Mem)
    3678             :   ASMJIT_INST_2x(vcvtpd2ph, Vcvtpd2ph, Vec, Vec)
    3679             :   ASMJIT_INST_2x(vcvtpd2ph, Vcvtpd2ph, Vec, Mem)
    3680             :   ASMJIT_INST_2x(vcvtph2dq, Vcvtph2dq, Vec, Vec)
    3681             :   ASMJIT_INST_2x(vcvtph2dq, Vcvtph2dq, Vec, Mem)
    3682             :   ASMJIT_INST_2x(vcvtph2pd, Vcvtph2pd, Vec, Vec)
    3683             :   ASMJIT_INST_2x(vcvtph2pd, Vcvtph2pd, Vec, Mem)
    3684             :   ASMJIT_INST_2x(vcvtph2psx, Vcvtph2psx, Vec, Vec)
    3685             :   ASMJIT_INST_2x(vcvtph2psx, Vcvtph2psx, Vec, Mem)
    3686             :   ASMJIT_INST_2x(vcvtph2qq, Vcvtph2qq, Vec, Vec)
    3687             :   ASMJIT_INST_2x(vcvtph2qq, Vcvtph2qq, Vec, Mem)
    3688             :   ASMJIT_INST_2x(vcvtph2udq, Vcvtph2udq, Vec, Vec)
    3689             :   ASMJIT_INST_2x(vcvtph2udq, Vcvtph2udq, Vec, Mem)
    3690             :   ASMJIT_INST_2x(vcvtph2uqq, Vcvtph2uqq, Vec, Vec)
    3691             :   ASMJIT_INST_2x(vcvtph2uqq, Vcvtph2uqq, Vec, Mem)
    3692             :   ASMJIT_INST_2x(vcvtph2uw, Vcvtph2uw, Vec, Vec)
    3693             :   ASMJIT_INST_2x(vcvtph2uw, Vcvtph2uw, Vec, Mem)
    3694             :   ASMJIT_INST_2x(vcvtph2w, Vcvtph2w, Vec, Vec)
    3695             :   ASMJIT_INST_2x(vcvtph2w, Vcvtph2w, Vec, Mem)
    3696             :   ASMJIT_INST_2x(vcvtps2phx, Vcvtps2phx, Vec, Vec)
    3697             :   ASMJIT_INST_2x(vcvtps2phx, Vcvtps2phx, Vec, Mem)
    3698             :   ASMJIT_INST_2x(vcvtqq2ph, Vcvtqq2ph, Vec, Vec)
    3699             :   ASMJIT_INST_2x(vcvtqq2ph, Vcvtqq2ph, Vec, Mem)
    3700             :   ASMJIT_INST_3x(vcvtsd2sh, Vcvtsd2sh, Vec, Vec, Vec)
    3701             :   ASMJIT_INST_3x(vcvtsd2sh, Vcvtsd2sh, Vec, Vec, Mem)
    3702             :   ASMJIT_INST_3x(vcvtsh2sd, Vcvtsh2sd, Vec, Vec, Vec)
    3703             :   ASMJIT_INST_3x(vcvtsh2sd, Vcvtsh2sd, Vec, Vec, Mem)
    3704             :   ASMJIT_INST_2x(vcvtsh2si, Vcvtsh2si, Gp, Vec)
    3705             :   ASMJIT_INST_2x(vcvtsh2si, Vcvtsh2si, Gp, Mem)
    3706             :   ASMJIT_INST_3x(vcvtsh2ss, Vcvtsh2ss, Vec, Vec, Vec)
    3707             :   ASMJIT_INST_3x(vcvtsh2ss, Vcvtsh2ss, Vec, Vec, Mem)
    3708             :   ASMJIT_INST_2x(vcvtsh2usi, Vcvtsh2usi, Gp, Vec)
    3709             :   ASMJIT_INST_2x(vcvtsh2usi, Vcvtsh2usi, Gp, Mem)
    3710             :   ASMJIT_INST_3x(vcvtsi2sh, Vcvtsi2sh, Vec, Vec, Gp)
    3711             :   ASMJIT_INST_3x(vcvtsi2sh, Vcvtsi2sh, Vec, Vec, Mem)
    3712             :   ASMJIT_INST_3x(vcvtss2sh, Vcvtss2sh, Vec, Vec, Vec)
    3713             :   ASMJIT_INST_3x(vcvtss2sh, Vcvtss2sh, Vec, Vec, Mem)
    3714             :   ASMJIT_INST_2x(vcvttph2dq, Vcvttph2dq, Vec, Vec)
    3715             :   ASMJIT_INST_2x(vcvttph2dq, Vcvttph2dq, Vec, Mem)
    3716             :   ASMJIT_INST_2x(vcvttph2qq, Vcvttph2qq, Vec, Vec)
    3717             :   ASMJIT_INST_2x(vcvttph2qq, Vcvttph2qq, Vec, Mem)
    3718             :   ASMJIT_INST_2x(vcvttph2udq, Vcvttph2udq, Vec, Vec)
    3719             :   ASMJIT_INST_2x(vcvttph2udq, Vcvttph2udq, Vec, Mem)
    3720             :   ASMJIT_INST_2x(vcvttph2uqq, Vcvttph2uqq, Vec, Vec)
    3721             :   ASMJIT_INST_2x(vcvttph2uqq, Vcvttph2uqq, Vec, Mem)
    3722             :   ASMJIT_INST_2x(vcvttph2uw, Vcvttph2uw, Vec, Vec)
    3723             :   ASMJIT_INST_2x(vcvttph2uw, Vcvttph2uw, Vec, Mem)
    3724             :   ASMJIT_INST_2x(vcvttph2w, Vcvttph2w, Vec, Vec)
    3725             :   ASMJIT_INST_2x(vcvttph2w, Vcvttph2w, Vec, Mem)
    3726             :   ASMJIT_INST_2x(vcvttsh2si, Vcvttsh2si, Gp, Vec)
    3727             :   ASMJIT_INST_2x(vcvttsh2si, Vcvttsh2si, Gp, Mem)
    3728             :   ASMJIT_INST_2x(vcvttsh2usi, Vcvttsh2usi, Gp, Vec)
    3729             :   ASMJIT_INST_2x(vcvttsh2usi, Vcvttsh2usi, Gp, Mem)
    3730             :   ASMJIT_INST_2x(vcvtudq2ph, Vcvtudq2ph, Vec, Vec)
    3731             :   ASMJIT_INST_2x(vcvtudq2ph, Vcvtudq2ph, Vec, Mem)
    3732             :   ASMJIT_INST_2x(vcvtuqq2ph, Vcvtuqq2ph, Vec, Vec)
    3733             :   ASMJIT_INST_2x(vcvtuqq2ph, Vcvtuqq2ph, Vec, Mem)
    3734             :   ASMJIT_INST_3x(vcvtusi2sh, Vcvtusi2sh, Vec, Vec, Gp)
    3735             :   ASMJIT_INST_3x(vcvtusi2sh, Vcvtusi2sh, Vec, Vec, Mem)
    3736             :   ASMJIT_INST_2x(vcvtuw2ph, Vcvtuw2ph, Vec, Vec)
    3737             :   ASMJIT_INST_2x(vcvtuw2ph, Vcvtuw2ph, Vec, Mem)
    3738             :   ASMJIT_INST_2x(vcvtw2ph, Vcvtw2ph, Vec, Vec)
    3739             :   ASMJIT_INST_2x(vcvtw2ph, Vcvtw2ph, Vec, Mem)
    3740             :   ASMJIT_INST_3x(vdivph, Vdivph, Vec, Vec, Vec)
    3741             :   ASMJIT_INST_3x(vdivph, Vdivph, Vec, Vec, Mem)
    3742             :   ASMJIT_INST_3x(vdivsh, Vdivsh, Vec, Vec, Vec)
    3743             :   ASMJIT_INST_3x(vdivsh, Vdivsh, Vec, Vec, Mem)
    3744             :   ASMJIT_INST_3x(vfcmaddcph, Vfcmaddcph, Vec, Vec, Vec)
    3745             :   ASMJIT_INST_3x(vfcmaddcph, Vfcmaddcph, Vec, Vec, Mem)
    3746             :   ASMJIT_INST_3x(vfcmaddcsh, Vfcmaddcsh, Vec, Vec, Vec)
    3747             :   ASMJIT_INST_3x(vfcmaddcsh, Vfcmaddcsh, Vec, Vec, Mem)
    3748             :   ASMJIT_INST_3x(vfcmulcph, Vfcmulcph, Vec, Vec, Vec)
    3749             :   ASMJIT_INST_3x(vfcmulcph, Vfcmulcph, Vec, Vec, Mem)
    3750             :   ASMJIT_INST_3x(vfcmulcsh, Vfcmulcsh, Vec, Vec, Vec)
    3751             :   ASMJIT_INST_3x(vfcmulcsh, Vfcmulcsh, Vec, Vec, Mem)
    3752             :   ASMJIT_INST_3x(vfmadd132ph, Vfmadd132ph, Vec, Vec, Vec)
    3753             :   ASMJIT_INST_3x(vfmadd132ph, Vfmadd132ph, Vec, Vec, Mem)
    3754             :   ASMJIT_INST_3x(vfmadd132sh, Vfmadd132sh, Vec, Vec, Vec)
    3755             :   ASMJIT_INST_3x(vfmadd132sh, Vfmadd132sh, Vec, Vec, Mem)
    3756             :   ASMJIT_INST_3x(vfmadd213ph, Vfmadd213ph, Vec, Vec, Vec)
    3757             :   ASMJIT_INST_3x(vfmadd213ph, Vfmadd213ph, Vec, Vec, Mem)
    3758             :   ASMJIT_INST_3x(vfmadd213sh, Vfmadd213sh, Vec, Vec, Vec)
    3759             :   ASMJIT_INST_3x(vfmadd213sh, Vfmadd213sh, Vec, Vec, Mem)
    3760             :   ASMJIT_INST_3x(vfmadd231ph, Vfmadd231ph, Vec, Vec, Vec)
    3761             :   ASMJIT_INST_3x(vfmadd231ph, Vfmadd231ph, Vec, Vec, Mem)
    3762             :   ASMJIT_INST_3x(vfmadd231sh, Vfmadd231sh, Vec, Vec, Vec)
    3763             :   ASMJIT_INST_3x(vfmadd231sh, Vfmadd231sh, Vec, Vec, Mem)
    3764             :   ASMJIT_INST_3x(vfmaddcph, Vfmaddcph, Vec, Vec, Vec)
    3765             :   ASMJIT_INST_3x(vfmaddcph, Vfmaddcph, Vec, Vec, Mem)
    3766             :   ASMJIT_INST_3x(vfmaddcsh, Vfmaddcsh, Vec, Vec, Vec)
    3767             :   ASMJIT_INST_3x(vfmaddcsh, Vfmaddcsh, Vec, Vec, Mem)
    3768             :   ASMJIT_INST_3x(vfmaddsub132ph, Vfmaddsub132ph, Vec, Vec, Vec)
    3769             :   ASMJIT_INST_3x(vfmaddsub132ph, Vfmaddsub132ph, Vec, Vec, Mem)
    3770             :   ASMJIT_INST_3x(vfmaddsub213ph, Vfmaddsub213ph, Vec, Vec, Vec)
    3771             :   ASMJIT_INST_3x(vfmaddsub213ph, Vfmaddsub213ph, Vec, Vec, Mem)
    3772             :   ASMJIT_INST_3x(vfmaddsub231ph, Vfmaddsub231ph, Vec, Vec, Vec)
    3773             :   ASMJIT_INST_3x(vfmaddsub231ph, Vfmaddsub231ph, Vec, Vec, Mem)
    3774             :   ASMJIT_INST_3x(vfmsub132ph, Vfmsub132ph, Vec, Vec, Vec)
    3775             :   ASMJIT_INST_3x(vfmsub132ph, Vfmsub132ph, Vec, Vec, Mem)
    3776             :   ASMJIT_INST_3x(vfmsub132sh, Vfmsub132sh, Vec, Vec, Vec)
    3777             :   ASMJIT_INST_3x(vfmsub132sh, Vfmsub132sh, Vec, Vec, Mem)
    3778             :   ASMJIT_INST_3x(vfmsub213ph, Vfmsub213ph, Vec, Vec, Vec)
    3779             :   ASMJIT_INST_3x(vfmsub213ph, Vfmsub213ph, Vec, Vec, Mem)
    3780             :   ASMJIT_INST_3x(vfmsub213sh, Vfmsub213sh, Vec, Vec, Vec)
    3781             :   ASMJIT_INST_3x(vfmsub213sh, Vfmsub213sh, Vec, Vec, Mem)
    3782             :   ASMJIT_INST_3x(vfmsub231ph, Vfmsub231ph, Vec, Vec, Vec)
    3783             :   ASMJIT_INST_3x(vfmsub231ph, Vfmsub231ph, Vec, Vec, Mem)
    3784             :   ASMJIT_INST_3x(vfmsub231sh, Vfmsub231sh, Vec, Vec, Vec)
    3785             :   ASMJIT_INST_3x(vfmsub231sh, Vfmsub231sh, Vec, Vec, Mem)
    3786             :   ASMJIT_INST_3x(vfmsubadd132ph, Vfmsubadd132ph, Vec, Vec, Vec)
    3787             :   ASMJIT_INST_3x(vfmsubadd132ph, Vfmsubadd132ph, Vec, Vec, Mem)
    3788             :   ASMJIT_INST_3x(vfmsubadd213ph, Vfmsubadd213ph, Vec, Vec, Vec)
    3789             :   ASMJIT_INST_3x(vfmsubadd213ph, Vfmsubadd213ph, Vec, Vec, Mem)
    3790             :   ASMJIT_INST_3x(vfmsubadd231ph, Vfmsubadd231ph, Vec, Vec, Vec)
    3791             :   ASMJIT_INST_3x(vfmsubadd231ph, Vfmsubadd231ph, Vec, Vec, Mem)
    3792             :   ASMJIT_INST_3x(vfmulcph, Vfmulcph, Vec, Vec, Vec)
    3793             :   ASMJIT_INST_3x(vfmulcph, Vfmulcph, Vec, Vec, Mem)
    3794             :   ASMJIT_INST_3x(vfmulcsh, Vfmulcsh, Vec, Vec, Vec)
    3795             :   ASMJIT_INST_3x(vfmulcsh, Vfmulcsh, Vec, Vec, Mem)
    3796             :   ASMJIT_INST_3x(vfnmadd132ph, Vfnmadd132ph, Vec, Vec, Vec)
    3797             :   ASMJIT_INST_3x(vfnmadd132ph, Vfnmadd132ph, Vec, Vec, Mem)
    3798             :   ASMJIT_INST_3x(vfnmadd132sh, Vfnmadd132sh, Vec, Vec, Vec)
    3799             :   ASMJIT_INST_3x(vfnmadd132sh, Vfnmadd132sh, Vec, Vec, Mem)
    3800             :   ASMJIT_INST_3x(vfnmadd213ph, Vfnmadd213ph, Vec, Vec, Vec)
    3801             :   ASMJIT_INST_3x(vfnmadd213ph, Vfnmadd213ph, Vec, Vec, Mem)
    3802             :   ASMJIT_INST_3x(vfnmadd213sh, Vfnmadd213sh, Vec, Vec, Vec)
    3803             :   ASMJIT_INST_3x(vfnmadd213sh, Vfnmadd213sh, Vec, Vec, Mem)
    3804             :   ASMJIT_INST_3x(vfnmadd231ph, Vfnmadd231ph, Vec, Vec, Vec)
    3805             :   ASMJIT_INST_3x(vfnmadd231ph, Vfnmadd231ph, Vec, Vec, Mem)
    3806             :   ASMJIT_INST_3x(vfnmadd231sh, Vfnmadd231sh, Vec, Vec, Vec)
    3807             :   ASMJIT_INST_3x(vfnmadd231sh, Vfnmadd231sh, Vec, Vec, Mem)
    3808             :   ASMJIT_INST_3x(vfnmsub132ph, Vfnmsub132ph, Vec, Vec, Vec)
    3809             :   ASMJIT_INST_3x(vfnmsub132ph, Vfnmsub132ph, Vec, Vec, Mem)
    3810             :   ASMJIT_INST_3x(vfnmsub132sh, Vfnmsub132sh, Vec, Vec, Vec)
    3811             :   ASMJIT_INST_3x(vfnmsub132sh, Vfnmsub132sh, Vec, Vec, Mem)
    3812             :   ASMJIT_INST_3x(vfnmsub213ph, Vfnmsub213ph, Vec, Vec, Vec)
    3813             :   ASMJIT_INST_3x(vfnmsub213ph, Vfnmsub213ph, Vec, Vec, Mem)
    3814             :   ASMJIT_INST_3x(vfnmsub213sh, Vfnmsub213sh, Vec, Vec, Vec)
    3815             :   ASMJIT_INST_3x(vfnmsub213sh, Vfnmsub213sh, Vec, Vec, Mem)
    3816             :   ASMJIT_INST_3x(vfnmsub231ph, Vfnmsub231ph, Vec, Vec, Vec)
    3817             :   ASMJIT_INST_3x(vfnmsub231ph, Vfnmsub231ph, Vec, Vec, Mem)
    3818             :   ASMJIT_INST_3x(vfnmsub231sh, Vfnmsub231sh, Vec, Vec, Vec)
    3819             :   ASMJIT_INST_3x(vfnmsub231sh, Vfnmsub231sh, Vec, Vec, Mem)
    3820             :   ASMJIT_INST_3x(vfpclassph, Vfpclassph, KReg, Vec, Imm)
    3821             :   ASMJIT_INST_3x(vfpclassph, Vfpclassph, KReg, Mem, Imm)
    3822             :   ASMJIT_INST_3x(vfpclasssh, Vfpclasssh, KReg, Vec, Imm)
    3823             :   ASMJIT_INST_3x(vfpclasssh, Vfpclasssh, KReg, Mem, Imm)
    3824             :   ASMJIT_INST_2x(vgetexpph, Vgetexpph, Vec, Vec)
    3825             :   ASMJIT_INST_2x(vgetexpph, Vgetexpph, Vec, Mem)
    3826             :   ASMJIT_INST_3x(vgetexpsh, Vgetexpsh, Vec, Vec, Vec)
    3827             :   ASMJIT_INST_3x(vgetexpsh, Vgetexpsh, Vec, Vec, Mem)
    3828             :   ASMJIT_INST_3x(vgetmantph, Vgetmantph, Vec, Vec, Imm)
    3829             :   ASMJIT_INST_3x(vgetmantph, Vgetmantph, Vec, Mem, Imm)
    3830             :   ASMJIT_INST_4x(vgetmantsh, Vgetmantsh, Vec, Vec, Vec, Imm)
    3831             :   ASMJIT_INST_4x(vgetmantsh, Vgetmantsh, Vec, Vec, Mem, Imm)
    3832             :   ASMJIT_INST_3x(vmaxph, Vmaxph, Vec, Vec, Vec)
    3833             :   ASMJIT_INST_3x(vmaxph, Vmaxph, Vec, Vec, Mem)
    3834             :   ASMJIT_INST_3x(vmaxsh, Vmaxsh, Vec, Vec, Vec)
    3835             :   ASMJIT_INST_3x(vmaxsh, Vmaxsh, Vec, Vec, Mem)
    3836             :   ASMJIT_INST_3x(vminph, Vminph, Vec, Vec, Vec)
    3837             :   ASMJIT_INST_3x(vminph, Vminph, Vec, Vec, Mem)
    3838             :   ASMJIT_INST_3x(vminsh, Vminsh, Vec, Vec, Vec)
    3839             :   ASMJIT_INST_3x(vminsh, Vminsh, Vec, Vec, Mem)
    3840             :   ASMJIT_INST_2x(vmovsh, Vmovsh, Mem, Xmm)
    3841             :   ASMJIT_INST_2x(vmovsh, Vmovsh, Xmm, Mem)
    3842             :   ASMJIT_INST_3x(vmovsh, Vmovsh, Xmm, Xmm, Xmm)
    3843             :   ASMJIT_INST_2x(vmovw, Vmovw, Gp, Xmm)
    3844             :   ASMJIT_INST_2x(vmovw, Vmovw, Mem, Xmm)
    3845             :   ASMJIT_INST_2x(vmovw, Vmovw, Xmm, Gp)
    3846             :   ASMJIT_INST_2x(vmovw, Vmovw, Xmm, Mem)
    3847             :   ASMJIT_INST_3x(vmulph, Vmulph, Vec, Vec, Vec)
    3848             :   ASMJIT_INST_3x(vmulph, Vmulph, Vec, Vec, Mem)
    3849             :   ASMJIT_INST_3x(vmulsh, Vmulsh, Vec, Vec, Vec)
    3850             :   ASMJIT_INST_3x(vmulsh, Vmulsh, Vec, Vec, Mem)
    3851             :   ASMJIT_INST_2x(vrcpph, Vrcpph, Vec, Vec)
    3852             :   ASMJIT_INST_2x(vrcpph, Vrcpph, Vec, Mem)
    3853             :   ASMJIT_INST_3x(vrcpsh, Vrcpsh, Vec, Vec, Vec)
    3854             :   ASMJIT_INST_3x(vrcpsh, Vrcpsh, Vec, Vec, Mem)
    3855             :   ASMJIT_INST_3x(vreduceph, Vreduceph, Vec, Vec, Imm)
    3856             :   ASMJIT_INST_3x(vreduceph, Vreduceph, Vec, Mem, Imm)
    3857             :   ASMJIT_INST_4x(vreducesh, Vreducesh, Vec, Vec, Vec, Imm)
    3858             :   ASMJIT_INST_4x(vreducesh, Vreducesh, Vec, Vec, Mem, Imm)
    3859             :   ASMJIT_INST_3x(vrndscaleph, Vrndscaleph, Vec, Vec, Imm)
    3860             :   ASMJIT_INST_3x(vrndscaleph, Vrndscaleph, Vec, Mem, Imm)
    3861             :   ASMJIT_INST_4x(vrndscalesh, Vrndscalesh, Vec, Vec, Vec, Imm)
    3862             :   ASMJIT_INST_4x(vrndscalesh, Vrndscalesh, Vec, Vec, Mem, Imm)
    3863             :   ASMJIT_INST_2x(vrsqrtph, Vrsqrtph, Vec, Vec)
    3864             :   ASMJIT_INST_2x(vrsqrtph, Vrsqrtph, Vec, Mem)
    3865             :   ASMJIT_INST_3x(vrsqrtsh, Vrsqrtsh, Vec, Vec, Vec)
    3866             :   ASMJIT_INST_3x(vrsqrtsh, Vrsqrtsh, Vec, Vec, Mem)
    3867             :   ASMJIT_INST_3x(vscalefph, Vscalefph, Vec, Vec, Vec)
    3868             :   ASMJIT_INST_3x(vscalefph, Vscalefph, Vec, Vec, Mem)
    3869             :   ASMJIT_INST_3x(vscalefsh, Vscalefsh, Vec, Vec, Vec)
    3870             :   ASMJIT_INST_3x(vscalefsh, Vscalefsh, Vec, Vec, Mem)
    3871             :   ASMJIT_INST_2x(vsqrtph, Vsqrtph, Vec, Vec)
    3872             :   ASMJIT_INST_2x(vsqrtph, Vsqrtph, Vec, Mem)
    3873             :   ASMJIT_INST_3x(vsqrtsh, Vsqrtsh, Vec, Vec, Vec)
    3874             :   ASMJIT_INST_3x(vsqrtsh, Vsqrtsh, Vec, Vec, Mem)
    3875             :   ASMJIT_INST_3x(vsubph, Vsubph, Vec, Vec, Vec)
    3876             :   ASMJIT_INST_3x(vsubph, Vsubph, Vec, Vec, Mem)
    3877             :   ASMJIT_INST_3x(vsubsh, Vsubsh, Vec, Vec, Vec)
    3878             :   ASMJIT_INST_3x(vsubsh, Vsubsh, Vec, Vec, Mem)
    3879             :   ASMJIT_INST_2x(vucomish, Vucomish, Vec, Vec)
    3880             :   ASMJIT_INST_2x(vucomish, Vucomish, Vec, Mem)
    3881             : 
    3882             :   //! \}
    3883             : 
    3884             :   //! \name AMX Instructions
    3885             :   //! \{
    3886             : 
    3887             :   ASMJIT_INST_1x(ldtilecfg, Ldtilecfg, Mem)                            // AMX_TILE
    3888             :   ASMJIT_INST_1x(sttilecfg, Sttilecfg, Mem)                            // AMX_TILE
    3889             :   ASMJIT_INST_2x(tileloadd, Tileloadd, Tmm, Mem)                       // AMX_TILE
    3890             :   ASMJIT_INST_2x(tileloaddt1, Tileloaddt1, Tmm, Mem)                   // AMX_TILE
    3891             :   ASMJIT_INST_0x(tilerelease, Tilerelease)                             // AMX_TILE
    3892             :   ASMJIT_INST_2x(tilestored, Tilestored, Mem, Tmm)                     // AMX_TILE
    3893             :   ASMJIT_INST_1x(tilezero, Tilezero, Tmm)                              // AMX_TILE
    3894             : 
    3895             :   ASMJIT_INST_3x(tdpbf16ps, Tdpbf16ps, Tmm, Tmm, Tmm)                  // AMX_BF16
    3896             :   ASMJIT_INST_3x(tdpbssd, Tdpbssd, Tmm, Tmm, Tmm)                      // AMX_INT8
    3897             :   ASMJIT_INST_3x(tdpbsud, Tdpbsud, Tmm, Tmm, Tmm)                      // AMX_INT8
    3898             :   ASMJIT_INST_3x(tdpbusd, Tdpbusd, Tmm, Tmm, Tmm)                      // AMX_INT8
    3899             :   ASMJIT_INST_3x(tdpbuud, Tdpbuud, Tmm, Tmm, Tmm)                      // AMX_INT8
    3900             : 
    3901             :   //! \}
    3902             : };
    3903             : 
    3904             : //! Emitter (X86 - implicit).
    3905             : template<typename This>
    3906             : struct EmitterImplicitT : public EmitterExplicitT<This> {
    3907             :   //! \cond
    3908             :   using EmitterExplicitT<This>::_emitter;
    3909             :   //! \endcond
    3910             : 
    3911             :   //! \name Prefix Options
    3912             :   //! \{
    3913             : 
    3914             :   //! Use REP/REPE prefix.
    3915             :   inline This& rep() noexcept { return EmitterExplicitT<This>::_addInstOptions(InstOptions::kX86_Rep); }
    3916             :   //! Use REP/REPE prefix.
    3917             :   inline This& repe() noexcept { return rep(); }
    3918             :   //! Use REP/REPE prefix.
    3919             :   inline This& repz() noexcept { return rep(); }
    3920             : 
    3921             :   //! Use REPNE prefix.
    3922             :   inline This& repne() noexcept { return EmitterExplicitT<This>::_addInstOptions(InstOptions::kX86_Repne); }
    3923             :   //! Use REPNE prefix.
    3924             :   inline This& repnz() noexcept { return repne(); }
    3925             : 
    3926             :   //! \}
    3927             : 
    3928             :   //! \name Core Instructions
    3929             :   //! \{
    3930             : 
    3931             :   //! \cond
    3932             :   using EmitterExplicitT<This>::cbw;
    3933             :   using EmitterExplicitT<This>::cdq;
    3934             :   using EmitterExplicitT<This>::cdqe;
    3935             :   using EmitterExplicitT<This>::cqo;
    3936             :   using EmitterExplicitT<This>::cwd;
    3937             :   using EmitterExplicitT<This>::cwde;
    3938             :   using EmitterExplicitT<This>::cmpsd;
    3939             :   using EmitterExplicitT<This>::cmpxchg;
    3940             :   using EmitterExplicitT<This>::cmpxchg8b;
    3941             :   using EmitterExplicitT<This>::cmpxchg16b;
    3942             :   using EmitterExplicitT<This>::div;
    3943             :   using EmitterExplicitT<This>::idiv;
    3944             :   using EmitterExplicitT<This>::imul;
    3945             :   using EmitterExplicitT<This>::jecxz;
    3946             :   using EmitterExplicitT<This>::loop;
    3947             :   using EmitterExplicitT<This>::loope;
    3948             :   using EmitterExplicitT<This>::loopne;
    3949             :   using EmitterExplicitT<This>::mul;
    3950             :   //! \endcond
    3951             : 
    3952             :   ASMJIT_INST_0x(cbw, Cbw)                                             // ANY       [IMPLICIT] AX      <- Sign Extend AL
    3953             :   ASMJIT_INST_0x(cdq, Cdq)                                             // ANY       [IMPLICIT] EDX:EAX <- Sign Extend EAX
    3954             :   ASMJIT_INST_0x(cdqe, Cdqe)                                           // X64       [IMPLICIT] RAX     <- Sign Extend EAX
    3955             :   ASMJIT_INST_2x(cmpxchg, Cmpxchg, Gp, Gp)                             // I486      [IMPLICIT]
    3956             :   ASMJIT_INST_2x(cmpxchg, Cmpxchg, Mem, Gp)                            // I486      [IMPLICIT]
    3957             :   ASMJIT_INST_1x(cmpxchg16b, Cmpxchg16b, Mem)                          // CMPXCHG8B [IMPLICIT] m == RDX:RAX ? m <- RCX:RBX
    3958             :   ASMJIT_INST_1x(cmpxchg8b, Cmpxchg8b, Mem)                            // CMPXCHG16B[IMPLICIT] m == EDX:EAX ? m <- ECX:EBX
    3959             :   ASMJIT_INST_0x(cqo, Cqo)                                             // X64       [IMPLICIT] RDX:RAX <- Sign Extend RAX
    3960             :   ASMJIT_INST_0x(cwd, Cwd)                                             // ANY       [IMPLICIT] DX:AX   <- Sign Extend AX
    3961             :   ASMJIT_INST_0x(cwde, Cwde)                                           // ANY       [IMPLICIT] EAX     <- Sign Extend AX
    3962             :   ASMJIT_INST_1x(div, Div, Gp)                                         // ANY       [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / r8} {xDX[Rem]:xAX[Quot] <- DX:AX / r16|r32|r64}
    3963             :   ASMJIT_INST_1x(div, Div, Mem)                                        // ANY       [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / m8} {xDX[Rem]:xAX[Quot] <- DX:AX / m16|m32|m64}
    3964             :   ASMJIT_INST_1x(idiv, Idiv, Gp)                                       // ANY       [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / r8} {xDX[Rem]:xAX[Quot] <- DX:AX / r16|r32|r64}
    3965             :   ASMJIT_INST_1x(idiv, Idiv, Mem)                                      // ANY       [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / m8} {xDX[Rem]:xAX[Quot] <- DX:AX / m16|m32|m64}
    3966             :   ASMJIT_INST_1x(imul, Imul, Gp)                                       // ANY       [IMPLICIT] {AX <- AL * r8} {xAX:xDX <- xAX * r16|r32|r64}
    3967             :   ASMJIT_INST_1x(imul, Imul, Mem)                                      // ANY       [IMPLICIT] {AX <- AL * m8} {xAX:xDX <- xAX * m16|m32|m64}
    3968             :   ASMJIT_INST_0x(iret, Iret)                                           // ANY       [IMPLICIT]
    3969             :   ASMJIT_INST_0x(iretd, Iretd)                                         // ANY       [IMPLICIT]
    3970             :   ASMJIT_INST_0x(iretq, Iretq)                                         // X64       [IMPLICIT]
    3971             :   ASMJIT_INST_1x(jecxz, Jecxz, Label)                                  // ANY       [IMPLICIT] Short jump if CX/ECX/RCX is zero.
    3972             :   ASMJIT_INST_1x(jecxz, Jecxz, Imm)                                    // ANY       [IMPLICIT] Short jump if CX/ECX/RCX is zero.
    3973             :   ASMJIT_INST_1x(loop, Loop, Label)                                    // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0.
    3974             :   ASMJIT_INST_1x(loop, Loop, Imm)                                      // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0.
    3975             :   ASMJIT_INST_1x(loope, Loope, Label)                                  // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
    3976             :   ASMJIT_INST_1x(loope, Loope, Imm)                                    // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
    3977             :   ASMJIT_INST_1x(loopne, Loopne, Label)                                // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
    3978             :   ASMJIT_INST_1x(loopne, Loopne, Imm)                                  // ANY       [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
    3979             :   ASMJIT_INST_1x(mul, Mul, Gp)                                         // ANY       [IMPLICIT] {AX <- AL * r8} {xDX:xAX <- xAX * r16|r32|r64}
    3980             :   ASMJIT_INST_1x(mul, Mul, Mem)                                        // ANY       [IMPLICIT] {AX <- AL * m8} {xDX:xAX <- xAX * m16|m32|m64}
    3981             :   ASMJIT_INST_0x(ret, Ret)
    3982             :   ASMJIT_INST_1x(ret, Ret, Imm)
    3983             :   ASMJIT_INST_0x(retf, Retf)
    3984             :   ASMJIT_INST_1x(retf, Retf, Imm)
    3985             :   ASMJIT_INST_0x(xlatb, Xlatb)                                         // ANY       [IMPLICIT]
    3986             : 
    3987             :   //! \}
    3988             : 
    3989             :   //! \name String Instruction Aliases
    3990             :   //! \{
    3991             : 
    3992             :   //! \cond
    3993             :   using EmitterExplicitT<This>::movsd;
    3994             :   //! \endcond
    3995             : 
    3996             :   inline Error cmpsb() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 1), EmitterExplicitT<This>::ptr_zdi(0, 1)); }
    3997             :   inline Error cmpsd() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 4), EmitterExplicitT<This>::ptr_zdi(0, 4)); }
    3998             :   inline Error cmpsq() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 8), EmitterExplicitT<This>::ptr_zdi(0, 8)); }
    3999             :   inline Error cmpsw() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 2), EmitterExplicitT<This>::ptr_zdi(0, 2)); }
    4000             : 
    4001             :   inline Error lodsb() { return _emitter()->emit(Inst::kIdLods, al , EmitterExplicitT<This>::ptr_zsi(0, 1)); }
    4002             :   inline Error lodsd() { return _emitter()->emit(Inst::kIdLods, eax, EmitterExplicitT<This>::ptr_zsi(0, 4)); }
    4003             :   inline Error lodsq() { return _emitter()->emit(Inst::kIdLods, rax, EmitterExplicitT<This>::ptr_zsi(0, 8)); }
    4004             :   inline Error lodsw() { return _emitter()->emit(Inst::kIdLods, ax , EmitterExplicitT<This>::ptr_zsi(0, 2)); }
    4005             : 
    4006             :   inline Error movsb() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 1), EmitterExplicitT<This>::ptr_zsi(0, 1)); }
    4007             :   inline Error movsd() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 4), EmitterExplicitT<This>::ptr_zsi(0, 4)); }
    4008             :   inline Error movsq() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 8), EmitterExplicitT<This>::ptr_zsi(0, 8)); }
    4009             :   inline Error movsw() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 2), EmitterExplicitT<This>::ptr_zsi(0, 2)); }
    4010             : 
    4011             :   inline Error scasb() { return _emitter()->emit(Inst::kIdScas, al , EmitterExplicitT<This>::ptr_zdi(0, 1)); }
    4012             :   inline Error scasd() { return _emitter()->emit(Inst::kIdScas, eax, EmitterExplicitT<This>::ptr_zdi(0, 4)); }
    4013             :   inline Error scasq() { return _emitter()->emit(Inst::kIdScas, rax, EmitterExplicitT<This>::ptr_zdi(0, 8)); }
    4014             :   inline Error scasw() { return _emitter()->emit(Inst::kIdScas, ax , EmitterExplicitT<This>::ptr_zdi(0, 2)); }
    4015             : 
    4016             :   inline Error stosb() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 1), al ); }
    4017             :   inline Error stosd() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 4), eax); }
    4018             :   inline Error stosq() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 8), rax); }
    4019             :   inline Error stosw() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 2), ax ); }
    4020             : 
    4021             :   //! \}
    4022             : 
    4023             :   //! \name Deprecated 32-bit Instructions
    4024             :   //! \{
    4025             : 
    4026             :   //! \cond
    4027             :   using EmitterExplicitT<This>::aaa;
    4028             :   using EmitterExplicitT<This>::aad;
    4029             :   using EmitterExplicitT<This>::aam;
    4030             :   using EmitterExplicitT<This>::aas;
    4031             :   using EmitterExplicitT<This>::daa;
    4032             :   using EmitterExplicitT<This>::das;
    4033             :   //! \endcond
    4034             : 
    4035             :   ASMJIT_INST_0x(aaa, Aaa)                                             // X86 [IMPLICIT]
    4036             :   ASMJIT_INST_1x(aad, Aad, Imm)                                        // X86 [IMPLICIT]
    4037             :   ASMJIT_INST_1x(aam, Aam, Imm)                                        // X86 [IMPLICIT]
    4038             :   ASMJIT_INST_0x(aas, Aas)                                             // X86 [IMPLICIT]
    4039             :   ASMJIT_INST_0x(daa, Daa)                                             // X86 [IMPLICIT]
    4040             :   ASMJIT_INST_0x(das, Das)                                             // X86 [IMPLICIT]
    4041             : 
    4042             :   //! \}
    4043             : 
    4044             :   //! \name LAHF/SAHF Instructions
    4045             :   //! \{
    4046             : 
    4047             :   //! \cond
    4048             :   using EmitterExplicitT<This>::lahf;
    4049             :   using EmitterExplicitT<This>::sahf;
    4050             :   //! \endcond
    4051             : 
    4052             :   ASMJIT_INST_0x(lahf, Lahf)                                           // LAHFSAHF  [IMPLICIT] AH <- EFL
    4053             :   ASMJIT_INST_0x(sahf, Sahf)                                           // LAHFSAHF  [IMPLICIT] EFL <- AH
    4054             : 
    4055             :   //! \}
    4056             : 
    4057             :   //! \name CPUID Instruction
    4058             :   //! \{
    4059             : 
    4060             :   //! \cond
    4061             :   using EmitterExplicitT<This>::cpuid;
    4062             :   //! \endcond
    4063             : 
    4064             :   ASMJIT_INST_0x(cpuid, Cpuid)                                         // I486      [IMPLICIT] EAX:EBX:ECX:EDX  <- CPUID[EAX:ECX]
    4065             : 
    4066             :   //! \}
    4067             : 
    4068             :   //! \name CacheLine Instructions
    4069             :   //! \{
    4070             : 
    4071             :   //! \cond
    4072             :   using EmitterExplicitT<This>::clzero;
    4073             :   //! \endcond
    4074             : 
    4075             :   ASMJIT_INST_0x(clzero, Clzero)                                       // CLZERO    [IMPLICIT]
    4076             : 
    4077             :   //! \}
    4078             : 
    4079             :   //! \name RDPRU/RDPKRU Instructions
    4080             :   //! \{
    4081             : 
    4082             :   //! \cond
    4083             :   using EmitterExplicitT<This>::rdpru;
    4084             :   using EmitterExplicitT<This>::rdpkru;
    4085             :   //! \endcond
    4086             : 
    4087             :   ASMJIT_INST_0x(rdpru, Rdpru)                                         // RDPRU     [IMPLICIT] EDX:EAX <- PRU[ECX]
    4088             :   ASMJIT_INST_0x(rdpkru, Rdpkru)                                       // RDPKRU    [IMPLICIT] EDX:EAX <- PKRU[ECX]
    4089             : 
    4090             :   //! \}
    4091             : 
    4092             :   //! \name RDTSC/RDTSCP Instructions
    4093             :   //! \{
    4094             : 
    4095             :   //! \cond
    4096             :   using EmitterExplicitT<This>::rdtsc;
    4097             :   using EmitterExplicitT<This>::rdtscp;
    4098             :   //! \endcond
    4099             : 
    4100             :   ASMJIT_INST_0x(rdtsc, Rdtsc)                                         // RDTSC     [IMPLICIT] EDX:EAX <- CNT
    4101             :   ASMJIT_INST_0x(rdtscp, Rdtscp)                                       // RDTSCP    [IMPLICIT] EDX:EAX:EXC <- CNT
    4102             : 
    4103             :   //! \}
    4104             : 
    4105             :   //! \name BMI2 Instructions
    4106             :   //! \{
    4107             : 
    4108             :   //! \cond
    4109             :   using EmitterExplicitT<This>::mulx;
    4110             :   //! \endcond
    4111             : 
    4112             :   ASMJIT_INST_3x(mulx, Mulx, Gp, Gp, Gp)                               // BMI2      [IMPLICIT]
    4113             :   ASMJIT_INST_3x(mulx, Mulx, Gp, Gp, Mem)                              // BMI2      [IMPLICIT]
    4114             : 
    4115             :   //! \}
    4116             : 
    4117             :   //! \name XSAVE Instructions
    4118             :   //! \{
    4119             : 
    4120             :   //! \cond
    4121             :   using EmitterExplicitT<This>::xgetbv;
    4122             :   using EmitterExplicitT<This>::xrstor;
    4123             :   using EmitterExplicitT<This>::xrstor64;
    4124             :   using EmitterExplicitT<This>::xrstors;
    4125             :   using EmitterExplicitT<This>::xrstors64;
    4126             :   using EmitterExplicitT<This>::xsave;
    4127             :   using EmitterExplicitT<This>::xsave64;
    4128             :   using EmitterExplicitT<This>::xsavec;
    4129             :   using EmitterExplicitT<This>::xsavec64;
    4130             :   using EmitterExplicitT<This>::xsaveopt;
    4131             :   using EmitterExplicitT<This>::xsaveopt64;
    4132             :   using EmitterExplicitT<This>::xsaves;
    4133             :   using EmitterExplicitT<This>::xsaves64;
    4134             :   //! \endcond
    4135             : 
    4136             :   ASMJIT_INST_0x(xgetbv, Xgetbv)                                       // XSAVE     [IMPLICIT] EDX:EAX <- XCR[ECX]
    4137             :   ASMJIT_INST_1x(xrstor, Xrstor, Mem)                                  // XSAVE     [IMPLICIT]
    4138             :   ASMJIT_INST_1x(xrstor64, Xrstor64, Mem)                              // XSAVE+X64 [IMPLICIT]
    4139             :   ASMJIT_INST_1x(xrstors, Xrstors, Mem)                                // XSAVE     [IMPLICIT]
    4140             :   ASMJIT_INST_1x(xrstors64, Xrstors64, Mem)                            // XSAVE+X64 [IMPLICIT]
    4141             :   ASMJIT_INST_1x(xsave, Xsave, Mem)                                    // XSAVE     [IMPLICIT]
    4142             :   ASMJIT_INST_1x(xsave64, Xsave64, Mem)                                // XSAVE+X64 [IMPLICIT]
    4143             :   ASMJIT_INST_1x(xsavec, Xsavec, Mem)                                  // XSAVE     [IMPLICIT]
    4144             :   ASMJIT_INST_1x(xsavec64, Xsavec64, Mem)                              // XSAVE+X64 [IMPLICIT]
    4145             :   ASMJIT_INST_1x(xsaveopt, Xsaveopt, Mem)                              // XSAVE     [IMPLICIT]
    4146             :   ASMJIT_INST_1x(xsaveopt64, Xsaveopt64, Mem)                          // XSAVE+X64 [IMPLICIT]
    4147             :   ASMJIT_INST_1x(xsaves, Xsaves, Mem)                                  // XSAVE     [IMPLICIT]
    4148             :   ASMJIT_INST_1x(xsaves64, Xsaves64, Mem)                              // XSAVE+X64 [IMPLICIT]
    4149             : 
    4150             :   //! \}
    4151             : 
    4152             :   //! \name SYSCALL/SYSENTER Instructions
    4153             :   //! \{
    4154             : 
    4155             :   ASMJIT_INST_0x(syscall, Syscall)                                     // X64       [IMPLICIT]
    4156             :   ASMJIT_INST_0x(sysenter, Sysenter)                                   // X64       [IMPLICIT]
    4157             : 
    4158             :   //! \}
    4159             : 
    4160             :   //! \name HRESET Instructions
    4161             :   //! \{
    4162             : 
    4163             :   //! \cond
    4164             :   using EmitterExplicitT<This>::hreset;
    4165             :   //! \endcond
    4166             : 
    4167             :   ASMJIT_INST_1x(hreset, Hreset, Imm)                                  // HRESET    [IMPLICIT]
    4168             : 
    4169             :   //! \}
    4170             : 
    4171             :   //! \name Privileged Instructions
    4172             :   //! \{
    4173             : 
    4174             :   //! \cond
    4175             :   using EmitterExplicitT<This>::rdmsr;
    4176             :   using EmitterExplicitT<This>::rdpmc;
    4177             :   using EmitterExplicitT<This>::wrmsr;
    4178             :   using EmitterExplicitT<This>::xsetbv;
    4179             :   //! \endcond
    4180             : 
    4181             :   ASMJIT_INST_0x(pconfig, Pconfig)                                     // PCONFIG   [IMPLICIT]
    4182             :   ASMJIT_INST_0x(rdmsr, Rdmsr)                                         // ANY       [IMPLICIT]
    4183             :   ASMJIT_INST_0x(rdpmc, Rdpmc)                                         // ANY       [IMPLICIT]
    4184             :   ASMJIT_INST_0x(sysexit, Sysexit)                                     // X64       [IMPLICIT]
    4185             :   ASMJIT_INST_0x(sysexitq, Sysexitq)                                   // X64       [IMPLICIT]
    4186             :   ASMJIT_INST_0x(sysret, Sysret)                                       // X64       [IMPLICIT]
    4187             :   ASMJIT_INST_0x(sysretq, Sysretq)                                     // X64       [IMPLICIT]
    4188             :   ASMJIT_INST_0x(wrmsr, Wrmsr)                                         // ANY       [IMPLICIT]
    4189             :   ASMJIT_INST_0x(xsetbv, Xsetbv)                                       // XSAVE     [IMPLICIT] XCR[ECX] <- EDX:EAX
    4190             : 
    4191             :   //! \}
    4192             : 
    4193             :   //! \name Monitor & MWait Instructions
    4194             :   //! \{
    4195             : 
    4196             :   //! \cond
    4197             :   using EmitterExplicitT<This>::monitor;
    4198             :   using EmitterExplicitT<This>::monitorx;
    4199             :   using EmitterExplicitT<This>::mwait;
    4200             :   using EmitterExplicitT<This>::mwaitx;
    4201             :   //! \endcond
    4202             : 
    4203             :   ASMJIT_INST_0x(monitor, Monitor)
    4204             :   ASMJIT_INST_0x(monitorx, Monitorx)
    4205             :   ASMJIT_INST_0x(mwait, Mwait)
    4206             :   ASMJIT_INST_0x(mwaitx, Mwaitx)
    4207             : 
    4208             :   //! \}
    4209             : 
    4210             :   //! \name WAITPKG Instructions
    4211             :   //! \{
    4212             : 
    4213             :   //! \cond
    4214             :   using EmitterExplicitT<This>::tpause;
    4215             :   using EmitterExplicitT<This>::umwait;
    4216             :   //! \endcond
    4217             : 
    4218             :   ASMJIT_INST_1x(tpause, Tpause, Gp)
    4219             :   ASMJIT_INST_1x(umwait, Umwait, Gp)
    4220             : 
    4221             :   //! \}
    4222             : 
    4223             :   //! \name MMX & SSE Instructions
    4224             :   //! \{
    4225             : 
    4226             :   //! \cond
    4227             :   using EmitterExplicitT<This>::blendvpd;
    4228             :   using EmitterExplicitT<This>::blendvps;
    4229             :   using EmitterExplicitT<This>::maskmovq;
    4230             :   using EmitterExplicitT<This>::maskmovdqu;
    4231             :   using EmitterExplicitT<This>::pblendvb;
    4232             :   using EmitterExplicitT<This>::pcmpestri;
    4233             :   using EmitterExplicitT<This>::pcmpestrm;
    4234             :   using EmitterExplicitT<This>::pcmpistri;
    4235             :   using EmitterExplicitT<This>::pcmpistrm;
    4236             :   //! \endcond
    4237             : 
    4238             :   ASMJIT_INST_2x(blendvpd, Blendvpd, Xmm, Xmm)                         // SSE4_1 [IMPLICIT]
    4239             :   ASMJIT_INST_2x(blendvpd, Blendvpd, Xmm, Mem)                         // SSE4_1 [IMPLICIT]
    4240             :   ASMJIT_INST_2x(blendvps, Blendvps, Xmm, Xmm)                         // SSE4_1 [IMPLICIT]
    4241             :   ASMJIT_INST_2x(blendvps, Blendvps, Xmm, Mem)                         // SSE4_1 [IMPLICIT]
    4242             :   ASMJIT_INST_2x(pblendvb, Pblendvb, Xmm, Xmm)                         // SSE4_1 [IMPLICIT]
    4243             :   ASMJIT_INST_2x(pblendvb, Pblendvb, Xmm, Mem)                         // SSE4_1 [IMPLICIT]
    4244             :   ASMJIT_INST_2x(maskmovq, Maskmovq, Mm, Mm)                           // SSE    [IMPLICIT]
    4245             :   ASMJIT_INST_2x(maskmovdqu, Maskmovdqu, Xmm, Xmm)                     // SSE2   [IMPLICIT]
    4246             :   ASMJIT_INST_3x(pcmpestri, Pcmpestri, Xmm, Xmm, Imm)                  // SSE4_1 [IMPLICIT]
    4247             :   ASMJIT_INST_3x(pcmpestri, Pcmpestri, Xmm, Mem, Imm)                  // SSE4_1 [IMPLICIT]
    4248             :   ASMJIT_INST_3x(pcmpestrm, Pcmpestrm, Xmm, Xmm, Imm)                  // SSE4_1 [IMPLICIT]
    4249             :   ASMJIT_INST_3x(pcmpestrm, Pcmpestrm, Xmm, Mem, Imm)                  // SSE4_1 [IMPLICIT]
    4250             :   ASMJIT_INST_3x(pcmpistri, Pcmpistri, Xmm, Xmm, Imm)                  // SSE4_1 [IMPLICIT]
    4251             :   ASMJIT_INST_3x(pcmpistri, Pcmpistri, Xmm, Mem, Imm)                  // SSE4_1 [IMPLICIT]
    4252             :   ASMJIT_INST_3x(pcmpistrm, Pcmpistrm, Xmm, Xmm, Imm)                  // SSE4_1 [IMPLICIT]
    4253             :   ASMJIT_INST_3x(pcmpistrm, Pcmpistrm, Xmm, Mem, Imm)                  // SSE4_1 [IMPLICIT]
    4254             : 
    4255             :   //! \}
    4256             : 
    4257             :   //! \name SHA Instructions
    4258             :   //! \{
    4259             : 
    4260             :   //! \cond
    4261             :   using EmitterExplicitT<This>::sha256rnds2;
    4262             :   //! \endcond
    4263             : 
    4264             :   ASMJIT_INST_2x(sha256rnds2, Sha256rnds2, Xmm, Xmm)                   // SHA [IMPLICIT]
    4265             :   ASMJIT_INST_2x(sha256rnds2, Sha256rnds2, Xmm, Mem)                   // SHA [IMPLICIT]
    4266             : 
    4267             :   //! \}
    4268             : 
    4269             :   //! \name AVX, FMA, and AVX512 Instructions
    4270             :   //! \{
    4271             : 
    4272             :   //! \cond
    4273             :   using EmitterExplicitT<This>::vmaskmovdqu;
    4274             :   using EmitterExplicitT<This>::vpcmpestri;
    4275             :   using EmitterExplicitT<This>::vpcmpestrm;
    4276             :   using EmitterExplicitT<This>::vpcmpistri;
    4277             :   using EmitterExplicitT<This>::vpcmpistrm;
    4278             :   //! \endcond
    4279             : 
    4280             :   ASMJIT_INST_2x(vmaskmovdqu, Vmaskmovdqu, Xmm, Xmm)                   // AVX [IMPLICIT]
    4281             :   ASMJIT_INST_3x(vpcmpestri, Vpcmpestri, Xmm, Xmm, Imm)                // AVX [IMPLICIT]
    4282             :   ASMJIT_INST_3x(vpcmpestri, Vpcmpestri, Xmm, Mem, Imm)                // AVX [IMPLICIT]
    4283             :   ASMJIT_INST_3x(vpcmpestrm, Vpcmpestrm, Xmm, Xmm, Imm)                // AVX [IMPLICIT]
    4284             :   ASMJIT_INST_3x(vpcmpestrm, Vpcmpestrm, Xmm, Mem, Imm)                // AVX [IMPLICIT]
    4285             :   ASMJIT_INST_3x(vpcmpistri, Vpcmpistri, Xmm, Xmm, Imm)                // AVX [IMPLICIT]
    4286             :   ASMJIT_INST_3x(vpcmpistri, Vpcmpistri, Xmm, Mem, Imm)                // AVX [IMPLICIT]
    4287             :   ASMJIT_INST_3x(vpcmpistrm, Vpcmpistrm, Xmm, Xmm, Imm)                // AVX [IMPLICIT]
    4288             :   ASMJIT_INST_3x(vpcmpistrm, Vpcmpistrm, Xmm, Mem, Imm)                // AVX [IMPLICIT]
    4289             : 
    4290             :   //! \}
    4291             : };
    4292             : 
    4293             : //! Emitter (X86).
    4294             : //!
    4295             : //! \note This class cannot be instantiated, you can only cast to it and use it as emitter that emits to either
    4296             : //! `x86::Assembler`, `x86::Builder`, or `x86::Compiler` (use with caution with `x86::Compiler` as it requires
    4297             : //! virtual registers).
    4298             : class Emitter : public BaseEmitter, public EmitterImplicitT<Emitter> {
    4299             :   ASMJIT_NONCONSTRUCTIBLE(Emitter)
    4300             : };
    4301             : 
    4302             : //! \}
    4303             : 
    4304             : #undef ASMJIT_INST_0x
    4305             : #undef ASMJIT_INST_1x
    4306             : #undef ASMJIT_INST_1c
    4307             : #undef ASMJIT_INST_2x
    4308             : #undef ASMJIT_INST_2c
    4309             : #undef ASMJIT_INST_3x
    4310             : #undef ASMJIT_INST_4x
    4311             : #undef ASMJIT_INST_5x
    4312             : #undef ASMJIT_INST_6x
    4313             : 
    4314             : ASMJIT_END_SUB_NAMESPACE
    4315             : 
    4316             : #endif // ASMJIT_X86_X86EMITTER_H_INCLUDED
    4317             : 
    4318             : #endif // __PLUMED_HAS_ASMJIT

Generated by: LCOV version 1.16