/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode_evex.h 12238 2014-03-14 20:26:50Z sshwarts $
/////////////////////////////////////////////////////////////////////////
//
//   Copyright (c) 2013-2014 Stanislav Shwartsman
//          Written by Stanislav Shwartsman [sshwarts at sourceforge net]
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Lesser General Public
//  License as published by the Free Software Foundation; either
//  version 2 of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA
//
/////////////////////////////////////////////////////////////////////////

#ifndef BX_EVEX_FETCHDECODE_TABLES_H
#define BX_EVEX_FETCHDECODE_TABLES_H

#if BX_SUPPORT_EVEX

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10R[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10M[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10[2] = {
  /* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10R },
  /* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10M },
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10R_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10M_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10_Mask[2] = {
  /* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10R_Mask },
  /* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10M_Mask },
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11R[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssHpsVss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdHpdVsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11M[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssVss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdVsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11[2] = {
  /* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11R },
  /* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11M },
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11R_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssHpsVss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdHpdVsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11M_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssVss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdVsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11_Mask[2] = {
  /* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11R_Mask },
  /* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11M_Mask },
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f12[4] = {
  /* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVLPS_VpsHpsMq },
  /* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVLPD_VpdHpdMq },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSLDUP_VpsWps },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVDDUP_VpdWpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f12_Mask[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSLDUP_VpsWps_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMOVDDUP_VpdWpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f13M[2] = {
  /* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVLPS_MqVps },
  /* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVLPD_MqVsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f14[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VUNPCKLPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VUNPCKLPD_VpdHpdWpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f14_Mask[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VUNPCKLPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VUNPCKLPD_VpdHpdWpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f15[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VUNPCKHPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VUNPCKHPD_VpdHpdWpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f15_Mask[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VUNPCKHPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VUNPCKHPD_VpdHpdWpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f16[4] = {
  /* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVHPS_VpsHpsMq },
  /* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVHPD_VpdHpdMq },
  /* F3 */ { BxVexW0, BX_IA_V512_VMOVSHDUP_VpsWps },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f17M[2] = {
  /* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVHPS_MqVps },
  /* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVHPD_MqVsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f28[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_VpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_VpdWpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f28_Mask[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_VpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_VpdWpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f29[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_WpsVps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_WpdVpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f29_Mask[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_WpsVps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_WpdVpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2a[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSI2SS_VssEd },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSI2SD_VsdEd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2b[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMOVNTPS_MpsVps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMOVNTPD_MpdVpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2c[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTTSS2SI_GdWss },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTTSD2SI_GdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2d[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSS2SI_GdWss },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSD2SI_GdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2e[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VUCOMISS_VssWss },
  /* 66 */ { BxVexW1, BX_IA_V512_VUCOMISD_VsdWsd }            	
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2f[2] = {
  /* -- */ { BxVexW0, BX_IA_V512_VCOMISS_VssWss },
  /* 66 */ { BxVexW1, BX_IA_V512_VCOMISD_VsdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f51[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VSQRTPS_VpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VSQRTPD_VpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VSQRTSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VSQRTSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f51_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VSQRTPS_VpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VSQRTPD_VpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VSQRTSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VSQRTSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f58[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VADDPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VADDPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VADDSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VADDSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f58_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VADDPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VADDPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VADDSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VADDSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f59[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMULPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMULPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMULSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMULSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f59_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMULPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMULPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMULSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMULSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5a[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VCVTPS2PD_VpdWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VCVTPD2PS_VpsWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTSS2SD_VsdWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VCVTSD2SS_VssWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5a_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VCVTPS2PD_VpdWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VCVTPD2PS_VpsWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTSS2SD_VsdWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VCVTSD2SS_VssWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5b[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VCVTDQ2PS_VpsWdq },
  /* 66 */ { BxVexW0, BX_IA_V512_VCVTPS2DQ_VdqWps },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTTPS2DQ_VdqWps },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5b_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VCVTDQ2PS_VpsWdq_Kmask },
  /* 66 */ { BxVexW0, BX_IA_V512_VCVTPS2DQ_VdqWps_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTTPS2DQ_VdqWps_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5c[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VSUBPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VSUBPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VSUBSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VSUBSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5c_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VSUBPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VSUBPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VSUBSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VSUBSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5d[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMINPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMINPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMINSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMINSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5d_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMINPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMINPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMINSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMINSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5e[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VDIVPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VDIVPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VDIVSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VDIVSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5e_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VDIVPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VDIVPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VDIVSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VDIVSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5f[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMAXPS_VpsHpsWps },
  /* 66 */ { BxVexW1, BX_IA_V512_VMAXPD_VpdHpdWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VMAXSS_VssHpsWss },
  /* F2 */ { BxVexW1, BX_IA_V512_VMAXSD_VsdHpdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5f_Mask[4] = {
  /* -- */ { BxVexW0, BX_IA_V512_VMAXPS_VpsHpsWps_Kmask },
  /* 66 */ { BxVexW1, BX_IA_V512_VMAXPD_VpdHpdWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VMAXSS_VssHpsWss_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VMAXSD_VsdHpdWsd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f6f[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_VdqWdq },
  /* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_VdqWdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f6f_Mask[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_VdqWdq_Kmask },
  /* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_VdqWdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f78[4] = {
  /* -- */ { BxAliasVexW, BX_IA_V512_VCVTTPS2UDQ_VdqWps },
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTTSS2USI_GdWss },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTTSD2USI_GdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f79[4] = {
  /* -- */ { BxAliasVexW, BX_IA_V512_VCVTPS2UDQ_VdqWps },
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSS2USI_GdWss },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSD2USI_GdWsd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7a[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PD_VpdWdq },
  /* F2 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PS_VpsWdq }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7a_Mask[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PD_VpdWdq_Kmask },
  /* F2 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PS_VpsWdq_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7b[3] = {
  /* 66 */ { 0, BX_IA_ERROR },
  /* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTUSI2SS_VssEd },
  /* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTUSI2SD_VsdEd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7e[3] = {
  /* 66 */ { BxAliasVexW64, BX_IA_V512_VMOVD_EdVd },
  /* F3 */ {       BxVexW1, BX_IA_V512_VMOVQ_VqWq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7f[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_WdqVdq },
  /* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7f_Mask[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_WdqVdq_Kmask },
  /* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc2[4] = {
  /* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VCMPPS_KGwHpsWpsIb },
  /* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VCMPPD_KGbHpdWpdIb },
  /* F3 */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VCMPSS_KGbHssWssIb },
  /* F2 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VCMPSD_KGbHsdWsdIb }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc6[2] = {
  /* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VSHUFPS_VpsHpsWpsIb },
  /* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VSHUFPD_VpdHpdWpdIb }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc6_Mask[2] = {
  /* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VSHUFPS_VpsHpsWpsIb_Kmask },
  /* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VSHUFPD_VpdHpdWpdIb_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fe6[3] = {
  /* 66 */ { BxVexW1, BX_IA_V512_VCVTTPD2DQ_VdqWpd },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTDQ2PD_VpdWdq },
  /* F2 */ { BxVexW1, BX_IA_V512_VCVTPD2DQ_VdqWpd }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fe6_Mask[3] = {
  /* 66 */ { BxVexW1, BX_IA_V512_VCVTTPD2DQ_VdqWpd_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VCVTDQ2PD_VpdWdq_Kmask },
  /* F2 */ { BxVexW1, BX_IA_V512_VCVTPD2DQ_VdqWpd_Kmask }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3813[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VCVTPH2PS_VpsWps },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSDW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3813_Mask[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VCVTPH2PS_VpsWps_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSDW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3814[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VPRORVD_VdqHdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3814_Mask[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VPRORVD_VdqHdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3815[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VPROLVD_VdqHdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQD_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3815_Mask[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VPROLVD_VdqHdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQD_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3821[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXBD_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDB_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3821_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXBD_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDB_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3822[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXBQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQB_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3822_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXBQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQB_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3823[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXWD_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3823_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXWQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3824[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXWQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3824_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVSXWD_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3825[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VPMOVSXDQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQD_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3825_Mask[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VPMOVSXDQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQD_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3827[3] = {
  /* 66 */ { BxAliasVexW, BX_IA_V512_VPTESTMD_KGwHdqWdq },
  /* F3 */ { BxAliasVexW, BX_IA_V512_VPTESTNMD_KGwHdqWdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f382a[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VMOVNTDQA_VdqMdq },
  /* F3 */ { BxVexW1, BX_IA_V512_VPBROADCASTMB2Q_VdqKEb },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3831[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXBD_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVDB_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3831_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXBD_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVDB_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3832[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXBQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQB_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3832_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXBQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQB_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3833[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXWD_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVDW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3833_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXWQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVDW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3834[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXWQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQW_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3834_Mask[3] = {
  /* 66 */ { 0, BX_IA_V512_VPMOVZXWD_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQW_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3835[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VPMOVZXDQ_VdqWdq },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQD_WdqVdq },
  /* F2 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3835_Mask[3] = {
  /* 66 */ { BxVexW0, BX_IA_V512_VPMOVZXDQ_VdqWdq_Kmask },
  /* F3 */ { BxVexW0, BX_IA_V512_VPMOVQD_WdqVdq_Kmask },
  /* F2 */ { 0, BX_IA_ERROR }
};

/* ************************************************************************ */

/* ******** */
/* Group 13 */
/* ******** */

static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G13R[8] = {
  /* 0 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPRORD_UdqIb },
  /* 1 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPROLD_UdqIb },
  /* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0,     BX_IA_V512_VPSRLD_UdqIb },
  /* 3 */ { 0, BX_IA_ERROR },
  /* 4 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPSRAD_UdqIb },
  /* 5 */ { 0, BX_IA_ERROR },
  /* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0,     BX_IA_V512_VPSLLD_UdqIb },
  /* 7 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G13R_Mask[8] = {
  /* 0 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPRORD_UdqIb_Kmask },
  /* 1 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPROLD_UdqIb_Kmask },
  /* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0,     BX_IA_V512_VPSRLD_UdqIb_Kmask },
  /* 3 */ { 0, BX_IA_ERROR },
  /* 4 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPSRAD_UdqIb_Kmask },
  /* 5 */ { 0, BX_IA_ERROR },
  /* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0,     BX_IA_V512_VPSLLD_UdqIb_Kmask },
  /* 7 */ { 0, BX_IA_ERROR }
};

/* ******** */
/* Group 14 */
/* ******** */

static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G14R[8] = {
  /* 0 */ { 0, BX_IA_ERROR },
  /* 1 */ { 0, BX_IA_ERROR },
  /* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSRLQ_UdqIb },
  /* 3 */ { 0, BX_IA_ERROR },
  /* 4 */ { 0, BX_IA_ERROR },
  /* 5 */ { 0, BX_IA_ERROR },
  /* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSLLQ_UdqIb },
  /* 7 */ { 0, BX_IA_ERROR }
};

static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G14R_Mask[8] = {
  /* 0 */ { 0, BX_IA_ERROR },
  /* 1 */ { 0, BX_IA_ERROR },
  /* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSRLQ_UdqIb_Kmask },
  /* 3 */ { 0, BX_IA_ERROR },
  /* 4 */ { 0, BX_IA_ERROR },
  /* 5 */ { 0, BX_IA_ERROR },
  /* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSLLQ_UdqIb_Kmask },
  /* 7 */ { 0, BX_IA_ERROR }
};

/* ************************************************************************ */

static const BxOpcodeInfo_t BxOpcodeTableEVEX[256*3*2] = {
  // 256 entries for EVEX-encoded 0x0F opcodes
  /* 00 k0 */ { 0, BX_IA_ERROR },
  /* 00    */ { 0, BX_IA_ERROR },
  /* 01 k0 */ { 0, BX_IA_ERROR },
  /* 01    */ { 0, BX_IA_ERROR },
  /* 02 k0 */ { 0, BX_IA_ERROR },
  /* 02    */ { 0, BX_IA_ERROR },
  /* 03 k0 */ { 0, BX_IA_ERROR },
  /* 03    */ { 0, BX_IA_ERROR },
  /* 04 k0 */ { 0, BX_IA_ERROR },
  /* 04    */ { 0, BX_IA_ERROR },
  /* 05 k0 */ { 0, BX_IA_ERROR },
  /* 05    */ { 0, BX_IA_ERROR },
  /* 06 k0 */ { 0, BX_IA_ERROR },
  /* 06    */ { 0, BX_IA_ERROR },
  /* 07 k0 */ { 0, BX_IA_ERROR },
  /* 07    */ { 0, BX_IA_ERROR },
  /* 08 k0 */ { 0, BX_IA_ERROR },
  /* 08    */ { 0, BX_IA_ERROR },
  /* 09 k0 */ { 0, BX_IA_ERROR },
  /* 09    */ { 0, BX_IA_ERROR },
  /* 0A k0 */ { 0, BX_IA_ERROR },
  /* 0A    */ { 0, BX_IA_ERROR },
  /* 0B k0 */ { 0, BX_IA_ERROR },
  /* 0B    */ { 0, BX_IA_ERROR },
  /* 0C k0 */ { 0, BX_IA_ERROR },
  /* 0C    */ { 0, BX_IA_ERROR },
  /* 0D k0 */ { 0, BX_IA_ERROR },
  /* 0D    */ { 0, BX_IA_ERROR },
  /* 0E k0 */ { 0, BX_IA_ERROR },
  /* 0E    */ { 0, BX_IA_ERROR },
  /* 0F k0 */ { 0, BX_IA_ERROR },
  /* 0F    */ { 0, BX_IA_ERROR },
  /* 10 k0 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10 },      // split because of VMOVSS/VMOVSD encoding issue
  /* 10    */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10_Mask }, // split because of VMOVSS/VMOVSD encoding issue
  /* 11 k0 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11 },      // split because of VMOVSS/VMOVSD encoding issue
  /* 11    */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11_Mask }, // split because of VMOVSS/VMOVSD encoding issue
  /* 12 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f12 },
  /* 12    */ { BxPrefixSSE,  BX_IA_ERROR, BxOpcodeGroupEVEX_0f12_Mask },
  /* 13 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f13M },
  /* 13    */ { 0, BX_IA_ERROR }, // #UD
  /* 14 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f14 },
  /* 14    */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f14_Mask },
  /* 15 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f15 },
  /* 15    */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f15_Mask },
  /* 16 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f16 },
  /* 16    */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VMOVSHDUP_VpsWps_Kmask },
  /* 17 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f17M },
  /* 17    */ { 0, BX_IA_ERROR }, // #UD
  /* 18 k0 */ { 0, BX_IA_ERROR },
  /* 18    */ { 0, BX_IA_ERROR },
  /* 19 k0 */ { 0, BX_IA_ERROR },
  /* 19    */ { 0, BX_IA_ERROR },
  /* 1A k0 */ { 0, BX_IA_ERROR },
  /* 1A    */ { 0, BX_IA_ERROR },
  /* 1B k0 */ { 0, BX_IA_ERROR },
  /* 1B    */ { 0, BX_IA_ERROR },
  /* 1C k0 */ { 0, BX_IA_ERROR },
  /* 1C    */ { 0, BX_IA_ERROR },
  /* 1D k0 */ { 0, BX_IA_ERROR },
  /* 1D    */ { 0, BX_IA_ERROR },
  /* 1E k0 */ { 0, BX_IA_ERROR },
  /* 1E    */ { 0, BX_IA_ERROR },
  /* 1F k0 */ { 0, BX_IA_ERROR },
  /* 1F    */ { 0, BX_IA_ERROR },
  /* 20 k0 */ { 0, BX_IA_ERROR },
  /* 20    */ { 0, BX_IA_ERROR },
  /* 21 k0 */ { 0, BX_IA_ERROR },
  /* 21    */ { 0, BX_IA_ERROR },
  /* 22 k0 */ { 0, BX_IA_ERROR },
  /* 22    */ { 0, BX_IA_ERROR },
  /* 23 k0 */ { 0, BX_IA_ERROR },
  /* 23    */ { 0, BX_IA_ERROR },
  /* 24 k0 */ { 0, BX_IA_ERROR },
  /* 24    */ { 0, BX_IA_ERROR },
  /* 25 k0 */ { 0, BX_IA_ERROR },
  /* 25    */ { 0, BX_IA_ERROR },
  /* 26 k0 */ { 0, BX_IA_ERROR },
  /* 26    */ { 0, BX_IA_ERROR },
  /* 27 k0 */ { 0, BX_IA_ERROR },
  /* 27    */ { 0, BX_IA_ERROR },
  /* 28 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f28 },
  /* 28    */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f28_Mask },
  /* 29 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f29 },
  /* 29    */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f29_Mask },
  /* 2A k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2a },
  /* 2A    */ { 0, BX_IA_ERROR }, // #UD
  /* 2B k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2b },
  /* 2B    */ { 0, BX_IA_ERROR }, // #UD
  /* 2C k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2c },
  /* 2C    */ { 0, BX_IA_ERROR }, // #UD
  /* 2D k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2d },
  /* 2D    */ { 0, BX_IA_ERROR }, // #UD
  /* 2E k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2e },
  /* 2E    */ { 0, BX_IA_ERROR }, // #UD
  /* 2F k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2f },
  /* 2F    */ { 0, BX_IA_ERROR }, // #UD
  /* 30 k0 */ { 0, BX_IA_ERROR },
  /* 30    */ { 0, BX_IA_ERROR },
  /* 31 k0 */ { 0, BX_IA_ERROR },
  /* 31    */ { 0, BX_IA_ERROR },
  /* 32 k0 */ { 0, BX_IA_ERROR },
  /* 32    */ { 0, BX_IA_ERROR },
  /* 33 k0 */ { 0, BX_IA_ERROR },
  /* 33    */ { 0, BX_IA_ERROR },
  /* 34 k0 */ { 0, BX_IA_ERROR },
  /* 34    */ { 0, BX_IA_ERROR },
  /* 35 k0 */ { 0, BX_IA_ERROR },
  /* 35    */ { 0, BX_IA_ERROR },
  /* 36 k0 */ { 0, BX_IA_ERROR },
  /* 36    */ { 0, BX_IA_ERROR },
  /* 37 k0 */ { 0, BX_IA_ERROR },
  /* 37    */ { 0, BX_IA_ERROR },
  /* 38 k0 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
  /* 38    */ { 0, BX_IA_ERROR }, // 3-Byte Escape
  /* 39 k0 */ { 0, BX_IA_ERROR },
  /* 39    */ { 0, BX_IA_ERROR },
  /* 3A k0 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
  /* 3A    */ { 0, BX_IA_ERROR }, // 3-Byte Escape
  /* 3B k0 */ { 0, BX_IA_ERROR },
  /* 3B    */ { 0, BX_IA_ERROR },
  /* 3C k0 */ { 0, BX_IA_ERROR },
  /* 3C    */ { 0, BX_IA_ERROR },
  /* 3D k0 */ { 0, BX_IA_ERROR },
  /* 3D    */ { 0, BX_IA_ERROR },
  /* 3E k0 */ { 0, BX_IA_ERROR },
  /* 3E    */ { 0, BX_IA_ERROR },
  /* 3F k0 */ { 0, BX_IA_ERROR },
  /* 3F    */ { 0, BX_IA_ERROR },
  /* 40 k0 */ { 0, BX_IA_ERROR },
  /* 40    */ { 0, BX_IA_ERROR },
  /* 41 k0 */ { 0, BX_IA_ERROR },
  /* 41    */ { 0, BX_IA_ERROR },
  /* 42 k0 */ { 0, BX_IA_ERROR },
  /* 42    */ { 0, BX_IA_ERROR },
  /* 43 k0 */ { 0, BX_IA_ERROR },
  /* 43    */ { 0, BX_IA_ERROR },
  /* 44 k0 */ { 0, BX_IA_ERROR },
  /* 44    */ { 0, BX_IA_ERROR },
  /* 45 k0 */ { 0, BX_IA_ERROR },
  /* 45    */ { 0, BX_IA_ERROR },
  /* 46 k0 */ { 0, BX_IA_ERROR },
  /* 46    */ { 0, BX_IA_ERROR },
  /* 47 k0 */ { 0, BX_IA_ERROR },
  /* 47    */ { 0, BX_IA_ERROR },
  /* 48 k0 */ { 0, BX_IA_ERROR },
  /* 48    */ { 0, BX_IA_ERROR },
  /* 49 k0 */ { 0, BX_IA_ERROR },
  /* 49    */ { 0, BX_IA_ERROR },
  /* 4A k0 */ { 0, BX_IA_ERROR },
  /* 4A    */ { 0, BX_IA_ERROR },
  /* 4B k0 */ { 0, BX_IA_ERROR },
  /* 4B    */ { 0, BX_IA_ERROR },
  /* 4C k0 */ { 0, BX_IA_ERROR },
  /* 4C    */ { 0, BX_IA_ERROR },
  /* 4D k0 */ { 0, BX_IA_ERROR },
  /* 4D    */ { 0, BX_IA_ERROR },
  /* 4E k0 */ { 0, BX_IA_ERROR },
  /* 4E    */ { 0, BX_IA_ERROR },
  /* 4F k0 */ { 0, BX_IA_ERROR },
  /* 4F    */ { 0, BX_IA_ERROR },
  /* 50 k0 */ { 0, BX_IA_ERROR },
  /* 50    */ { 0, BX_IA_ERROR },
  /* 51 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f51 },
  /* 51    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f51_Mask },
  /* 52 k0 */ { 0, BX_IA_ERROR },
  /* 52    */ { 0, BX_IA_ERROR },
  /* 53 k0 */ { 0, BX_IA_ERROR },
  /* 53    */ { 0, BX_IA_ERROR },
  /* 54 k0 */ { 0, BX_IA_ERROR },
  /* 54    */ { 0, BX_IA_ERROR },
  /* 55 k0 */ { 0, BX_IA_ERROR },
  /* 55    */ { 0, BX_IA_ERROR },
  /* 56 k0 */ { 0, BX_IA_ERROR },
  /* 56    */ { 0, BX_IA_ERROR },
  /* 57 k0 */ { 0, BX_IA_ERROR },
  /* 57    */ { 0, BX_IA_ERROR },
  /* 58 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f58 },
  /* 58    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f58_Mask },
  /* 59 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f59 },
  /* 59    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f59_Mask },
  /* 5A k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5a },
  /* 5A    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5a_Mask },
  /* 5B k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5b },
  /* 5B    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5b_Mask },
  /* 5C k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5c },
  /* 5C    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5c_Mask },
  /* 5D k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5d },
  /* 5D    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5d_Mask },
  /* 5E k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5e },
  /* 5E    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5e_Mask },
  /* 5F k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5f },
  /* 5F    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5f_Mask },
  /* 60 k0 */ { 0, BX_IA_ERROR },
  /* 60    */ { 0, BX_IA_ERROR },
  /* 61 k0 */ { 0, BX_IA_ERROR },
  /* 61    */ { 0, BX_IA_ERROR },
  /* 62 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq },
  /* 62    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq_Kmask },
  /* 63 k0 */ { 0, BX_IA_ERROR },
  /* 63    */ { 0, BX_IA_ERROR },
  /* 64 k0 */ { 0, BX_IA_ERROR },
  /* 64    */ { 0, BX_IA_ERROR },
  /* 65 k0 */ { 0, BX_IA_ERROR },
  /* 65    */ { 0, BX_IA_ERROR },
  /* 66 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPGTD_KGwHdqWdq },
  /* 66    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPGTD_KGwHdqWdq },
  /* 67 k0 */ { 0, BX_IA_ERROR },
  /* 67    */ { 0, BX_IA_ERROR },
  /* 68 k0 */ { 0, BX_IA_ERROR },
  /* 68    */ { 0, BX_IA_ERROR },
  /* 69 k0 */ { 0, BX_IA_ERROR },
  /* 69    */ { 0, BX_IA_ERROR },
  /* 6A k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq },
  /* 6A    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq_Kmask },
  /* 6B k0 */ { 0, BX_IA_ERROR },
  /* 6B    */ { 0, BX_IA_ERROR },
  /* 6C k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq },
  /* 6C    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq_Kmask },
  /* 6D k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq },
  /* 6D    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq_Kmask },
  /* 6E k0 */ { BxVexL0 | BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VMOVD_VdqEd },
  /* 6E    */ { 0, BX_IA_ERROR }, // #UD
  /* 6F k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f6f },
  /* 6F    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f6f_Mask },
  /* 70 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPSHUFD_VdqWdqIb },
  /* 70    */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPSHUFD_VdqWdqIb_Kmask },
  /* 71 k0 */ { 0, BX_IA_ERROR },
  /* 71    */ { 0, BX_IA_ERROR },
  /* 72 k0 */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoEVEX_G13R },
  /* 72    */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoEVEX_G13R_Mask },
  /* 73 k0 */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoEVEX_G14R },
  /* 73    */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoEVEX_G14R_Mask },
  /* 74 k0 */ { 0, BX_IA_ERROR },
  /* 74    */ { 0, BX_IA_ERROR },
  /* 75 k0 */ { 0, BX_IA_ERROR },
  /* 75    */ { 0, BX_IA_ERROR },
  /* 76 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPEQD_KGwHdqWdq },
  /* 76    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPEQD_KGwHdqWdq },
  /* 77 k0 */ { 0, BX_IA_ERROR },
  /* 77    */ { 0, BX_IA_ERROR },
  /* 78 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f78 },
  /* 78    */ { BxPrefixSSE | BxAliasVexW, BX_IA_V512_VCVTTPS2UDQ_VdqWps_Kmask, BxOpcodeGroupSSE_ERR },
  /* 79 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f79 },
  /* 79    */ { BxPrefixSSE | BxAliasVexW, BX_IA_V512_VCVTPS2UDQ_VdqWps_Kmask, BxOpcodeGroupSSE_ERR },
  /* 7A k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7a },
  /* 7A    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7a_Mask },
  /* 7B k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7b },
  /* 7B    */ { 0, BX_IA_ERROR }, // #UD
  /* 7C k0 */ { 0, BX_IA_ERROR },
  /* 7C    */ { 0, BX_IA_ERROR },
  /* 7D k0 */ { 0, BX_IA_ERROR },
  /* 7D    */ { 0, BX_IA_ERROR },
  /* 7E k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7e },
  /* 7E    */ { 0, BX_IA_ERROR }, // #UD
  /* 7F k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7f },
  /* 7F    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7f_Mask },
  /* 80 k0 */ { 0, BX_IA_ERROR },
  /* 80    */ { 0, BX_IA_ERROR },
  /* 81 k0 */ { 0, BX_IA_ERROR },
  /* 81    */ { 0, BX_IA_ERROR },
  /* 82 k0 */ { 0, BX_IA_ERROR },
  /* 82    */ { 0, BX_IA_ERROR },
  /* 83 k0 */ { 0, BX_IA_ERROR },
  /* 83    */ { 0, BX_IA_ERROR },
  /* 84 k0 */ { 0, BX_IA_ERROR },
  /* 84    */ { 0, BX_IA_ERROR },
  /* 85 k0 */ { 0, BX_IA_ERROR },
  /* 85    */ { 0, BX_IA_ERROR },
  /* 86 k0 */ { 0, BX_IA_ERROR },
  /* 86    */ { 0, BX_IA_ERROR },
  /* 87 k0 */ { 0, BX_IA_ERROR },
  /* 87    */ { 0, BX_IA_ERROR },
  /* 88 k0 */ { 0, BX_IA_ERROR },
  /* 88    */ { 0, BX_IA_ERROR },
  /* 89 k0 */ { 0, BX_IA_ERROR },
  /* 89    */ { 0, BX_IA_ERROR },
  /* 8A k0 */ { 0, BX_IA_ERROR },
  /* 8A    */ { 0, BX_IA_ERROR },
  /* 8B k0 */ { 0, BX_IA_ERROR },
  /* 8B    */ { 0, BX_IA_ERROR },
  /* 8C k0 */ { 0, BX_IA_ERROR },
  /* 8C    */ { 0, BX_IA_ERROR },
  /* 8D k0 */ { 0, BX_IA_ERROR },
  /* 8D    */ { 0, BX_IA_ERROR },
  /* 8E k0 */ { 0, BX_IA_ERROR },
  /* 8E    */ { 0, BX_IA_ERROR },
  /* 8F k0 */ { 0, BX_IA_ERROR },
  /* 8F    */ { 0, BX_IA_ERROR },
  /* 90 k0 */ { 0, BX_IA_ERROR },
  /* 90    */ { 0, BX_IA_ERROR },
  /* 91 k0 */ { 0, BX_IA_ERROR },
  /* 91    */ { 0, BX_IA_ERROR },
  /* 92 k0 */ { 0, BX_IA_ERROR },
  /* 92    */ { 0, BX_IA_ERROR },
  /* 93 k0 */ { 0, BX_IA_ERROR },
  /* 93    */ { 0, BX_IA_ERROR },
  /* 94 k0 */ { 0, BX_IA_ERROR },
  /* 94    */ { 0, BX_IA_ERROR },
  /* 95 k0 */ { 0, BX_IA_ERROR },
  /* 95    */ { 0, BX_IA_ERROR },
  /* 96 k0 */ { 0, BX_IA_ERROR },
  /* 96    */ { 0, BX_IA_ERROR },
  /* 97 k0 */ { 0, BX_IA_ERROR },
  /* 97    */ { 0, BX_IA_ERROR },
  /* 98 k0 */ { 0, BX_IA_ERROR },
  /* 98    */ { 0, BX_IA_ERROR },
  /* 99 k0 */ { 0, BX_IA_ERROR },
  /* 99    */ { 0, BX_IA_ERROR },
  /* 9A k0 */ { 0, BX_IA_ERROR },
  /* 9A    */ { 0, BX_IA_ERROR },
  /* 9B k0 */ { 0, BX_IA_ERROR },
  /* 9B    */ { 0, BX_IA_ERROR },
  /* 9C k0 */ { 0, BX_IA_ERROR },
  /* 9C    */ { 0, BX_IA_ERROR },
  /* 9D k0 */ { 0, BX_IA_ERROR },
  /* 9D    */ { 0, BX_IA_ERROR },
  /* 9E k0 */ { 0, BX_IA_ERROR },
  /* 9E    */ { 0, BX_IA_ERROR },
  /* 9F k0 */ { 0, BX_IA_ERROR },
  /* 9F    */ { 0, BX_IA_ERROR },
  /* A0 k0 */ { 0, BX_IA_ERROR },
  /* A0    */ { 0, BX_IA_ERROR },
  /* A1 k0 */ { 0, BX_IA_ERROR },
  /* A1    */ { 0, BX_IA_ERROR },
  /* A2 k0 */ { 0, BX_IA_ERROR },
  /* A2    */ { 0, BX_IA_ERROR },
  /* A3 k0 */ { 0, BX_IA_ERROR },
  /* A3    */ { 0, BX_IA_ERROR },
  /* A4 k0 */ { 0, BX_IA_ERROR },
  /* A4    */ { 0, BX_IA_ERROR },
  /* A5 k0 */ { 0, BX_IA_ERROR },
  /* A5    */ { 0, BX_IA_ERROR },
  /* A6 k0 */ { 0, BX_IA_ERROR },
  /* A6    */ { 0, BX_IA_ERROR },
  /* A7 k0 */ { 0, BX_IA_ERROR },
  /* A7    */ { 0, BX_IA_ERROR },
  /* A8 k0 */ { 0, BX_IA_ERROR },
  /* A8    */ { 0, BX_IA_ERROR },
  /* A9 k0 */ { 0, BX_IA_ERROR },
  /* A9    */ { 0, BX_IA_ERROR },
  /* AA k0 */ { 0, BX_IA_ERROR },
  /* AA    */ { 0, BX_IA_ERROR },
  /* AB k0 */ { 0, BX_IA_ERROR },
  /* AB    */ { 0, BX_IA_ERROR },
  /* AC k0 */ { 0, BX_IA_ERROR },
  /* AC    */ { 0, BX_IA_ERROR },
  /* AD k0 */ { 0, BX_IA_ERROR },
  /* AD    */ { 0, BX_IA_ERROR },
  /* AE k0 */ { 0, BX_IA_ERROR },
  /* AE    */ { 0, BX_IA_ERROR },
  /* AF k0 */ { 0, BX_IA_ERROR },
  /* AF    */ { 0, BX_IA_ERROR },
  /* B0 k0 */ { 0, BX_IA_ERROR },
  /* B0    */ { 0, BX_IA_ERROR },
  /* B1 k0 */ { 0, BX_IA_ERROR },
  /* B1    */ { 0, BX_IA_ERROR },
  /* B2 k0 */ { 0, BX_IA_ERROR },
  /* B2    */ { 0, BX_IA_ERROR },
  /* B3 k0 */ { 0, BX_IA_ERROR },
  /* B3    */ { 0, BX_IA_ERROR },
  /* B4 k0 */ { 0, BX_IA_ERROR },
  /* B4    */ { 0, BX_IA_ERROR },
  /* B5 k0 */ { 0, BX_IA_ERROR },
  /* B5    */ { 0, BX_IA_ERROR },
  /* B6 k0 */ { 0, BX_IA_ERROR },
  /* B6    */ { 0, BX_IA_ERROR },
  /* B7 k0 */ { 0, BX_IA_ERROR },
  /* B7    */ { 0, BX_IA_ERROR },
  /* B8 k0 */ { 0, BX_IA_ERROR },
  /* B8    */ { 0, BX_IA_ERROR },
  /* B9 k0 */ { 0, BX_IA_ERROR },
  /* B9    */ { 0, BX_IA_ERROR },
  /* BA k0 */ { 0, BX_IA_ERROR },
  /* BA    */ { 0, BX_IA_ERROR },
  /* BB k0 */ { 0, BX_IA_ERROR },
  /* BB    */ { 0, BX_IA_ERROR },
  /* BC k0 */ { 0, BX_IA_ERROR },
  /* BC    */ { 0, BX_IA_ERROR },
  /* BD k0 */ { 0, BX_IA_ERROR },
  /* BD    */ { 0, BX_IA_ERROR },
  /* BE k0 */ { 0, BX_IA_ERROR },
  /* BE    */ { 0, BX_IA_ERROR },
  /* BF k0 */ { 0, BX_IA_ERROR },
  /* BF    */ { 0, BX_IA_ERROR },
  /* C0 k0 */ { 0, BX_IA_ERROR },
  /* C0    */ { 0, BX_IA_ERROR },
  /* C1 k0 */ { 0, BX_IA_ERROR },
  /* C1    */ { 0, BX_IA_ERROR },
  /* C2 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc2 },
  /* C2    */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc2 },
  /* C3 k0 */ { 0, BX_IA_ERROR },
  /* C3    */ { 0, BX_IA_ERROR },
  /* C4 k0 */ { 0, BX_IA_ERROR },
  /* C4    */ { 0, BX_IA_ERROR },
  /* C5 k0 */ { 0, BX_IA_ERROR },
  /* C5    */ { 0, BX_IA_ERROR },
  /* C6 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc6 },
  /* C6    */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc6_Mask },
  /* C7 k0 */ { 0, BX_IA_ERROR },
  /* C7    */ { 0, BX_IA_ERROR },
  /* C8 k0 */ { 0, BX_IA_ERROR },
  /* C8    */ { 0, BX_IA_ERROR },
  /* C9 k0 */ { 0, BX_IA_ERROR },
  /* C9    */ { 0, BX_IA_ERROR },
  /* CA k0 */ { 0, BX_IA_ERROR },
  /* CA    */ { 0, BX_IA_ERROR },
  /* CB k0 */ { 0, BX_IA_ERROR },
  /* CB    */ { 0, BX_IA_ERROR },
  /* CC k0 */ { 0, BX_IA_ERROR },
  /* CC    */ { 0, BX_IA_ERROR },
  /* CD k0 */ { 0, BX_IA_ERROR },
  /* CD    */ { 0, BX_IA_ERROR },
  /* CE k0 */ { 0, BX_IA_ERROR },
  /* CE    */ { 0, BX_IA_ERROR },
  /* CF k0 */ { 0, BX_IA_ERROR },
  /* CF    */ { 0, BX_IA_ERROR },
  /* D0 k0 */ { 0, BX_IA_ERROR },
  /* D0    */ { 0, BX_IA_ERROR },
  /* D1 k0 */ { 0, BX_IA_ERROR },
  /* D1    */ { 0, BX_IA_ERROR },
  /* D2 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSRLD_VdqHdqWdq },
  /* D2    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSRLD_VdqHdqWdq_Kmask },
  /* D3 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSRLQ_VdqHdqWdq },
  /* D3    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSRLQ_VdqHdqWdq_Kmask },
  /* D4 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPADDQ_VdqHdqWdq },
  /* D4    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPADDQ_VdqHdqWdq_Kmask },
  /* D5 k0 */ { 0, BX_IA_ERROR },
  /* D5    */ { 0, BX_IA_ERROR },
  /* D6 k0 */ { BxVexL0 | BxVexW1 | BxPrefixSSE66, BX_IA_V512_VMOVQ_WqVq },
  /* D6    */ { 0, BX_IA_ERROR }, // #UD
  /* D7 k0 */ { 0, BX_IA_ERROR },
  /* D7    */ { 0, BX_IA_ERROR },
  /* D8 k0 */ { 0, BX_IA_ERROR },
  /* D8    */ { 0, BX_IA_ERROR },
  /* D9 k0 */ { 0, BX_IA_ERROR },
  /* D9    */ { 0, BX_IA_ERROR },
  /* DA k0 */ { 0, BX_IA_ERROR },
  /* DA    */ { 0, BX_IA_ERROR },
  /* DB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDD_VdqHdqWdq },
  /* DB    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDD_VdqHdqWdq_Kmask },
  /* DC k0 */ { 0, BX_IA_ERROR },
  /* DC    */ { 0, BX_IA_ERROR },
  /* DD k0 */ { 0, BX_IA_ERROR },
  /* DD    */ { 0, BX_IA_ERROR },
  /* DE k0 */ { 0, BX_IA_ERROR },
  /* DE    */ { 0, BX_IA_ERROR },
  /* DF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDND_VdqHdqWdq },
  /* DF    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDND_VdqHdqWdq_Kmask },
  /* E0 k0 */ { 0, BX_IA_ERROR },
  /* E0    */ { 0, BX_IA_ERROR },
  /* E1 k0 */ { 0, BX_IA_ERROR },
  /* E1    */ { 0, BX_IA_ERROR },
  /* E2 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAD_VdqHdqWdq },
  /* E2    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAD_VdqHdqWdq_Kmask },
  /* E3 k0 */ { 0, BX_IA_ERROR },
  /* E3    */ { 0, BX_IA_ERROR },
  /* E4 k0 */ { 0, BX_IA_ERROR },
  /* E4    */ { 0, BX_IA_ERROR },
  /* E5 k0 */ { 0, BX_IA_ERROR },
  /* E5    */ { 0, BX_IA_ERROR },
  /* E6 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0fe6 },
  /* E6    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0fe6_Mask },
  /* E7 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VMOVNTDQ_MdqVdq },
  /* E7    */ { 0, BX_IA_ERROR }, // #UD
  /* E8 k0 */ { 0, BX_IA_ERROR },
  /* E8    */ { 0, BX_IA_ERROR },
  /* E9 k0 */ { 0, BX_IA_ERROR },
  /* E9    */ { 0, BX_IA_ERROR },
  /* EA k0 */ { 0, BX_IA_ERROR },
  /* EA    */ { 0, BX_IA_ERROR },
  /* EB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPORD_VdqHdqWdq },
  /* EB    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPORD_VdqHdqWdq_Kmask },
  /* EC k0 */ { 0, BX_IA_ERROR },
  /* EC    */ { 0, BX_IA_ERROR },
  /* ED k0 */ { 0, BX_IA_ERROR },
  /* ED    */ { 0, BX_IA_ERROR },
  /* EE k0 */ { 0, BX_IA_ERROR },
  /* EE    */ { 0, BX_IA_ERROR },
  /* EF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPXORD_VdqHdqWdq },
  /* EF    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPXORD_VdqHdqWdq_Kmask },
  /* F0 k0 */ { 0, BX_IA_ERROR },
  /* F0    */ { 0, BX_IA_ERROR },
  /* F1 k0 */ { 0, BX_IA_ERROR },
  /* F1    */ { 0, BX_IA_ERROR },
  /* F2 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSLLD_VdqHdqWdq },
  /* F2    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSLLD_VdqHdqWdq_Kmask },
  /* F3 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSLLQ_VdqHdqWdq },
  /* F3    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSLLQ_VdqHdqWdq_Kmask },
  /* F4 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULUDQ_VdqHdqWdq },
  /* F4    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULUDQ_VdqHdqWdq_Kmask },
  /* F5 k0 */ { 0, BX_IA_ERROR },
  /* F5    */ { 0, BX_IA_ERROR },
  /* F6 k0 */ { 0, BX_IA_ERROR },
  /* F6    */ { 0, BX_IA_ERROR },
  /* F7 k0 */ { 0, BX_IA_ERROR },
  /* F7    */ { 0, BX_IA_ERROR },
  /* F8 k0 */ { 0, BX_IA_ERROR },
  /* F8    */ { 0, BX_IA_ERROR },
  /* F9 k0 */ { 0, BX_IA_ERROR },
  /* F9    */ { 0, BX_IA_ERROR },
  /* FA k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSUBD_VdqHdqWdq },
  /* FA    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSUBD_VdqHdqWdq_Kmask },
  /* FB k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSUBQ_VdqHdqWdq },
  /* FB    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSUBQ_VdqHdqWdq_Kmask },
  /* FC k0 */ { 0, BX_IA_ERROR },
  /* FC    */ { 0, BX_IA_ERROR },
  /* FD k0 */ { 0, BX_IA_ERROR },
  /* FD    */ { 0, BX_IA_ERROR },
  /* FE k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPADDD_VdqHdqWdq },
  /* FE    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPADDD_VdqHdqWdq_Kmask },
  /* FF k0 */ { 0, BX_IA_ERROR },
  /* FF    */ { 0, BX_IA_ERROR },

  // 256 entries for EVEX-encoded 0x0F 0x38 opcodes
  /* 00 k0 */ { 0, BX_IA_ERROR },
  /* 00    */ { 0, BX_IA_ERROR },
  /* 01 k0 */ { 0, BX_IA_ERROR },
  /* 01    */ { 0, BX_IA_ERROR },
  /* 02 k0 */ { 0, BX_IA_ERROR },
  /* 02    */ { 0, BX_IA_ERROR },
  /* 03 k0 */ { 0, BX_IA_ERROR },
  /* 03    */ { 0, BX_IA_ERROR },
  /* 04 k0 */ { 0, BX_IA_ERROR },
  /* 04    */ { 0, BX_IA_ERROR },
  /* 05 k0 */ { 0, BX_IA_ERROR },
  /* 05    */ { 0, BX_IA_ERROR },
  /* 06 k0 */ { 0, BX_IA_ERROR },
  /* 06    */ { 0, BX_IA_ERROR },
  /* 07 k0 */ { 0, BX_IA_ERROR },
  /* 07    */ { 0, BX_IA_ERROR },
  /* 08 k0 */ { 0, BX_IA_ERROR },
  /* 08    */ { 0, BX_IA_ERROR },
  /* 09 k0 */ { 0, BX_IA_ERROR },
  /* 09    */ { 0, BX_IA_ERROR },
  /* 0A k0 */ { 0, BX_IA_ERROR },
  /* 0A    */ { 0, BX_IA_ERROR },
  /* 0B k0 */ { 0, BX_IA_ERROR },
  /* 0B    */ { 0, BX_IA_ERROR },
  /* 0C k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPERMILPS_VpsHpsWps },
  /* 0C    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPERMILPS_VpsHpsWps_Kmask },
  /* 0D k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPERMILPD_VpdHpdWpd },
  /* 0D    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPERMILPD_VpdHpdWpd_Kmask },
  /* 0E k0 */ { 0, BX_IA_ERROR },
  /* 0E    */ { 0, BX_IA_ERROR },
  /* 0F k0 */ { 0, BX_IA_ERROR },
  /* 0F    */ { 0, BX_IA_ERROR },
  /* 10 k0 */ { 0, BX_IA_ERROR },
  /* 10    */ { 0, BX_IA_ERROR },
  /* 11 k0 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDB_WdqVdq },
  /* 11    */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDB_WdqVdq_Kmask },
  /* 12 k0 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSQB_WdqVdq },
  /* 12    */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSQB_WdqVdq_Kmask },
  /* 13 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3813 },
  /* 13    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3813_Mask },
  /* 14 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3814 },
  /* 14    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3814_Mask },
  /* 15 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3815 },
  /* 15    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3815_Mask },
  /* 16 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMPS_VpsHpsWps_Kmask },
  /* 16    */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMPS_VpsHpsWps_Kmask },
  /* 17 k0 */ { 0, BX_IA_ERROR },
  /* 17    */ { 0, BX_IA_ERROR },
  /* 18 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSS_VpsWss },
  /* 18    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSS_VpsWss_Kmask },
  /* 19 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSD_VpdWsd },
  /* 19    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSD_VpdWsd_Kmask },
  /* 1A k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF32x4_VpsWps },
  /* 1A    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF32x4_VpsWps_Kmask },
  /* 1B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF64x4_VpdWpd },
  /* 1B    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF64x4_VpdWpd_Kmask },
  /* 1C k0 */ { 0, BX_IA_ERROR },
  /* 1C    */ { 0, BX_IA_ERROR },
  /* 1D k0 */ { 0, BX_IA_ERROR },
  /* 1D    */ { 0, BX_IA_ERROR },
  /* 1E k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPABSD_VdqWdq },
  /* 1E    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPABSD_VdqWdq_Kmask },
  /* 1F k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPABSQ_VdqWdq },
  /* 1F    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPABSQ_VdqWdq_Kmask },
  /* 20 k0 */ { 0, BX_IA_ERROR },
  /* 20    */ { 0, BX_IA_ERROR },
  /* 21 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3821 },
  /* 21    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3821_Mask },
  /* 22 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3822 },
  /* 22    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3822_Mask },
  /* 23 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3823 },
  /* 23    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3823_Mask },
  /* 24 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3824 },
  /* 24    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3824_Mask },
  /* 25 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3825 },
  /* 25    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3825_Mask },
  /* 26 k0 */ { 0, BX_IA_ERROR },
  /* 26    */ { 0, BX_IA_ERROR },
  /* 27 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3827 },
  /* 27    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3827 },
  /* 28 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULDQ_VdqHdqWdq },
  /* 28    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULDQ_VdqHdqWdq_Kmask },
  /* 29 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPEQQ_KGbHdqWdq },
  /* 29    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPEQQ_KGbHdqWdq },
  /* 2A k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f382a },
  /* 2A    */ { 0, BX_IA_ERROR }, // #UD
  /* 2B k0 */ { 0, BX_IA_ERROR },
  /* 2B    */ { 0, BX_IA_ERROR },
  /* 2C k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCALEFPS_VpsHpsWps },
  /* 2C    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCALEFPS_VpsHpsWps_Kmask },
  /* 2D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCALEFSS_VssHpsWss },
  /* 2D    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCALEFSS_VssHpsWss_Kmask },
  /* 2E k0 */ { 0, BX_IA_ERROR },
  /* 2E    */ { 0, BX_IA_ERROR },
  /* 2F k0 */ { 0, BX_IA_ERROR },
  /* 2F    */ { 0, BX_IA_ERROR },
  /* 30 k0 */ { 0, BX_IA_ERROR },
  /* 30    */ { 0, BX_IA_ERROR },
  /* 31 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3831 },
  /* 31    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3831_Mask },
  /* 32 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3832 },
  /* 32    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3832_Mask },
  /* 33 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3833 },
  /* 33    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3833_Mask },
  /* 34 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3834 },
  /* 34    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3834_Mask },
  /* 35 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3835 },
  /* 35    */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3835_Mask },
  /* 36 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMD_VdqHdqWdq_Kmask },
  /* 36    */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMD_VdqHdqWdq_Kmask },
  /* 37 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPGTQ_KGbHdqWdq },
  /* 37    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPGTQ_KGbHdqWdq },
  /* 38 k0 */ { 0, BX_IA_ERROR },
  /* 38    */ { 0, BX_IA_ERROR },
  /* 39 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINSD_VdqHdqWdq },
  /* 39    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINSD_VdqHdqWdq_Kmask },
  /* 3A k0 */ { BxVexW1 | BxPrefixSSEF3, BX_IA_V512_VPBROADCASTMW2D_VdqKEw },
  /* 3A    */ { 0, BX_IA_ERROR }, // #UD
  /* 3B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINUD_VdqHdqWdq },
  /* 3B    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINUD_VdqHdqWdq_Kmask },
  /* 3C k0 */ { 0, BX_IA_ERROR },
  /* 3C    */ { 0, BX_IA_ERROR },
  /* 3D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXSD_VdqHdqWdq },
  /* 3D    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXSD_VdqHdqWdq_Kmask },
  /* 3E k0 */ { 0, BX_IA_ERROR },
  /* 3E    */ { 0, BX_IA_ERROR },
  /* 3F k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXUD_VdqHdqWdq },
  /* 3F    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXUD_VdqHdqWdq_Kmask },
  /* 40 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPMULLD_VdqHdqWdq },
  /* 40    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPMULLD_VdqHdqWdq_Kmask },
  /* 41 k0 */ { 0, BX_IA_ERROR },
  /* 41    */ { 0, BX_IA_ERROR },
  /* 42 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPPS_VpsWps_Kmask },
  /* 42    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPPS_VpsWps_Kmask },
  /* 43 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPSS_VssHpsWss_Kmask },
  /* 43    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPSS_VssHpsWss_Kmask },
  /* 44 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPLZCNTD_VdqWdq_Kmask },
  /* 44    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPLZCNTD_VdqWdq_Kmask },
  /* 45 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRLVD_VdqHdqWdq },
  /* 45    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRLVD_VdqHdqWdq_Kmask },
  /* 46 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAVD_VdqHdqWdq },
  /* 46    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAVD_VdqHdqWdq_Kmask },
  /* 47 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSLLVD_VdqHdqWdq },
  /* 47    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSLLVD_VdqHdqWdq_Kmask },
  /* 48 k0 */ { 0, BX_IA_ERROR },
  /* 48    */ { 0, BX_IA_ERROR },
  /* 49 k0 */ { 0, BX_IA_ERROR },
  /* 49    */ { 0, BX_IA_ERROR },
  /* 4A k0 */ { 0, BX_IA_ERROR },
  /* 4A    */ { 0, BX_IA_ERROR },
  /* 4B k0 */ { 0, BX_IA_ERROR },
  /* 4B    */ { 0, BX_IA_ERROR },
  /* 4C k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRCP14PS_VpsWps_Kmask },
  /* 4C    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRCP14PS_VpsWps_Kmask },
  /* 4D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRCP14SS_VssHpsWss_Kmask },
  /* 4D    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRCP14SS_VssHpsWss_Kmask },
  /* 4E k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRSQRT14PS_VpsWps_Kmask },
  /* 4E    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRSQRT14PS_VpsWps_Kmask },
  /* 4F k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRSQRT14SS_VssHpsWss_Kmask },
  /* 4F    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VRSQRT14SS_VssHpsWss_Kmask },
  /* 50 k0 */ { 0, BX_IA_ERROR },
  /* 50    */ { 0, BX_IA_ERROR },
  /* 51 k0 */ { 0, BX_IA_ERROR },
  /* 51    */ { 0, BX_IA_ERROR },
  /* 52 k0 */ { 0, BX_IA_ERROR },
  /* 52    */ { 0, BX_IA_ERROR },
  /* 53 k0 */ { 0, BX_IA_ERROR },
  /* 53    */ { 0, BX_IA_ERROR },
  /* 54 k0 */ { 0, BX_IA_ERROR },
  /* 54    */ { 0, BX_IA_ERROR },
  /* 55 k0 */ { 0, BX_IA_ERROR },
  /* 55    */ { 0, BX_IA_ERROR },
  /* 56 k0 */ { 0, BX_IA_ERROR },
  /* 56    */ { 0, BX_IA_ERROR },
  /* 57 k0 */ { 0, BX_IA_ERROR },
  /* 57    */ { 0, BX_IA_ERROR },
  /* 58 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTD_VdqWd },
  /* 58    */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTD_VdqWd_Kmask },
  /* 59 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTQ_VdqWq },
  /* 59    */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTQ_VdqWq_Kmask },
  /* 5A k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI32x4_VdqWdq },
  /* 5A    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI32x4_VdqWdq_Kmask },
  /* 5B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI64x4_VdqWdq },
  /* 5B    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI64x4_VdqWdq_Kmask },
  /* 5C k0 */ { 0, BX_IA_ERROR },
  /* 5C    */ { 0, BX_IA_ERROR },
  /* 5D k0 */ { 0, BX_IA_ERROR },
  /* 5D    */ { 0, BX_IA_ERROR },
  /* 5E k0 */ { 0, BX_IA_ERROR },
  /* 5E    */ { 0, BX_IA_ERROR },
  /* 5F k0 */ { 0, BX_IA_ERROR },
  /* 5F    */ { 0, BX_IA_ERROR },
  /* 60 k0 */ { 0, BX_IA_ERROR },
  /* 60    */ { 0, BX_IA_ERROR },
  /* 61 k0 */ { 0, BX_IA_ERROR },
  /* 61    */ { 0, BX_IA_ERROR },
  /* 62 k0 */ { 0, BX_IA_ERROR },
  /* 62    */ { 0, BX_IA_ERROR },
  /* 63 k0 */ { 0, BX_IA_ERROR },
  /* 63    */ { 0, BX_IA_ERROR },
  /* 64 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPBLENDMD_VdqHdqWdq },
  /* 64    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPBLENDMD_VdqHdqWdq },
  /* 65 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VBLENDMPS_VpsHpsWps },
  /* 65    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VBLENDMPS_VpsHpsWps },
  /* 66 k0 */ { 0, BX_IA_ERROR },
  /* 66    */ { 0, BX_IA_ERROR },
  /* 67 k0 */ { 0, BX_IA_ERROR },
  /* 67    */ { 0, BX_IA_ERROR },
  /* 68 k0 */ { 0, BX_IA_ERROR },
  /* 68    */ { 0, BX_IA_ERROR },
  /* 69 k0 */ { 0, BX_IA_ERROR },
  /* 69    */ { 0, BX_IA_ERROR },
  /* 6A k0 */ { 0, BX_IA_ERROR },
  /* 6A    */ { 0, BX_IA_ERROR },
  /* 6B k0 */ { 0, BX_IA_ERROR },
  /* 6B    */ { 0, BX_IA_ERROR },
  /* 6C k0 */ { 0, BX_IA_ERROR },
  /* 6C    */ { 0, BX_IA_ERROR },
  /* 6D k0 */ { 0, BX_IA_ERROR },
  /* 6D    */ { 0, BX_IA_ERROR },
  /* 6E k0 */ { 0, BX_IA_ERROR },
  /* 6E    */ { 0, BX_IA_ERROR },
  /* 6F k0 */ { 0, BX_IA_ERROR },
  /* 6F    */ { 0, BX_IA_ERROR },
  /* 70 k0 */ { 0, BX_IA_ERROR },
  /* 70    */ { 0, BX_IA_ERROR },
  /* 71 k0 */ { 0, BX_IA_ERROR },
  /* 71    */ { 0, BX_IA_ERROR },
  /* 72 k0 */ { 0, BX_IA_ERROR },
  /* 72    */ { 0, BX_IA_ERROR },
  /* 73 k0 */ { 0, BX_IA_ERROR },
  /* 73    */ { 0, BX_IA_ERROR },
  /* 74 k0 */ { 0, BX_IA_ERROR },
  /* 74    */ { 0, BX_IA_ERROR },
  /* 75 k0 */ { 0, BX_IA_ERROR },
  /* 75    */ { 0, BX_IA_ERROR },
  /* 76 k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2D_VdqHdqWdq_Kmask },
  /* 76    */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2D_VdqHdqWdq_Kmask },
  /* 77 k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2PS_VpsHpsWps_Kmask },
  /* 77    */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2PS_VpsHpsWps_Kmask },
  /* 78 k0 */ { 0, BX_IA_ERROR },
  /* 78    */ { 0, BX_IA_ERROR },
  /* 79 k0 */ { 0, BX_IA_ERROR },
  /* 79    */ { 0, BX_IA_ERROR },
  /* 7A k0 */ { 0, BX_IA_ERROR },
  /* 7A    */ { 0, BX_IA_ERROR },
  /* 7B k0 */ { 0, BX_IA_ERROR },
  /* 7B    */ { 0, BX_IA_ERROR },
  /* 7C k0 */ { BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VPBROADCASTD_VdqEd },
  /* 7C    */ { BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VPBROADCASTD_VdqEd_Kmask },
  /* 7D k0 */ { 0, BX_IA_ERROR },
  /* 7D    */ { 0, BX_IA_ERROR },
  /* 7E k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2D_VdqHdqWdq_Kmask },
  /* 7E    */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2D_VdqHdqWdq_Kmask },
  /* 7F k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2PS_VpsHpsWps_Kmask },
  /* 7F    */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2PS_VpsHpsWps_Kmask },
  /* 80 k0 */ { 0, BX_IA_ERROR },
  /* 80    */ { 0, BX_IA_ERROR },
  /* 81 k0 */ { 0, BX_IA_ERROR },
  /* 81    */ { 0, BX_IA_ERROR },
  /* 82 k0 */ { 0, BX_IA_ERROR },
  /* 82    */ { 0, BX_IA_ERROR },
  /* 83 k0 */ { 0, BX_IA_ERROR },
  /* 83    */ { 0, BX_IA_ERROR },
  /* 84 k0 */ { 0, BX_IA_ERROR },
  /* 84    */ { 0, BX_IA_ERROR },
  /* 85 k0 */ { 0, BX_IA_ERROR },
  /* 85    */ { 0, BX_IA_ERROR },
  /* 86 k0 */ { 0, BX_IA_ERROR },
  /* 86    */ { 0, BX_IA_ERROR },
  /* 87 k0 */ { 0, BX_IA_ERROR },
  /* 87    */ { 0, BX_IA_ERROR },
  /* 88 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDPS_VpsWps },
  /* 88    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDPS_VpsWps_Kmask },
  /* 89 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDD_VdqWdq },
  /* 89    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDD_VdqWdq_Kmask },
  /* 8A k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSPS_WpsVps },
  /* 8A    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSPS_WpsVps_Kmask },
  /* 8B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSD_WdqVdq },
  /* 8B    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSD_WdqVdq_Kmask },
  /* 8C k0 */ { 0, BX_IA_ERROR },
  /* 8C    */ { 0, BX_IA_ERROR },
  /* 8D k0 */ { 0, BX_IA_ERROR },
  /* 8D    */ { 0, BX_IA_ERROR },
  /* 8E k0 */ { 0, BX_IA_ERROR },
  /* 8E    */ { 0, BX_IA_ERROR },
  /* 8F k0 */ { 0, BX_IA_ERROR },
  /* 8F    */ { 0, BX_IA_ERROR },
  /* 90 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* 90    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERDD_VdqVSib },
  /* 91 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* 91    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERQD_VdqVSib },
  /* 92 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* 92    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERDPS_VpsVSib },
  /* 93 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* 93    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERQPS_VpsVSib },
  /* 94 k0 */ { 0, BX_IA_ERROR },
  /* 94    */ { 0, BX_IA_ERROR },
  /* 95 k0 */ { 0, BX_IA_ERROR },
  /* 95    */ { 0, BX_IA_ERROR },
  /* 96 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB132PS_VpsHpsWps },
  /* 96    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB132PS_VpsHpsWps_Kmask },
  /* 97 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD132PS_VpsHpsWps },
  /* 97    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD132PS_VpsHpsWps_Kmask },
  /* 98 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132PS_VpsHpsWps },
  /* 98    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132PS_VpsHpsWps_Kmask },
  /* 99 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132SS_VpsHssWss },
  /* 99    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132SS_VpsHssWss_Kmask },
  /* 9A k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132PS_VpsHpsWps },
  /* 9A    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132PS_VpsHpsWps_Kmask },
  /* 9B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132SS_VpsHssWss },
  /* 9B    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132SS_VpsHssWss_Kmask },
  /* 9C k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132PS_VpsHpsWps },
  /* 9C    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132PS_VpsHpsWps_Kmask },
  /* 9D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132SS_VpsHssWss },
  /* 9D    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132SS_VpsHssWss_Kmask },
  /* 9E k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132PS_VpsHpsWps },
  /* 9E    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132PS_VpsHpsWps_Kmask },
  /* 9F k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132SS_VpsHssWss },
  /* 9F    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132SS_VpsHssWss_Kmask },
  /* A0 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* A0    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERDD_VSibVdq },
  /* A1 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* A1    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERQD_VSibVdq },
  /* A2 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* A2    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERDPS_VSibVps },
  /* A3 k0 */ { 0, BX_IA_ERROR }, // #UD
  /* A3    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERQPS_VSibVps },
  /* A4 k0 */ { 0, BX_IA_ERROR },
  /* A4    */ { 0, BX_IA_ERROR },
  /* A5 k0 */ { 0, BX_IA_ERROR },
  /* A5    */ { 0, BX_IA_ERROR },
  /* A6 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB213PS_VpsHpsWps },
  /* A6    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB213PS_VpsHpsWps_Kmask },
  /* A7 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD213PS_VpsHpsWps },
  /* A7    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD213PS_VpsHpsWps_Kmask },
  /* A8 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213PS_VpsHpsWps },
  /* A8    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213PS_VpsHpsWps_Kmask },
  /* A9 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213SS_VpsHssWss },
  /* A9    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213SS_VpsHssWss_Kmask },
  /* AA k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213PS_VpsHpsWps },
  /* AA    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213PS_VpsHpsWps_Kmask },
  /* AB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213SS_VpsHssWss },
  /* AB    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213SS_VpsHssWss_Kmask },
  /* AC k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213PS_VpsHpsWps },
  /* AC    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213PS_VpsHpsWps_Kmask },
  /* AD k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213SS_VpsHssWss },
  /* AD    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213SS_VpsHssWss_Kmask },
  /* AE k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213PS_VpsHpsWps },
  /* AE    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213PS_VpsHpsWps_Kmask },
  /* AF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213SS_VpsHssWss },
  /* AF    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213SS_VpsHssWss_Kmask },
  /* B0 k0 */ { 0, BX_IA_ERROR },
  /* B0    */ { 0, BX_IA_ERROR },
  /* B1 k0 */ { 0, BX_IA_ERROR },
  /* B1    */ { 0, BX_IA_ERROR },
  /* B2 k0 */ { 0, BX_IA_ERROR },
  /* B2    */ { 0, BX_IA_ERROR },
  /* B3 k0 */ { 0, BX_IA_ERROR },
  /* B3    */ { 0, BX_IA_ERROR },
  /* B4 k0 */ { 0, BX_IA_ERROR },
  /* B4    */ { 0, BX_IA_ERROR },
  /* B5 k0 */ { 0, BX_IA_ERROR },
  /* B5    */ { 0, BX_IA_ERROR },
  /* B6 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB231PS_VpsHpsWps },
  /* B6    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB231PS_VpsHpsWps_Kmask },
  /* B7 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD231PS_VpsHpsWps },
  /* B7    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD231PS_VpsHpsWps_Kmask },
  /* B8 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231PS_VpsHpsWps },
  /* B8    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231PS_VpsHpsWps_Kmask },
  /* B9 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231SS_VpsHssWss },
  /* B9    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231SS_VpsHssWss_Kmask },
  /* BA k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231PS_VpsHpsWps },
  /* BA    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231PS_VpsHpsWps_Kmask },
  /* BB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231SS_VpsHssWss },
  /* BB    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231SS_VpsHssWss_Kmask },
  /* BC k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231PS_VpsHpsWps },
  /* BC    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231PS_VpsHpsWps_Kmask },
  /* BD k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231SS_VpsHssWss },
  /* BD    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231SS_VpsHssWss_Kmask },
  /* BE k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231PS_VpsHpsWps },
  /* BE    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231PS_VpsHpsWps_Kmask },
  /* BF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231SS_VpsHssWss },
  /* BF    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231SS_VpsHssWss_Kmask },
  /* C0 k0 */ { 0, BX_IA_ERROR },
  /* C0    */ { 0, BX_IA_ERROR },
  /* C1 k0 */ { 0, BX_IA_ERROR },
  /* C1    */ { 0, BX_IA_ERROR },
  /* C2 k0 */ { 0, BX_IA_ERROR },
  /* C2    */ { 0, BX_IA_ERROR },
  /* C3 k0 */ { 0, BX_IA_ERROR },
  /* C3    */ { 0, BX_IA_ERROR },
  /* C4 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPCONFLICTD_VdqWdq_Kmask },
  /* C4    */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPCONFLICTD_VdqWdq_Kmask },
  /* C5 k0 */ { 0, BX_IA_ERROR },
  /* C5    */ { 0, BX_IA_ERROR },
  /* C6 k0 */ { 0, BX_IA_ERROR },
  /* C6    */ { 0, BX_IA_ERROR },
  /* C7 k0 */ { 0, BX_IA_ERROR },
  /* C7    */ { 0, BX_IA_ERROR },
  /* C8 k0 */ { 0, BX_IA_ERROR },
  /* C8    */ { 0, BX_IA_ERROR },
  /* C9 k0 */ { 0, BX_IA_ERROR },
  /* C9    */ { 0, BX_IA_ERROR },
  /* CA k0 */ { 0, BX_IA_ERROR },
  /* CA    */ { 0, BX_IA_ERROR },
  /* CB k0 */ { 0, BX_IA_ERROR },
  /* CB    */ { 0, BX_IA_ERROR },
  /* CC k0 */ { 0, BX_IA_ERROR },
  /* CC    */ { 0, BX_IA_ERROR },
  /* CD k0 */ { 0, BX_IA_ERROR },
  /* CD    */ { 0, BX_IA_ERROR },
  /* CE k0 */ { 0, BX_IA_ERROR },
  /* CE    */ { 0, BX_IA_ERROR },
  /* CF k0 */ { 0, BX_IA_ERROR },
  /* CF    */ { 0, BX_IA_ERROR },
  /* D0 k0 */ { 0, BX_IA_ERROR },
  /* D0    */ { 0, BX_IA_ERROR },
  /* D1 k0 */ { 0, BX_IA_ERROR },
  /* D1    */ { 0, BX_IA_ERROR },
  /* D2 k0 */ { 0, BX_IA_ERROR },
  /* D2    */ { 0, BX_IA_ERROR },
  /* D3 k0 */ { 0, BX_IA_ERROR },
  /* D3    */ { 0, BX_IA_ERROR },
  /* D4 k0 */ { 0, BX_IA_ERROR },
  /* D4    */ { 0, BX_IA_ERROR },
  /* D5 k0 */ { 0, BX_IA_ERROR },
  /* D5    */ { 0, BX_IA_ERROR },
  /* D6 k0 */ { 0, BX_IA_ERROR },
  /* D6    */ { 0, BX_IA_ERROR },
  /* D7 k0 */ { 0, BX_IA_ERROR },
  /* D7    */ { 0, BX_IA_ERROR },
  /* D8 k0 */ { 0, BX_IA_ERROR },
  /* D8    */ { 0, BX_IA_ERROR },
  /* D9 k0 */ { 0, BX_IA_ERROR },
  /* D9    */ { 0, BX_IA_ERROR },
  /* DA k0 */ { 0, BX_IA_ERROR },
  /* DA    */ { 0, BX_IA_ERROR },
  /* DB k0 */ { 0, BX_IA_ERROR },
  /* DB    */ { 0, BX_IA_ERROR },
  /* DC k0 */ { 0, BX_IA_ERROR },
  /* DC    */ { 0, BX_IA_ERROR },
  /* DD k0 */ { 0, BX_IA_ERROR },
  /* DD    */ { 0, BX_IA_ERROR },
  /* DE k0 */ { 0, BX_IA_ERROR },
  /* DE    */ { 0, BX_IA_ERROR },
  /* DF k0 */ { 0, BX_IA_ERROR },
  /* DF    */ { 0, BX_IA_ERROR },
  /* E0 k0 */ { 0, BX_IA_ERROR },
  /* E0    */ { 0, BX_IA_ERROR },
  /* E1 k0 */ { 0, BX_IA_ERROR },
  /* E1    */ { 0, BX_IA_ERROR },
  /* E2 k0 */ { 0, BX_IA_ERROR },
  /* E2    */ { 0, BX_IA_ERROR },
  /* E3 k0 */ { 0, BX_IA_ERROR },
  /* E3    */ { 0, BX_IA_ERROR },
  /* E4 k0 */ { 0, BX_IA_ERROR },
  /* E4    */ { 0, BX_IA_ERROR },
  /* E5 k0 */ { 0, BX_IA_ERROR },
  /* E5    */ { 0, BX_IA_ERROR },
  /* E6 k0 */ { 0, BX_IA_ERROR },
  /* E6    */ { 0, BX_IA_ERROR },
  /* E7 k0 */ { 0, BX_IA_ERROR },
  /* E7    */ { 0, BX_IA_ERROR },
  /* E8 k0 */ { 0, BX_IA_ERROR },
  /* E8    */ { 0, BX_IA_ERROR },
  /* E9 k0 */ { 0, BX_IA_ERROR },
  /* E9    */ { 0, BX_IA_ERROR },
  /* EA k0 */ { 0, BX_IA_ERROR },
  /* EA    */ { 0, BX_IA_ERROR },
  /* EB k0 */ { 0, BX_IA_ERROR },
  /* EB    */ { 0, BX_IA_ERROR },
  /* EC k0 */ { 0, BX_IA_ERROR },
  /* EC    */ { 0, BX_IA_ERROR },
  /* ED k0 */ { 0, BX_IA_ERROR },
  /* ED    */ { 0, BX_IA_ERROR },
  /* EE k0 */ { 0, BX_IA_ERROR },
  /* EE    */ { 0, BX_IA_ERROR },
  /* EF k0 */ { 0, BX_IA_ERROR },
  /* EF    */ { 0, BX_IA_ERROR },
  /* F0 k0 */ { 0, BX_IA_ERROR },
  /* F0    */ { 0, BX_IA_ERROR },
  /* F1 k0 */ { 0, BX_IA_ERROR },
  /* F1    */ { 0, BX_IA_ERROR },
  /* F2 k0 */ { 0, BX_IA_ERROR },
  /* F2    */ { 0, BX_IA_ERROR },
  /* F3 k0 */ { 0, BX_IA_ERROR },
  /* F3    */ { 0, BX_IA_ERROR },
  /* F4 k0 */ { 0, BX_IA_ERROR },
  /* F4    */ { 0, BX_IA_ERROR },
  /* F5 k0 */ { 0, BX_IA_ERROR },
  /* F5    */ { 0, BX_IA_ERROR },
  /* F6 k0 */ { 0, BX_IA_ERROR },
  /* F6    */ { 0, BX_IA_ERROR },
  /* F7 k0 */ { 0, BX_IA_ERROR },
  /* F7    */ { 0, BX_IA_ERROR },
  /* F8 k0 */ { 0, BX_IA_ERROR },
  /* F8    */ { 0, BX_IA_ERROR },
  /* F9 k0 */ { 0, BX_IA_ERROR },
  /* F9    */ { 0, BX_IA_ERROR },
  /* FA k0 */ { 0, BX_IA_ERROR },
  /* FA    */ { 0, BX_IA_ERROR },
  /* FB k0 */ { 0, BX_IA_ERROR },
  /* FB    */ { 0, BX_IA_ERROR },
  /* FC k0 */ { 0, BX_IA_ERROR },
  /* FC    */ { 0, BX_IA_ERROR },
  /* FD k0 */ { 0, BX_IA_ERROR },
  /* FD    */ { 0, BX_IA_ERROR },
  /* FE k0 */ { 0, BX_IA_ERROR },
  /* FE    */ { 0, BX_IA_ERROR },
  /* FF k0 */ { 0, BX_IA_ERROR },
  /* FF    */ { 0, BX_IA_ERROR },

  // 256 entries for EVEX-encoded 0x0F 0x3A opcodes
  /* 00 k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMQ_VdqWdqIb_Kmask },
  /* 00    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMQ_VdqWdqIb_Kmask },
  /* 01 k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMPD_VpdWpdIb_Kmask },
  /* 01    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMPD_VpdWpdIb_Kmask },
  /* 02 k0 */ { 0, BX_IA_ERROR },
  /* 02    */ { 0, BX_IA_ERROR },
  /* 03 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VALIGND_VdqHdqWdqIb_Kmask },
  /* 03    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VALIGND_VdqHdqWdqIb_Kmask },
  /* 04 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPS_VpsWpsIb },
  /* 04    */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPS_VpsWpsIb_Kmask },
  /* 05 k0 */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPD_VpdWpdIb },
  /* 05    */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPD_VpdWpdIb_Kmask },
  /* 06 k0 */ { 0, BX_IA_ERROR },
  /* 06    */ { 0, BX_IA_ERROR },
  /* 07 k0 */ { 0, BX_IA_ERROR },
  /* 07    */ { 0, BX_IA_ERROR },
  /* 08 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALEPS_VpsWpsIb_Kmask },
  /* 08    */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALEPS_VpsWpsIb_Kmask },
  /* 09 k0 */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALEPD_VpdWpdIb_Kmask },
  /* 09    */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALEPD_VpdWpdIb_Kmask },
  /* 0A k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALESS_VssHpsWssIb_Kmask },
  /* 0A    */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALESS_VssHpsWssIb_Kmask },
  /* 0B k0 */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALESD_VsdHpdWsdIb_Kmask },
  /* 0B    */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VRNDSCALESD_VsdHpdWsdIb_Kmask },
  /* 0C k0 */ { 0, BX_IA_ERROR },
  /* 0C    */ { 0, BX_IA_ERROR },
  /* 0D k0 */ { 0, BX_IA_ERROR },
  /* 0D    */ { 0, BX_IA_ERROR },
  /* 0E k0 */ { 0, BX_IA_ERROR },
  /* 0E    */ { 0, BX_IA_ERROR },
  /* 0F k0 */ { 0, BX_IA_ERROR },
  /* 0F    */ { 0, BX_IA_ERROR },
  /* 10 k0 */ { 0, BX_IA_ERROR },
  /* 10    */ { 0, BX_IA_ERROR },
  /* 11 k0 */ { 0, BX_IA_ERROR },
  /* 11    */ { 0, BX_IA_ERROR },
  /* 12 k0 */ { 0, BX_IA_ERROR },
  /* 12    */ { 0, BX_IA_ERROR },
  /* 13 k0 */ { 0, BX_IA_ERROR },
  /* 13    */ { 0, BX_IA_ERROR },
  /* 14 k0 */ { 0, BX_IA_ERROR },
  /* 14    */ { 0, BX_IA_ERROR },
  /* 15 k0 */ { 0, BX_IA_ERROR },
  /* 15    */ { 0, BX_IA_ERROR },
  /* 16 k0 */ { 0, BX_IA_ERROR },
  /* 16    */ { 0, BX_IA_ERROR },
  /* 17 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTPS_EdVpsIb },
  /* 17    */ { 0, BX_IA_ERROR }, // #UD
  /* 18 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb_Kmask },
  /* 18    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb_Kmask },
  /* 19 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF32x4_WpsVpsIb },
  /* 19    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF32x4_WpsVpsIb_Kmask },
  /* 1A k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb_Kmask },
  /* 1A    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb_Kmask },
  /* 1B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF64x4_WpdVpdIb },
  /* 1B    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF64x4_WpdVpdIb_Kmask },
  /* 1C k0 */ { 0, BX_IA_ERROR },
  /* 1C    */ { 0, BX_IA_ERROR },
  /* 1D k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VCVTPS2PH_WpsVpsIb },
  /* 1D    */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VCVTPS2PH_WpsVpsIb_Kmask },
  /* 1E k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPUD_KGwHdqWdqIb },
  /* 1E    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPUD_KGwHdqWdqIb },
  /* 1F k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPD_KGwHdqWdqIb },
  /* 1F    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPD_KGwHdqWdqIb },
  /* 20 k0 */ { 0, BX_IA_ERROR },
  /* 20    */ { 0, BX_IA_ERROR },
  /* 21 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTPS_VpsWssIb },
  /* 21    */ { 0, BX_IA_ERROR }, // #UD
  /* 22 k0 */ { 0, BX_IA_ERROR },
  /* 22    */ { 0, BX_IA_ERROR },
  /* 23 k0 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFF32x4_VpsHpsWpsIb_Kmask },
  /* 23    */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFF32x4_VpsHpsWpsIb_Kmask },
  /* 24 k0 */ { 0, BX_IA_ERROR },
  /* 24    */ { 0, BX_IA_ERROR },
  /* 25 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb },
  /* 25    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb_Kmask },
  /* 26 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTPS_VpsWpsIb_Kmask },
  /* 26    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTPS_VpsWpsIb_Kmask },
  /* 27 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTSS_VssHpsWssIb_Kmask },
  /* 27    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTSS_VssHpsWssIb_Kmask },
  /* 28 k0 */ { 0, BX_IA_ERROR },
  /* 28    */ { 0, BX_IA_ERROR },
  /* 29 k0 */ { 0, BX_IA_ERROR },
  /* 29    */ { 0, BX_IA_ERROR },
  /* 2A k0 */ { 0, BX_IA_ERROR },
  /* 2A    */ { 0, BX_IA_ERROR },
  /* 2B k0 */ { 0, BX_IA_ERROR },
  /* 2B    */ { 0, BX_IA_ERROR },
  /* 2C k0 */ { 0, BX_IA_ERROR },
  /* 2C    */ { 0, BX_IA_ERROR },
  /* 2D k0 */ { 0, BX_IA_ERROR },
  /* 2D    */ { 0, BX_IA_ERROR },
  /* 2E k0 */ { 0, BX_IA_ERROR },
  /* 2E    */ { 0, BX_IA_ERROR },
  /* 2F k0 */ { 0, BX_IA_ERROR },
  /* 2F    */ { 0, BX_IA_ERROR },
  /* 30 k0 */ { 0, BX_IA_ERROR },
  /* 30    */ { 0, BX_IA_ERROR },
  /* 31 k0 */ { 0, BX_IA_ERROR },
  /* 31    */ { 0, BX_IA_ERROR },
  /* 32 k0 */ { 0, BX_IA_ERROR },
  /* 32    */ { 0, BX_IA_ERROR },
  /* 33 k0 */ { 0, BX_IA_ERROR },
  /* 33    */ { 0, BX_IA_ERROR },
  /* 34 k0 */ { 0, BX_IA_ERROR },
  /* 34    */ { 0, BX_IA_ERROR },
  /* 35 k0 */ { 0, BX_IA_ERROR },
  /* 35    */ { 0, BX_IA_ERROR },
  /* 36 k0 */ { 0, BX_IA_ERROR },
  /* 36    */ { 0, BX_IA_ERROR },
  /* 37 k0 */ { 0, BX_IA_ERROR },
  /* 37    */ { 0, BX_IA_ERROR },
  /* 38 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb_Kmask },
  /* 38    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb_Kmask },
  /* 39 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI32x4_WdqVdqIb },
  /* 39    */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI32x4_WdqVdqIb_Kmask },
  /* 3A k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb_Kmask },
  /* 3A    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb_Kmask },
  /* 3B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI64x4_WdqVdqIb },
  /* 3B    */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI64x4_WdqVdqIb_Kmask },
  /* 3C k0 */ { 0, BX_IA_ERROR },
  /* 3C    */ { 0, BX_IA_ERROR },
  /* 3D k0 */ { 0, BX_IA_ERROR },
  /* 3D    */ { 0, BX_IA_ERROR },
  /* 3E k0 */ { 0, BX_IA_ERROR },
  /* 3E    */ { 0, BX_IA_ERROR },
  /* 3F k0 */ { 0, BX_IA_ERROR },
  /* 3F    */ { 0, BX_IA_ERROR },
  /* 40 k0 */ { 0, BX_IA_ERROR },
  /* 40    */ { 0, BX_IA_ERROR },
  /* 41 k0 */ { 0, BX_IA_ERROR },
  /* 41    */ { 0, BX_IA_ERROR },
  /* 42 k0 */ { 0, BX_IA_ERROR },
  /* 42    */ { 0, BX_IA_ERROR },
  /* 43 k0 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFI32x4_VdqHdqWdqIb_Kmask },
  /* 43    */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFI32x4_VdqHdqWdqIb_Kmask },
  /* 44 k0 */ { 0, BX_IA_ERROR },
  /* 44    */ { 0, BX_IA_ERROR },
  /* 45 k0 */ { 0, BX_IA_ERROR },
  /* 45    */ { 0, BX_IA_ERROR },
  /* 46 k0 */ { 0, BX_IA_ERROR },
  /* 46    */ { 0, BX_IA_ERROR },
  /* 47 k0 */ { 0, BX_IA_ERROR },
  /* 47    */ { 0, BX_IA_ERROR },
  /* 48 k0 */ { 0, BX_IA_ERROR },
  /* 48    */ { 0, BX_IA_ERROR },
  /* 49 k0 */ { 0, BX_IA_ERROR },
  /* 49    */ { 0, BX_IA_ERROR },
  /* 4A k0 */ { 0, BX_IA_ERROR },
  /* 4A    */ { 0, BX_IA_ERROR },
  /* 4B k0 */ { 0, BX_IA_ERROR },
  /* 4B    */ { 0, BX_IA_ERROR },
  /* 4C k0 */ { 0, BX_IA_ERROR },
  /* 4C    */ { 0, BX_IA_ERROR },
  /* 4D k0 */ { 0, BX_IA_ERROR },
  /* 4D    */ { 0, BX_IA_ERROR },
  /* 4E k0 */ { 0, BX_IA_ERROR },
  /* 4E    */ { 0, BX_IA_ERROR },
  /* 4F k0 */ { 0, BX_IA_ERROR },
  /* 4F    */ { 0, BX_IA_ERROR },
  /* 50 k0 */ { 0, BX_IA_ERROR },
  /* 50    */ { 0, BX_IA_ERROR },
  /* 51 k0 */ { 0, BX_IA_ERROR },
  /* 51    */ { 0, BX_IA_ERROR },
  /* 52 k0 */ { 0, BX_IA_ERROR },
  /* 52    */ { 0, BX_IA_ERROR },
  /* 53 k0 */ { 0, BX_IA_ERROR },
  /* 53    */ { 0, BX_IA_ERROR },
  /* 54 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb },
  /* 54    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb_Kmask },
  /* 55 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMSS_VssHssWssIb_Kmask },
  /* 55    */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMSS_VssHssWssIb_Kmask },
  /* 56 k0 */ { 0, BX_IA_ERROR },
  /* 56    */ { 0, BX_IA_ERROR },
  /* 57 k0 */ { 0, BX_IA_ERROR },
  /* 57    */ { 0, BX_IA_ERROR },
  /* 58 k0 */ { 0, BX_IA_ERROR },
  /* 58    */ { 0, BX_IA_ERROR },
  /* 59 k0 */ { 0, BX_IA_ERROR },
  /* 59    */ { 0, BX_IA_ERROR },
  /* 5A k0 */ { 0, BX_IA_ERROR },
  /* 5A    */ { 0, BX_IA_ERROR },
  /* 5B k0 */ { 0, BX_IA_ERROR },
  /* 5B    */ { 0, BX_IA_ERROR },
  /* 5C k0 */ { 0, BX_IA_ERROR },
  /* 5C    */ { 0, BX_IA_ERROR },
  /* 5D k0 */ { 0, BX_IA_ERROR },
  /* 5D    */ { 0, BX_IA_ERROR },
  /* 5E k0 */ { 0, BX_IA_ERROR },
  /* 5E    */ { 0, BX_IA_ERROR },
  /* 5F k0 */ { 0, BX_IA_ERROR },
  /* 5F    */ { 0, BX_IA_ERROR },
  /* 60 k0 */ { 0, BX_IA_ERROR },
  /* 60    */ { 0, BX_IA_ERROR },
  /* 61 k0 */ { 0, BX_IA_ERROR },
  /* 61    */ { 0, BX_IA_ERROR },
  /* 62 k0 */ { 0, BX_IA_ERROR },
  /* 62    */ { 0, BX_IA_ERROR },
  /* 63 k0 */ { 0, BX_IA_ERROR },
  /* 63    */ { 0, BX_IA_ERROR },
  /* 64 k0 */ { 0, BX_IA_ERROR },
  /* 64    */ { 0, BX_IA_ERROR },
  /* 65 k0 */ { 0, BX_IA_ERROR },
  /* 65    */ { 0, BX_IA_ERROR },
  /* 66 k0 */ { 0, BX_IA_ERROR },
  /* 66    */ { 0, BX_IA_ERROR },
  /* 67 k0 */ { 0, BX_IA_ERROR },
  /* 67    */ { 0, BX_IA_ERROR },
  /* 68 k0 */ { 0, BX_IA_ERROR },
  /* 68    */ { 0, BX_IA_ERROR },
  /* 69 k0 */ { 0, BX_IA_ERROR },
  /* 69    */ { 0, BX_IA_ERROR },
  /* 6A k0 */ { 0, BX_IA_ERROR },
  /* 6A    */ { 0, BX_IA_ERROR },
  /* 6B k0 */ { 0, BX_IA_ERROR },
  /* 6B    */ { 0, BX_IA_ERROR },
  /* 6C k0 */ { 0, BX_IA_ERROR },
  /* 6C    */ { 0, BX_IA_ERROR },
  /* 6D k0 */ { 0, BX_IA_ERROR },
  /* 6D    */ { 0, BX_IA_ERROR },
  /* 6E k0 */ { 0, BX_IA_ERROR },
  /* 6E    */ { 0, BX_IA_ERROR },
  /* 6F k0 */ { 0, BX_IA_ERROR },
  /* 6F    */ { 0, BX_IA_ERROR },
  /* 70 k0 */ { 0, BX_IA_ERROR },
  /* 70    */ { 0, BX_IA_ERROR },
  /* 71 k0 */ { 0, BX_IA_ERROR },
  /* 71    */ { 0, BX_IA_ERROR },
  /* 72 k0 */ { 0, BX_IA_ERROR },
  /* 72    */ { 0, BX_IA_ERROR },
  /* 73 k0 */ { 0, BX_IA_ERROR },
  /* 73    */ { 0, BX_IA_ERROR },
  /* 74 k0 */ { 0, BX_IA_ERROR },
  /* 74    */ { 0, BX_IA_ERROR },
  /* 75 k0 */ { 0, BX_IA_ERROR },
  /* 75    */ { 0, BX_IA_ERROR },
  /* 76 k0 */ { 0, BX_IA_ERROR },
  /* 76    */ { 0, BX_IA_ERROR },
  /* 77 k0 */ { 0, BX_IA_ERROR },
  /* 77    */ { 0, BX_IA_ERROR },
  /* 78 k0 */ { 0, BX_IA_ERROR },
  /* 78    */ { 0, BX_IA_ERROR },
  /* 79 k0 */ { 0, BX_IA_ERROR },
  /* 79    */ { 0, BX_IA_ERROR },
  /* 7A k0 */ { 0, BX_IA_ERROR },
  /* 7A    */ { 0, BX_IA_ERROR },
  /* 7B k0 */ { 0, BX_IA_ERROR },
  /* 7B    */ { 0, BX_IA_ERROR },
  /* 7C k0 */ { 0, BX_IA_ERROR },
  /* 7C    */ { 0, BX_IA_ERROR },
  /* 7D k0 */ { 0, BX_IA_ERROR },
  /* 7D    */ { 0, BX_IA_ERROR },
  /* 7E k0 */ { 0, BX_IA_ERROR },
  /* 7E    */ { 0, BX_IA_ERROR },
  /* 7F k0 */ { 0, BX_IA_ERROR },
  /* 7F    */ { 0, BX_IA_ERROR },
  /* 80 k0 */ { 0, BX_IA_ERROR },
  /* 80    */ { 0, BX_IA_ERROR },
  /* 81 k0 */ { 0, BX_IA_ERROR },
  /* 81    */ { 0, BX_IA_ERROR },
  /* 82 k0 */ { 0, BX_IA_ERROR },
  /* 82    */ { 0, BX_IA_ERROR },
  /* 83 k0 */ { 0, BX_IA_ERROR },
  /* 83    */ { 0, BX_IA_ERROR },
  /* 84 k0 */ { 0, BX_IA_ERROR },
  /* 84    */ { 0, BX_IA_ERROR },
  /* 85 k0 */ { 0, BX_IA_ERROR },
  /* 85    */ { 0, BX_IA_ERROR },
  /* 86 k0 */ { 0, BX_IA_ERROR },
  /* 86    */ { 0, BX_IA_ERROR },
  /* 87 k0 */ { 0, BX_IA_ERROR },
  /* 87    */ { 0, BX_IA_ERROR },
  /* 88 k0 */ { 0, BX_IA_ERROR },
  /* 88    */ { 0, BX_IA_ERROR },
  /* 89 k0 */ { 0, BX_IA_ERROR },
  /* 89    */ { 0, BX_IA_ERROR },
  /* 8A k0 */ { 0, BX_IA_ERROR },
  /* 8A    */ { 0, BX_IA_ERROR },
  /* 8B k0 */ { 0, BX_IA_ERROR },
  /* 8B    */ { 0, BX_IA_ERROR },
  /* 8C k0 */ { 0, BX_IA_ERROR },
  /* 8C    */ { 0, BX_IA_ERROR },
  /* 8D k0 */ { 0, BX_IA_ERROR },
  /* 8D    */ { 0, BX_IA_ERROR },
  /* 8E k0 */ { 0, BX_IA_ERROR },
  /* 8E    */ { 0, BX_IA_ERROR },
  /* 8F k0 */ { 0, BX_IA_ERROR },
  /* 8F    */ { 0, BX_IA_ERROR },
  /* 90 k0 */ { 0, BX_IA_ERROR },
  /* 90    */ { 0, BX_IA_ERROR },
  /* 91 k0 */ { 0, BX_IA_ERROR },
  /* 91    */ { 0, BX_IA_ERROR },
  /* 92 k0 */ { 0, BX_IA_ERROR },
  /* 92    */ { 0, BX_IA_ERROR },
  /* 93 k0 */ { 0, BX_IA_ERROR },
  /* 93    */ { 0, BX_IA_ERROR },
  /* 94 k0 */ { 0, BX_IA_ERROR },
  /* 94    */ { 0, BX_IA_ERROR },
  /* 95 k0 */ { 0, BX_IA_ERROR },
  /* 95    */ { 0, BX_IA_ERROR },
  /* 96 k0 */ { 0, BX_IA_ERROR },
  /* 96    */ { 0, BX_IA_ERROR },
  /* 97 k0 */ { 0, BX_IA_ERROR },
  /* 97    */ { 0, BX_IA_ERROR },
  /* 98 k0 */ { 0, BX_IA_ERROR },
  /* 98    */ { 0, BX_IA_ERROR },
  /* 99 k0 */ { 0, BX_IA_ERROR },
  /* 99    */ { 0, BX_IA_ERROR },
  /* 9A k0 */ { 0, BX_IA_ERROR },
  /* 9A    */ { 0, BX_IA_ERROR },
  /* 9B k0 */ { 0, BX_IA_ERROR },
  /* 9B    */ { 0, BX_IA_ERROR },
  /* 9C k0 */ { 0, BX_IA_ERROR },
  /* 9C    */ { 0, BX_IA_ERROR },
  /* 9D k0 */ { 0, BX_IA_ERROR },
  /* 9D    */ { 0, BX_IA_ERROR },
  /* 9E k0 */ { 0, BX_IA_ERROR },
  /* 9E    */ { 0, BX_IA_ERROR },
  /* 9F k0 */ { 0, BX_IA_ERROR },
  /* 9F    */ { 0, BX_IA_ERROR },
  /* A0 k0 */ { 0, BX_IA_ERROR },
  /* A0    */ { 0, BX_IA_ERROR },
  /* A1 k0 */ { 0, BX_IA_ERROR },
  /* A1    */ { 0, BX_IA_ERROR },
  /* A2 k0 */ { 0, BX_IA_ERROR },
  /* A2    */ { 0, BX_IA_ERROR },
  /* A3 k0 */ { 0, BX_IA_ERROR },
  /* A3    */ { 0, BX_IA_ERROR },
  /* A4 k0 */ { 0, BX_IA_ERROR },
  /* A4    */ { 0, BX_IA_ERROR },
  /* A5 k0 */ { 0, BX_IA_ERROR },
  /* A5    */ { 0, BX_IA_ERROR },
  /* A6 k0 */ { 0, BX_IA_ERROR },
  /* A6    */ { 0, BX_IA_ERROR },
  /* A7 k0 */ { 0, BX_IA_ERROR },
  /* A7    */ { 0, BX_IA_ERROR },
  /* A8 k0 */ { 0, BX_IA_ERROR },
  /* A8    */ { 0, BX_IA_ERROR },
  /* A9 k0 */ { 0, BX_IA_ERROR },
  /* A9    */ { 0, BX_IA_ERROR },
  /* AA k0 */ { 0, BX_IA_ERROR },
  /* AA    */ { 0, BX_IA_ERROR },
  /* AB k0 */ { 0, BX_IA_ERROR },
  /* AB    */ { 0, BX_IA_ERROR },
  /* AC k0 */ { 0, BX_IA_ERROR },
  /* AC    */ { 0, BX_IA_ERROR },
  /* AD k0 */ { 0, BX_IA_ERROR },
  /* AD    */ { 0, BX_IA_ERROR },
  /* AE k0 */ { 0, BX_IA_ERROR },
  /* AE    */ { 0, BX_IA_ERROR },
  /* AF k0 */ { 0, BX_IA_ERROR },
  /* AF    */ { 0, BX_IA_ERROR },
  /* B0 k0 */ { 0, BX_IA_ERROR },
  /* B0    */ { 0, BX_IA_ERROR },
  /* B1 k0 */ { 0, BX_IA_ERROR },
  /* B1    */ { 0, BX_IA_ERROR },
  /* B2 k0 */ { 0, BX_IA_ERROR },
  /* B2    */ { 0, BX_IA_ERROR },
  /* B3 k0 */ { 0, BX_IA_ERROR },
  /* B3    */ { 0, BX_IA_ERROR },
  /* B4 k0 */ { 0, BX_IA_ERROR },
  /* B4    */ { 0, BX_IA_ERROR },
  /* B5 k0 */ { 0, BX_IA_ERROR },
  /* B5    */ { 0, BX_IA_ERROR },
  /* B6 k0 */ { 0, BX_IA_ERROR },
  /* B6    */ { 0, BX_IA_ERROR },
  /* B7 k0 */ { 0, BX_IA_ERROR },
  /* B7    */ { 0, BX_IA_ERROR },
  /* B8 k0 */ { 0, BX_IA_ERROR },
  /* B8    */ { 0, BX_IA_ERROR },
  /* B9 k0 */ { 0, BX_IA_ERROR },
  /* B9    */ { 0, BX_IA_ERROR },
  /* BA k0 */ { 0, BX_IA_ERROR },
  /* BA    */ { 0, BX_IA_ERROR },
  /* BB k0 */ { 0, BX_IA_ERROR },
  /* BB    */ { 0, BX_IA_ERROR },
  /* BC k0 */ { 0, BX_IA_ERROR },
  /* BC    */ { 0, BX_IA_ERROR },
  /* BD k0 */ { 0, BX_IA_ERROR },
  /* BD    */ { 0, BX_IA_ERROR },
  /* BE k0 */ { 0, BX_IA_ERROR },
  /* BE    */ { 0, BX_IA_ERROR },
  /* BF k0 */ { 0, BX_IA_ERROR },
  /* BF    */ { 0, BX_IA_ERROR },
  /* C0 k0 */ { 0, BX_IA_ERROR },
  /* C0    */ { 0, BX_IA_ERROR },
  /* C1 k0 */ { 0, BX_IA_ERROR },
  /* C1    */ { 0, BX_IA_ERROR },
  /* C2 k0 */ { 0, BX_IA_ERROR },
  /* C2    */ { 0, BX_IA_ERROR },
  /* C3 k0 */ { 0, BX_IA_ERROR },
  /* C3    */ { 0, BX_IA_ERROR },
  /* C4 k0 */ { 0, BX_IA_ERROR },
  /* C4    */ { 0, BX_IA_ERROR },
  /* C5 k0 */ { 0, BX_IA_ERROR },
  /* C5    */ { 0, BX_IA_ERROR },
  /* C6 k0 */ { 0, BX_IA_ERROR },
  /* C6    */ { 0, BX_IA_ERROR },
  /* C7 k0 */ { 0, BX_IA_ERROR },
  /* C7    */ { 0, BX_IA_ERROR },
  /* C8 k0 */ { 0, BX_IA_ERROR },
  /* C8    */ { 0, BX_IA_ERROR },
  /* C9 k0 */ { 0, BX_IA_ERROR },
  /* C9    */ { 0, BX_IA_ERROR },
  /* CA k0 */ { 0, BX_IA_ERROR },
  /* CA    */ { 0, BX_IA_ERROR },
  /* CB k0 */ { 0, BX_IA_ERROR },
  /* CB    */ { 0, BX_IA_ERROR },
  /* CC k0 */ { 0, BX_IA_ERROR },
  /* CC    */ { 0, BX_IA_ERROR },
  /* CD k0 */ { 0, BX_IA_ERROR },
  /* CD    */ { 0, BX_IA_ERROR },
  /* CE k0 */ { 0, BX_IA_ERROR },
  /* CE    */ { 0, BX_IA_ERROR },
  /* CF k0 */ { 0, BX_IA_ERROR },
  /* CF    */ { 0, BX_IA_ERROR },
  /* D0 k0 */ { 0, BX_IA_ERROR },
  /* D0    */ { 0, BX_IA_ERROR },
  /* D1 k0 */ { 0, BX_IA_ERROR },
  /* D1    */ { 0, BX_IA_ERROR },
  /* D2 k0 */ { 0, BX_IA_ERROR },
  /* D2    */ { 0, BX_IA_ERROR },
  /* D3 k0 */ { 0, BX_IA_ERROR },
  /* D3    */ { 0, BX_IA_ERROR },
  /* D4 k0 */ { 0, BX_IA_ERROR },
  /* D4    */ { 0, BX_IA_ERROR },
  /* D5 k0 */ { 0, BX_IA_ERROR },
  /* D5    */ { 0, BX_IA_ERROR },
  /* D6 k0 */ { 0, BX_IA_ERROR },
  /* D6    */ { 0, BX_IA_ERROR },
  /* D7 k0 */ { 0, BX_IA_ERROR },
  /* D7    */ { 0, BX_IA_ERROR },
  /* D8 k0 */ { 0, BX_IA_ERROR },
  /* D8    */ { 0, BX_IA_ERROR },
  /* D9 k0 */ { 0, BX_IA_ERROR },
  /* D9    */ { 0, BX_IA_ERROR },
  /* DA k0 */ { 0, BX_IA_ERROR },
  /* DA    */ { 0, BX_IA_ERROR },
  /* DB k0 */ { 0, BX_IA_ERROR },
  /* DB    */ { 0, BX_IA_ERROR },
  /* DC k0 */ { 0, BX_IA_ERROR },
  /* DC    */ { 0, BX_IA_ERROR },
  /* DD k0 */ { 0, BX_IA_ERROR },
  /* DD    */ { 0, BX_IA_ERROR },
  /* DE k0 */ { 0, BX_IA_ERROR },
  /* DE    */ { 0, BX_IA_ERROR },
  /* DF k0 */ { 0, BX_IA_ERROR },
  /* DF    */ { 0, BX_IA_ERROR },
  /* E0 k0 */ { 0, BX_IA_ERROR },
  /* E0    */ { 0, BX_IA_ERROR },
  /* E1 k0 */ { 0, BX_IA_ERROR },
  /* E1    */ { 0, BX_IA_ERROR },
  /* E2 k0 */ { 0, BX_IA_ERROR },
  /* E2    */ { 0, BX_IA_ERROR },
  /* E3 k0 */ { 0, BX_IA_ERROR },
  /* E3    */ { 0, BX_IA_ERROR },
  /* E4 k0 */ { 0, BX_IA_ERROR },
  /* E4    */ { 0, BX_IA_ERROR },
  /* E5 k0 */ { 0, BX_IA_ERROR },
  /* E5    */ { 0, BX_IA_ERROR },
  /* E6 k0 */ { 0, BX_IA_ERROR },
  /* E6    */ { 0, BX_IA_ERROR },
  /* E7 k0 */ { 0, BX_IA_ERROR },
  /* E7    */ { 0, BX_IA_ERROR },
  /* E8 k0 */ { 0, BX_IA_ERROR },
  /* E8    */ { 0, BX_IA_ERROR },
  /* E9 k0 */ { 0, BX_IA_ERROR },
  /* E9    */ { 0, BX_IA_ERROR },
  /* EA k0 */ { 0, BX_IA_ERROR },
  /* EA    */ { 0, BX_IA_ERROR },
  /* EB k0 */ { 0, BX_IA_ERROR },
  /* EB    */ { 0, BX_IA_ERROR },
  /* EC k0 */ { 0, BX_IA_ERROR },
  /* EC    */ { 0, BX_IA_ERROR },
  /* ED k0 */ { 0, BX_IA_ERROR },
  /* ED    */ { 0, BX_IA_ERROR },
  /* EE k0 */ { 0, BX_IA_ERROR },
  /* EE    */ { 0, BX_IA_ERROR },
  /* EF k0 */ { 0, BX_IA_ERROR },
  /* EF    */ { 0, BX_IA_ERROR },
  /* F0 k0 */ { 0, BX_IA_ERROR },
  /* F0    */ { 0, BX_IA_ERROR },
  /* F1 k0 */ { 0, BX_IA_ERROR },
  /* F1    */ { 0, BX_IA_ERROR },
  /* F2 k0 */ { 0, BX_IA_ERROR },
  /* F2    */ { 0, BX_IA_ERROR },
  /* F3 k0 */ { 0, BX_IA_ERROR },
  /* F3    */ { 0, BX_IA_ERROR },
  /* F4 k0 */ { 0, BX_IA_ERROR },
  /* F4    */ { 0, BX_IA_ERROR },
  /* F5 k0 */ { 0, BX_IA_ERROR },
  /* F5    */ { 0, BX_IA_ERROR },
  /* F6 k0 */ { 0, BX_IA_ERROR },
  /* F6    */ { 0, BX_IA_ERROR },
  /* F7 k0 */ { 0, BX_IA_ERROR },
  /* F7    */ { 0, BX_IA_ERROR },
  /* F8 k0 */ { 0, BX_IA_ERROR },
  /* F8    */ { 0, BX_IA_ERROR },
  /* F9 k0 */ { 0, BX_IA_ERROR },
  /* F9    */ { 0, BX_IA_ERROR },
  /* FA k0 */ { 0, BX_IA_ERROR },
  /* FA    */ { 0, BX_IA_ERROR },
  /* FB k0 */ { 0, BX_IA_ERROR },
  /* FB    */ { 0, BX_IA_ERROR },
  /* FC k0 */ { 0, BX_IA_ERROR },
  /* FC    */ { 0, BX_IA_ERROR },
  /* FD k0 */ { 0, BX_IA_ERROR },
  /* FD    */ { 0, BX_IA_ERROR },
  /* FE k0 */ { 0, BX_IA_ERROR },
  /* FE    */ { 0, BX_IA_ERROR },
  /* FF k0 */ { 0, BX_IA_ERROR },
  /* FF    */ { 0, BX_IA_ERROR }
};

#endif // BX_SUPPORT_EVEX

#endif // BX_AVX_FETCHDECODE_TABLES_H
