/////////////////////////////////////////////////////////////////////////
// $Id: dis_tables_sse.inc 11878 2013-10-11 20:09:51Z sshwarts $
/////////////////////////////////////////////////////////////////////////
//
//   Copyright (c) 2005-2013 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  02110-1301 USA
//
/////////////////////////////////////////////////////////////////////////

/* ************************************************************************ */
/* SSE opcodes */

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_ERR[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f10[4] = {
  /* -- */ { 0, &Ia_movups_Vps_Wps },
  /* 66 */ { 0, &Ia_movupd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_movss_Vss_Wss },
  /* F2 */ { 0, &Ia_movsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f11[4] = {
  /* -- */ { 0, &Ia_movups_Wps_Vps },
  /* 66 */ { 0, &Ia_movupd_Wpd_Vpd },
  /* F3 */ { 0, &Ia_movss_Wss_Vss },
  /* F2 */ { 0, &Ia_movsd_Wsd_Vsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupModMOVHLPS[2] = {
  /* R */ { 0, &Ia_movhlps_Vps_Udq },
  /* M */ { 0, &Ia_movlps_Vps_Mq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f12[4] = {
  /* -- */ { GRPMOD(MOVHLPS) },
  /* 66 */ { 0, &Ia_movlpd_Vpd_Mq },
  /* F3 */ { 0, &Ia_movsldup_Vdq_Wdq },
  /* F2 */ { 0, &Ia_movddup_Vdq_Wq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f13[2] = {
  /* -- */ { 0, &Ia_movlps_Mq_Vps },
  /* 66 */ { 0, &Ia_movlpd_Mq_Vpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f14[2] = {
  /* -- */ { 0, &Ia_unpcklps_Vps_Wps },
  /* 66 */ { 0, &Ia_unpcklpd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f15[2] = {
  /* -- */ { 0, &Ia_unpckhps_Vps_Wps },
  /* 66 */ { 0, &Ia_unpckhpd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupModMOVLHPS[2] = {
  /* R */ { 0, &Ia_movlhps_Vps_Udq },
  /* M */ { 0, &Ia_movhps_Vps_Mq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f16[4] = {
  /* -- */ { GRPMOD(MOVLHPS) },
  /* 66 */ { 0, &Ia_movhpd_Vpd_Mq },
  /* F3 */ { 0, &Ia_movshdup_Vdq_Wdq },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f17[2] = {
  /* -- */ { 0, &Ia_movhps_Mq_Vps },
  /* 66 */ { 0, &Ia_movhpd_Mq_Vpd },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f28[2] = {
  /* -- */ { 0, &Ia_movaps_Vps_Wps },
  /* 66 */ { 0, &Ia_movapd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f29[2] = {
  /* -- */ { 0, &Ia_movaps_Wps_Vps },
  /* 66 */ { 0, &Ia_movapd_Wpd_Vpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2a[4] = {
  /* -- */ { 0, &Ia_cvtpi2ps_Vps_Qq },
  /* 66 */ { 0, &Ia_cvtpi2pd_Vpd_Qq },
  /* F3 */ { 0, &Ia_cvtsi2ss_Vss_Ey },
  /* F2 */ { 0, &Ia_cvtsi2sd_Vsd_Ey }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2b[4] = {
  /* -- */ { 0, &Ia_movntps_Mps_Vps },
  /* 66 */ { 0, &Ia_movntpd_Mpd_Vpd },
  /* F3 */ { 0, &Ia_movntss_Mss_Vss }, // SSE4A
  /* F2 */ { 0, &Ia_movntsd_Msd_Vsd }  // SSE4A
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2c[4] = {
  /* -- */ { 0, &Ia_cvttps2pi_Pq_Wps },
  /* 66 */ { 0, &Ia_cvttpd2pi_Pq_Wpd },
  /* F3 */ { 0, &Ia_cvttss2si_Gy_Wss },
  /* F2 */ { 0, &Ia_cvttsd2si_Gy_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2d[4] = {
  /* -- */ { 0, &Ia_cvtps2pi_Pq_Wps },
  /* 66 */ { 0, &Ia_cvtpd2pi_Pq_Wpd },
  /* F3 */ { 0, &Ia_cvtss2si_Gy_Wss },
  /* F2 */ { 0, &Ia_cvtsd2si_Gy_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2e[2] = {
  /* -- */ { 0, &Ia_ucomiss_Vss_Wss },
  /* 66 */ { 0, &Ia_ucomisd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2f[2] = {
  /* -- */ { 0, &Ia_comiss_Vss_Wss },
  /* 66 */ { 0, &Ia_comisd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f50[2] = {
  /* -- */ { 0, &Ia_movmskps_Gd_Ups },
  /* 66 */ { 0, &Ia_movmskpd_Gd_Upd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f51[4] = {
  /* -- */ { 0, &Ia_sqrtps_Vps_Wps },
  /* 66 */ { 0, &Ia_sqrtpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_sqrtss_Vss_Wss },
  /* F2 */ { 0, &Ia_sqrtsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f52[4] = {
  /* -- */ { 0, &Ia_rsqrtps_Vps_Wps },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_rsqrtss_Vss_Wss },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f53[4] = {
  /* -- */ { 0, &Ia_rcpps_Vps_Wps },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_rcpss_Vss_Wss },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f54[2] = {
  /* -- */ { 0, &Ia_andps_Vps_Wps },
  /* 66 */ { 0, &Ia_andpd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f55[2] = {
  /* -- */ { 0, &Ia_andnps_Vps_Wps },
  /* 66 */ { 0, &Ia_andnpd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f56[2] = {
  /* -- */ { 0, &Ia_orps_Vps_Wps },
  /* 66 */ { 0, &Ia_orpd_Vpd_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f57[2] = {
  /* -- */ { 0, &Ia_xorps_Vps_Wps },
  /* 66 */ { 0, &Ia_xorpd_Vpd_Wpd },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f58[4] = {
  /* -- */ { 0, &Ia_addps_Vps_Wps },
  /* 66 */ { 0, &Ia_addpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_addss_Vss_Wss },
  /* F2 */ { 0, &Ia_addsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f59[4] = {
  /* -- */ { 0, &Ia_mulps_Vps_Wps },
  /* 66 */ { 0, &Ia_mulpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_mulss_Vss_Wss },
  /* F2 */ { 0, &Ia_mulsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5a[4] = {
  /* -- */ { 0, &Ia_cvtps2pd_Vpd_Wps },
  /* 66 */ { 0, &Ia_cvtpd2ps_Vps_Wpd },
  /* F3 */ { 0, &Ia_cvtss2sd_Vsd_Wss },
  /* F2 */ { 0, &Ia_cvtsd2ss_Vss_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5b[4] = {
  /* -- */ { 0, &Ia_cvtdq2ps_Vps_Wdq },
  /* 66 */ { 0, &Ia_cvtps2dq_Vdq_Wps },
  /* F3 */ { 0, &Ia_cvttps2dq_Vdq_Wps },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5c[4] = {
  /* -- */ { 0, &Ia_subps_Vps_Wps },
  /* 66 */ { 0, &Ia_subpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_subss_Vss_Wss },
  /* F2 */ { 0, &Ia_subsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5d[4] = {
  /* -- */ { 0, &Ia_minps_Vps_Wps },
  /* 66 */ { 0, &Ia_minpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_minss_Vss_Wss },
  /* F2 */ { 0, &Ia_minsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5e[4] = {
  /* -- */ { 0, &Ia_divps_Vps_Wps },
  /* 66 */ { 0, &Ia_divpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_divss_Vss_Wss },
  /* F2 */ { 0, &Ia_divsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5f[4] = {
  /* -- */ { 0, &Ia_maxps_Vps_Wps },
  /* 66 */ { 0, &Ia_maxpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_maxss_Vss_Wss },
  /* F2 */ { 0, &Ia_maxsd_Vsd_Wsd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f60[2] = {
  /* -- */ { 0, &Ia_punpcklbw_Pq_Qd },
  /* 66 */ { 0, &Ia_punpcklbw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f61[2] = {
  /* -- */ { 0, &Ia_punpcklwd_Pq_Qd },
  /* 66 */ { 0, &Ia_punpcklwd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f62[2] = {
  /* -- */ { 0, &Ia_punpckldq_Pq_Qd },
  /* 66 */ { 0, &Ia_punpckldq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f63[2] = {
  /* -- */ { 0, &Ia_packsswb_Pq_Qq },
  /* 66 */ { 0, &Ia_packsswb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f64[2] = {
  /* -- */ { 0, &Ia_pcmpgtb_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpgtb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f65[2] = {
  /* -- */ { 0, &Ia_pcmpgtw_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpgtw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f66[2] = {
  /* -- */ { 0, &Ia_pcmpgtd_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpgtd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f67[2] = {
  /* -- */ { 0, &Ia_packuswb_Pq_Qq },
  /* 66 */ { 0, &Ia_packuswb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f68[2] = {
  /* -- */ { 0, &Ia_punpckhbw_Pq_Qq },
  /* 66 */ { 0, &Ia_punpckhbw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f69[2] = {
  /* -- */ { 0, &Ia_punpckhwd_Pq_Qq },
  /* 66 */ { 0, &Ia_punpckhwd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6a[2] = {
  /* -- */ { 0, &Ia_punpckhdq_Pq_Qq },
  /* 66 */ { 0, &Ia_punpckhdq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6b[2] = {
  /* -- */ { 0, &Ia_packssdw_Pq_Qq },
  /* 66 */ { 0, &Ia_packssdw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6e[2] = {
  /* -- */ { 0, &Ia_movd_Pq_Ed },
  /* 66 */ { 0, &Ia_movd_Vdq_Ed }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6eQ[2] = {
  /* -- */ { 0, &Ia_movq_Pq_Eq },
  /* 66 */ { 0, &Ia_movq_Vdq_Eq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6f[4] = {
  /* -- */ { 0, &Ia_movq_Pq_Qq },
  /* 66 */ { 0, &Ia_movdqa_Vdq_Wdq },
  /* F3 */ { 0, &Ia_movdqu_Vdq_Wdq },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f70[4] = {
  /* -- */ { 0, &Ia_pshufw_Pq_Qq_Ib },
  /* 66 */ { 0, &Ia_pshufd_Vdq_Wdq_Ib  },
  /* F3 */ { 0, &Ia_pshufhw_Vdq_Wdq_Ib },
  /* F2 */ { 0, &Ia_pshuflw_Vdq_Wdq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f74[2] = {
  /* -- */ { 0, &Ia_pcmpeqb_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpeqb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f75[2] = {
  /* -- */ { 0, &Ia_pcmpeqw_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpeqw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f76[2] = {
  /* -- */ { 0, &Ia_pcmpeqd_Pq_Qq },
  /* 66 */ { 0, &Ia_pcmpeqd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE4A_G17[8] = {
  /* 0 */ { 0, &Ia_extrq_Udq_Ib_Ib },       // SSE4A
  /* 1 */ { 0, &Ia_Invalid },
  /* 2 */ { 0, &Ia_Invalid },
  /* 3 */ { 0, &Ia_Invalid },
  /* 4 */ { 0, &Ia_Invalid },
  /* 5 */ { 0, &Ia_Invalid },
  /* 6 */ { 0, &Ia_Invalid },
  /* 7 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f78[4] = {
  /* -- */ { 0, &Ia_vmread_Ed_Gd },         // VMX
  /* 66 */ { GRPN(SSE4A_G17) },             // SSE4A
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_insertq_Vdq_Uq_Ib_Ib }  // SSE4A
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f78Q[4] = {
  /* -- */ { 0, &Ia_vmread_Eq_Gq },         // VMX
  /* 66 */ { GRPN(SSE4A_G17) },             // SSE4A
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_insertq_Vdq_Uq_Ib_Ib }  // SSE4A
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f79[4] = {
  /* -- */ { 0, &Ia_vmwrite_Gd_Ed },        // VMX
  /* 66 */ { 0, &Ia_extrq_Vdq_Uq },         // SSE4A
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_insertq_Vdq_Udq }       // SSE4A
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f79Q[4] = {
  /* -- */ { 0, &Ia_vmwrite_Gq_Eq },        // VMX
  /* 66 */ { 0, &Ia_extrq_Vdq_Uq },         // SSE4A
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_insertq_Vdq_Udq }       // SSE4A
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7c[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_haddpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_haddps_Vps_Wps }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7d[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_hsubpd_Vpd_Wpd },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_hsubps_Vps_Wps }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7e[4] = {
  /* -- */ { 0, &Ia_movd_Ed_Pq },
  /* 66 */ { 0, &Ia_movd_Ed_Vd },
  /* F3 */ { 0, &Ia_movq_Vq_Wq },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7eQ[4] = {
  /* -- */ { 0, &Ia_movq_Eq_Pq },
  /* 66 */ { 0, &Ia_movq_Eq_Vq },
  /* F2 */ { 0, &Ia_movq_Vq_Wq },
  /* F3 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7f[4] = {
  /* -- */ { 0, &Ia_movq_Qq_Pq },
  /* 66 */ { 0, &Ia_movdqa_Wdq_Vdq },
  /* F2 */ { 0, &Ia_movdqu_Wdq_Vdq },
  /* F3 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fc2[4] = {
  /* -- */ { 0, &Ia_cmpps_Vps_Wps_Ib },
  /* 66 */ { 0, &Ia_cmppd_Vpd_Wpd_Ib },
  /* F3 */ { 0, &Ia_cmpss_Vss_Wss_Ib },
  /* F2 */ { 0, &Ia_cmpsd_Vsd_Wsd_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fc4[2] = {
  /* -- */ { 0, &Ia_pinsrw_Pq_Ew_Ib },
  /* 66 */ { 0, &Ia_pinsrw_Vdq_Ew_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fc5[2] = {
  /* -- */ { 0, &Ia_pextrw_Gd_Nq_Ib },
  /* 66 */ { 0, &Ia_pextrw_Gd_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fc6[2] = {
  /* -- */ { 0, &Ia_shufps_Vps_Wps_Ib },
  /* 66 */ { 0, &Ia_shufpd_Vpd_Wpd_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd0[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_addsubpd_Vpd_Wpd },
  /* F2 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_addsubps_Vps_Wps },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd1[2] = {
  /* -- */ { 0, &Ia_psrlw_Pq_Qq },
  /* 66 */ { 0, &Ia_psrlw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd2[2] = {
  /* -- */ { 0, &Ia_psrld_Pq_Qq },
  /* 66 */ { 0, &Ia_psrld_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd3[2] = {
  /* -- */ { 0, &Ia_psrlq_Pq_Qq },
  /* 66 */ { 0, &Ia_psrlq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd4[2] = {
  /* -- */ { 0, &Ia_paddq_Pq_Qq },
  /* 66 */ { 0, &Ia_paddq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd5[2] = {
  /* -- */ { 0, &Ia_pmullw_Pq_Qq },
  /* 66 */ { 0, &Ia_pmullw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd6[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_movq_Wq_Vq },
  /* F3 */ { 0, &Ia_movq2dq_Vdq_Qq },
  /* F2 */ { 0, &Ia_movdq2q_Pq_Udq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd7[2] = {
  /* -- */ { 0, &Ia_pmovmskb_Gd_Nq },
  /* 66 */ { 0, &Ia_pmovmskb_Gd_Udq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd8[2] = {
  /* -- */ { 0, &Ia_psubusb_Pq_Qq },
  /* 66 */ { 0, &Ia_psubusb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd9[2] = {
  /* -- */ { 0, &Ia_psubusw_Pq_Qq },
  /* 66 */ { 0, &Ia_psubusw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fda[2] = {
  /* -- */ { 0, &Ia_pminub_Pq_Qq },
  /* 66 */ { 0, &Ia_pminub_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdb[2] = {
  /* -- */ { 0, &Ia_pand_Pq_Qq },
  /* 66 */ { 0, &Ia_pand_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdc[2] = {
  /* -- */ { 0, &Ia_paddusb_Pq_Qq },
  /* 66 */ { 0, &Ia_paddusb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdd[2] = {
  /* -- */ { 0, &Ia_paddusw_Pq_Qq },
  /* 66 */ { 0, &Ia_paddusw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fde[2] = {
  /* -- */ { 0, &Ia_pmaxub_Pq_Qq },
  /* 66 */ { 0, &Ia_pmaxub_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdf[2] = {
  /* -- */ { 0, &Ia_pandn_Pq_Qq },
  /* 66 */ { 0, &Ia_pandn_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe0[2] = {
  /* -- */ { 0, &Ia_pavgb_Pq_Qq },
  /* 66 */ { 0, &Ia_pavgb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe1[2] = {
  /* -- */ { 0, &Ia_psraw_Pq_Qq },
  /* 66 */ { 0, &Ia_psraw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe2[2] = {
  /* -- */ { 0, &Ia_psrad_Pq_Qq },
  /* 66 */ { 0, &Ia_psrad_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe3[2] = {
  /* -- */ { 0, &Ia_pavgw_Pq_Qq },
  /* 66 */ { 0, &Ia_pavgw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe4[2] = {
  /* -- */ { 0, &Ia_pmulhuw_Pq_Qq },
  /* 66 */ { 0, &Ia_pmulhuw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe5[2] = {
  /* -- */ { 0, &Ia_pmulhw_Pq_Qq },
  /* 66 */ { 0, &Ia_pmulhw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe6[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_cvttpd2dq_Vq_Wpd },
  /* F3 */ { 0, &Ia_cvtdq2pd_Vpd_Wq },
  /* F2 */ { 0, &Ia_cvtpd2dq_Vq_Wpd }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe7[2] = {
  /* -- */ { 0, &Ia_movntq_Mq_Pq },
  /* 66 */ { 0, &Ia_movntdq_Mdq_Vdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe8[2] = {
  /* -- */ { 0, &Ia_psubsb_Pq_Qq },
  /* 66 */ { 0, &Ia_psubsb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe9[2] = {
  /* -- */ { 0, &Ia_psubsw_Pq_Qq },
  /* 66 */ { 0, &Ia_psubsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fea[2] = {
  /* -- */ { 0, &Ia_pminsw_Pq_Qq },
  /* 66 */ { 0, &Ia_pminsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0feb[2] = {
  /* -- */ { 0, &Ia_por_Pq_Qq },
  /* 66 */ { 0, &Ia_por_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fec[2] = {
  /* -- */ { 0, &Ia_paddsb_Pq_Qq },
  /* 66 */ { 0, &Ia_paddsb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fed[2] = {
  /* -- */ { 0, &Ia_paddsw_Pq_Qq },
  /* 66 */ { 0, &Ia_paddsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fee[2] = {
  /* -- */ { 0, &Ia_pmaxsw_Pq_Qq },
  /* 66 */ { 0, &Ia_pmaxsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fef[2] = {
  /* -- */ { 0, &Ia_pxor_Pq_Qq },
  /* 66 */ { 0, &Ia_pxor_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff1[2] = {
  /* -- */ { 0, &Ia_psllw_Pq_Qq },
  /* 66 */ { 0, &Ia_psllw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff2[2] = {
  /* -- */ { 0, &Ia_pslld_Pq_Qq },
  /* 66 */ { 0, &Ia_pslld_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff3[2] = {
  /* -- */ { 0, &Ia_psllq_Pq_Qq },
  /* 66 */ { 0, &Ia_psllq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff4[2] = {
  /* -- */ { 0, &Ia_pmuludq_Pq_Qq },
  /* 66 */ { 0, &Ia_pmuludq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff5[2] = {
  /* -- */ { 0, &Ia_pmaddwd_Pq_Qq },
  /* 66 */ { 0, &Ia_pmaddwd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff6[2] = {
  /* -- */ { 0, &Ia_psadbw_Pq_Qq },
  /* 66 */ { 0, &Ia_psadbw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff7[2] = {
  /* -- */ { 0, &Ia_maskmovq_Pq_Nq },
  /* 66 */ { 0, &Ia_maskmovdqu_Vdq_Udq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff8[2] = {
  /* -- */ { 0, &Ia_psubb_Pq_Qq },
  /* 66 */ { 0, &Ia_psubb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff9[2] = {
  /* -- */ { 0, &Ia_psubw_Pq_Qq },
  /* 66 */ { 0, &Ia_psubw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffa[2] = {
  /* -- */ { 0, &Ia_psubd_Pq_Qq },
  /* 66 */ { 0, &Ia_psubd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffb[2] = {
  /* -- */ { 0, &Ia_psubq_Pq_Qq },
  /* 66 */ { 0, &Ia_psubq_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffc[2] = {
  /* -- */ { 0, &Ia_paddb_Pq_Qq },
  /* 66 */ { 0, &Ia_paddb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffd[2] = {
  /* -- */ { 0, &Ia_paddw_Pq_Qq },
  /* 66 */ { 0, &Ia_paddw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffe[2] = {
  /* -- */ { 0, &Ia_paddd_Pq_Qq },
  /* 66 */ { 0, &Ia_paddd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1202[2] = {
  /* -- */ { 0, &Ia_psrlw_Nq_Ib },
  /* 66 */ { 0, &Ia_psrlw_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1204[2] = {
  /* -- */ { 0, &Ia_psraw_Nq_Ib },
  /* 66 */ { 0, &Ia_psraw_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1206[2] = {
  /* -- */ { 0, &Ia_psllw_Nq_Ib },
  /* 66 */ { 0, &Ia_psllw_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1302[2] = {
  /* -- */ { 0, &Ia_psrld_Nq_Ib },
  /* 66 */ { 0, &Ia_psrld_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1304[2] = {
  /* -- */ { 0, &Ia_psrad_Nq_Ib },
  /* 66 */ { 0, &Ia_psrad_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1306[2] = {
  /* -- */ { 0, &Ia_pslld_Nq_Ib },
  /* 66 */ { 0, &Ia_pslld_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1402[2] = {
  /* -- */ { 0, &Ia_psrlq_Nq_Ib },
  /* 66 */ { 0, &Ia_psrlq_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1406[2] = {
  /* -- */ { 0, &Ia_psllq_Nq_Ib },
  /* 66 */ { 0, &Ia_psllq_Udq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3800[2] = {
  /* -- */ { 0, &Ia_pshufb_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_pshufb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3801[2] = {
  /* -- */ { 0, &Ia_phaddw_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_phaddw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3802[2] = {
  /* -- */ { 0, &Ia_phaddd_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_phaddd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3803[2] = {
  /* -- */ { 0, &Ia_phaddsw_Pq_Qq },    // SSSE3
  /* 66 */ { 0, &Ia_phaddsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3804[2] = {
  /* -- */ { 0, &Ia_pmaddubsw_Pq_Qq },  // SSSE3
  /* 66 */ { 0, &Ia_pmaddubsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3805[2] = {
  /* -- */ { 0, &Ia_phsubw_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_phsubw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3806[2] = {
  /* -- */ { 0, &Ia_phsubd_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_phsubd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3807[2] = {
  /* -- */ { 0, &Ia_phsubsw_Pq_Qq },    // SSSE3
  /* 66 */ { 0, &Ia_phsubsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3808[2] = {
  /* -- */ { 0, &Ia_psignb_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_psignb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3809[2] = {
  /* -- */ { 0, &Ia_psignw_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_psignw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380a[2] = {
  /* -- */ { 0, &Ia_psignd_Pq_Qq },     // SSSE3
  /* 66 */ { 0, &Ia_psignd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380b[2] = {
  /* -- */ { 0, &Ia_pmulhrsw_Pq_Qq },   // SSSE3
  /* 66 */ { 0, &Ia_pmulhrsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381c[2] = {
  /* -- */ { 0, &Ia_pabsb_Pq_Qq },      // SSSE3
  /* 66 */ { 0, &Ia_pabsb_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381d[2] = {
  /* -- */ { 0, &Ia_pabsw_Pq_Qq },      // SSSE3
  /* 66 */ { 0, &Ia_pabsw_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381e[2] = {
  /* -- */ { 0, &Ia_pabsd_Pq_Qq },      // SSSE3
  /* 66 */ { 0, &Ia_pabsd_Vdq_Wdq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f0w[4] = {
  /* -- */ { 0, &Ia_movbe_Gw_Mw },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Eb }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f0d[4] = {
  /* -- */ { 0, &Ia_movbe_Gd_Md },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Eb }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f0q[4] = {
  /* -- */ { 0, &Ia_movbe_Gq_Mq },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Eb }
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_0f38f0[3] = {
  /* 16 */ { GRPSSE(0f38f0w) },
  /* 32 */ { GRPSSE(0f38f0d) },
  /* 64 */ { GRPSSE(0f38f0q) },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f1w[4] = {
  /* -- */ { 0, &Ia_movbe_Mw_Gw },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Ew }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f1d[4] = {
  /* -- */ { 0, &Ia_movbe_Md_Gd },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Ed }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f1q[4] = {
  /* -- */ { 0, &Ia_movbe_Mq_Gq },
  /* 66 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_crc32_Gd_Eq }
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_0f38f1[3] = {
  /* 16 */ { GRPSSE(0f38f1w) },
  /* 32 */ { GRPSSE(0f38f1d) },
  /* 64 */ { GRPSSE(0f38f1q) },
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_adcx[3] = {
  /* 16 */ { 0, &Ia_adcx_Gd_Ed },
  /* 32 */ { 0, &Ia_adcx_Gd_Ed },
  /* 64 */ { 0, &Ia_adcx_Gq_Eq },
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_adox[3] = {
  /* 16 */ { 0, &Ia_adox_Gd_Ed },
  /* 32 */ { 0, &Ia_adox_Gd_Ed },
  /* 64 */ { 0, &Ia_adox_Gq_Eq },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f6[4] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { GR64BIT(adcx) },
  /* F3 */ { GR64BIT(adox) },
  /* F2 */ { 0, &Ia_Invalid }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0f[2] = {
  /* -- */ { 0, &Ia_palignr_Pq_Qq_Ib }, // SSSE3
  /* 66 */ { 0, &Ia_palignr_Vdq_Wdq_Ib }
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pextr[3] = {
  /* 16 */ { 0, &Ia_pextrd_Ed_Vdq_Ib },
  /* 32 */ { 0, &Ia_pextrd_Ed_Vdq_Ib },
  /* 64 */ { 0, &Ia_pextrq_Eq_Vdq_Ib },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a16[2] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { GR64BIT(pextr) }          // SSE4
};

static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pinsr[3] = {
  /* 16 */ { 0, &Ia_pinsrd_Vdq_Ed_Ib },
  /* 32 */ { 0, &Ia_pinsrd_Vdq_Ed_Ib },
  /* 64 */ { 0, &Ia_pinsrq_Vdq_Eq_Ib },
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a22[2] = {
  /* -- */ { 0, &Ia_Invalid },
  /* 66 */ { GR64BIT(pinsr) }          // SSE4
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbcw[4] = {
  /* -- */ { 0, &Ia_bsfw_Gw_Ew },
  /* 66 */ { 0, &Ia_bsfw_Gw_Ew },
  /* F3 */ { 0, &Ia_tzcntw_Gw_Ew },
  /* F2 */ { 0, &Ia_bsfw_Gw_Ew }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbcd[4] = {
  /* -- */ { 0, &Ia_bsfl_Gd_Ed },
  /* 66 */ { 0, &Ia_bsfl_Gd_Ed },
  /* F3 */ { 0, &Ia_tzcntl_Gd_Ed },
  /* F2 */ { 0, &Ia_bsfl_Gd_Ed }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbcq[4] = {
  /* -- */ { 0, &Ia_bsfq_Gq_Eq },
  /* 66 */ { 0, &Ia_bsfq_Gq_Eq },
  /* F3 */ { 0, &Ia_tzcntq_Gq_Eq },
  /* F2 */ { 0, &Ia_bsfq_Gq_Eq }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbdw[4] = {
  /* -- */ { 0, &Ia_bsrw_Gw_Ew },
  /* 66 */ { 0, &Ia_bsrw_Gw_Ew },
  /* F3 */ { 0, &Ia_lzcntw_Gw_Ew },
  /* F2 */ { 0, &Ia_bsrw_Gw_Ew }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbdd[4] = {
  /* -- */ { 0, &Ia_bsrl_Gd_Ed },
  /* 66 */ { 0, &Ia_bsrl_Gd_Ed },
  /* F3 */ { 0, &Ia_lzcntl_Gd_Ed },
  /* F2 */ { 0, &Ia_bsrl_Gd_Ed }
};

static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbdq[4] = {
  /* -- */ { 0, &Ia_bsrq_Gq_Eq },
  /* 66 */ { 0, &Ia_bsrq_Gq_Eq },
  /* F3 */ { 0, &Ia_lzcntq_Gq_Eq },
  /* F2 */ { 0, &Ia_bsrq_Gq_Eq }
};

/* ************************************************************************ */
/* 3-byte opcode table (Table A-4, 0F 38) */

static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
  /* 00 */ { GRPSSE2(0f3800) },
  /* 01 */ { GRPSSE2(0f3801) },
  /* 02 */ { GRPSSE2(0f3802) },
  /* 03 */ { GRPSSE2(0f3803) },
  /* 04 */ { GRPSSE2(0f3804) },
  /* 05 */ { GRPSSE2(0f3805) },
  /* 06 */ { GRPSSE2(0f3806) },
  /* 07 */ { GRPSSE2(0f3807) },
  /* 08 */ { GRPSSE2(0f3808) },
  /* 09 */ { GRPSSE2(0f3809) },
  /* 0A */ { GRPSSE2(0f380a) },
  /* 0B */ { GRPSSE2(0f380b) },
  /* 0C */ { 0, &Ia_Invalid },
  /* 0D */ { 0, &Ia_Invalid },
  /* 0E */ { 0, &Ia_Invalid },
  /* 0F */ { 0, &Ia_Invalid },
  /* 10 */ { GRPSSE66(Ia_pblendvb_Vdq_Wdq) },
  /* 11 */ { 0, &Ia_Invalid },
  /* 12 */ { 0, &Ia_Invalid },
  /* 13 */ { 0, &Ia_Invalid },
  /* 14 */ { GRPSSE66(Ia_blendvps_Vps_Wps) },
  /* 15 */ { GRPSSE66(Ia_blendvpd_Vpd_Wpd) },
  /* 16 */ { 0, &Ia_Invalid },
  /* 17 */ { GRPSSE66(Ia_ptest_Vdq_Wdq) },
  /* 18 */ { 0, &Ia_Invalid },
  /* 19 */ { 0, &Ia_Invalid },
  /* 1A */ { 0, &Ia_Invalid },
  /* 1B */ { 0, &Ia_Invalid },
  /* 1C */ { GRPSSE2(0f381c) },
  /* 1D */ { GRPSSE2(0f381d) },
  /* 1E */ { GRPSSE2(0f381e) },
  /* 1F */ { 0, &Ia_Invalid },
  /* 20 */ { GRPSSE66(Ia_pmovsxbw_Vdq_Wq) },
  /* 21 */ { GRPSSE66(Ia_pmovsxbd_Vdq_Wd) },
  /* 22 */ { GRPSSE66(Ia_pmovsxbq_Vdq_Ww) },
  /* 23 */ { GRPSSE66(Ia_pmovsxwd_Vdq_Wq) },
  /* 24 */ { GRPSSE66(Ia_pmovsxwq_Vdq_Wd) },
  /* 25 */ { GRPSSE66(Ia_pmovsxdq_Vdq_Wq) },
  /* 26 */ { 0, &Ia_Invalid },
  /* 27 */ { 0, &Ia_Invalid },
  /* 28 */ { GRPSSE66(Ia_pmuldq_Vdq_Wdq) },
  /* 29 */ { GRPSSE66(Ia_pcmpeqq_Vdq_Wdq) },
  /* 2A */ { GRPSSE66(Ia_movntdqa_Vdq_Mdq) },
  /* 2B */ { GRPSSE66(Ia_packusdw_Vdq_Wdq) },
  /* 2C */ { 0, &Ia_Invalid },
  /* 2D */ { 0, &Ia_Invalid },
  /* 2E */ { 0, &Ia_Invalid },
  /* 2F */ { 0, &Ia_Invalid },
  /* 30 */ { GRPSSE66(Ia_pmovzxbw_Vdq_Wq) },
  /* 31 */ { GRPSSE66(Ia_pmovzxbd_Vdq_Wd) },
  /* 32 */ { GRPSSE66(Ia_pmovzxbq_Vdq_Ww) },
  /* 33 */ { GRPSSE66(Ia_pmovzxwd_Vdq_Wq) },
  /* 34 */ { GRPSSE66(Ia_pmovzxwq_Vdq_Wd) },
  /* 35 */ { GRPSSE66(Ia_pmovzxdq_Vdq_Wq) },
  /* 36 */ { 0, &Ia_Invalid },
  /* 37 */ { GRPSSE66(Ia_pcmpgtq_Vdq_Wdq) },
  /* 38 */ { GRPSSE66(Ia_pminsb_Vdq_Wdq) },
  /* 39 */ { GRPSSE66(Ia_pminsd_Vdq_Wdq) },
  /* 3A */ { GRPSSE66(Ia_pminuw_Vdq_Wdq) },
  /* 3B */ { GRPSSE66(Ia_pminud_Vdq_Wdq) },
  /* 3C */ { GRPSSE66(Ia_pmaxsb_Vdq_Wdq) },
  /* 3D */ { GRPSSE66(Ia_pmaxsd_Vdq_Wdq) },
  /* 3E */ { GRPSSE66(Ia_pmaxuw_Vdq_Wdq) },
  /* 3F */ { GRPSSE66(Ia_pmaxud_Vdq_Wdq) },
  /* 40 */ { GRPSSE66(Ia_pmulld_Vdq_Wdq) },
  /* 41 */ { GRPSSE66(Ia_phminposuw_Vdq_Wdq) },
  /* 42 */ { 0, &Ia_Invalid },
  /* 43 */ { 0, &Ia_Invalid },
  /* 44 */ { 0, &Ia_Invalid },
  /* 45 */ { 0, &Ia_Invalid },
  /* 46 */ { 0, &Ia_Invalid },
  /* 47 */ { 0, &Ia_Invalid },
  /* 48 */ { 0, &Ia_Invalid },
  /* 49 */ { 0, &Ia_Invalid },
  /* 4A */ { 0, &Ia_Invalid },
  /* 4B */ { 0, &Ia_Invalid },
  /* 4C */ { 0, &Ia_Invalid },
  /* 4D */ { 0, &Ia_Invalid },
  /* 4E */ { 0, &Ia_Invalid },
  /* 4F */ { 0, &Ia_Invalid },
  /* 50 */ { 0, &Ia_Invalid },
  /* 51 */ { 0, &Ia_Invalid },
  /* 52 */ { 0, &Ia_Invalid },
  /* 53 */ { 0, &Ia_Invalid },
  /* 54 */ { 0, &Ia_Invalid },
  /* 55 */ { 0, &Ia_Invalid },
  /* 56 */ { 0, &Ia_Invalid },
  /* 57 */ { 0, &Ia_Invalid },
  /* 58 */ { 0, &Ia_Invalid },
  /* 59 */ { 0, &Ia_Invalid },
  /* 5A */ { 0, &Ia_Invalid },
  /* 5B */ { 0, &Ia_Invalid },
  /* 5C */ { 0, &Ia_Invalid },
  /* 5D */ { 0, &Ia_Invalid },
  /* 5E */ { 0, &Ia_Invalid },
  /* 5F */ { 0, &Ia_Invalid },
  /* 60 */ { 0, &Ia_Invalid },
  /* 61 */ { 0, &Ia_Invalid },
  /* 62 */ { 0, &Ia_Invalid },
  /* 63 */ { 0, &Ia_Invalid },
  /* 64 */ { 0, &Ia_Invalid },
  /* 65 */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_Invalid },
  /* 67 */ { 0, &Ia_Invalid },
  /* 68 */ { 0, &Ia_Invalid },
  /* 69 */ { 0, &Ia_Invalid },
  /* 6A */ { 0, &Ia_Invalid },
  /* 6B */ { 0, &Ia_Invalid },
  /* 6C */ { 0, &Ia_Invalid },
  /* 6D */ { 0, &Ia_Invalid },
  /* 6E */ { 0, &Ia_Invalid },
  /* 6F */ { 0, &Ia_Invalid },
  /* 70 */ { 0, &Ia_Invalid },
  /* 71 */ { 0, &Ia_Invalid },
  /* 72 */ { 0, &Ia_Invalid },
  /* 73 */ { 0, &Ia_Invalid },
  /* 74 */ { 0, &Ia_Invalid },
  /* 75 */ { 0, &Ia_Invalid },
  /* 76 */ { 0, &Ia_Invalid },
  /* 77 */ { 0, &Ia_Invalid },
  /* 78 */ { 0, &Ia_Invalid },
  /* 79 */ { 0, &Ia_Invalid },
  /* 7A */ { 0, &Ia_Invalid },
  /* 7B */ { 0, &Ia_Invalid },
  /* 7C */ { 0, &Ia_Invalid },
  /* 7D */ { 0, &Ia_Invalid },
  /* 7E */ { 0, &Ia_Invalid },
  /* 7F */ { 0, &Ia_Invalid },
  /* 80 */ { GRPSSE66(Ia_invept_Gy_Mdq) },
  /* 81 */ { GRPSSE66(Ia_invvpid_Gy_Mdq) },
  /* 82 */ { GRPSSE66(Ia_invpcid_Gy_Mdq) },
  /* 83 */ { 0, &Ia_Invalid },
  /* 84 */ { 0, &Ia_Invalid },
  /* 85 */ { 0, &Ia_Invalid },
  /* 86 */ { 0, &Ia_Invalid },
  /* 87 */ { 0, &Ia_Invalid },
  /* 88 */ { 0, &Ia_Invalid },
  /* 89 */ { 0, &Ia_Invalid },
  /* 8A */ { 0, &Ia_Invalid },
  /* 8B */ { 0, &Ia_Invalid },
  /* 8C */ { 0, &Ia_Invalid },
  /* 8D */ { 0, &Ia_Invalid },
  /* 8E */ { 0, &Ia_Invalid },
  /* 8F */ { 0, &Ia_Invalid },
  /* 90 */ { 0, &Ia_Invalid },
  /* 91 */ { 0, &Ia_Invalid },
  /* 92 */ { 0, &Ia_Invalid },
  /* 93 */ { 0, &Ia_Invalid },
  /* 94 */ { 0, &Ia_Invalid },
  /* 95 */ { 0, &Ia_Invalid },
  /* 96 */ { 0, &Ia_Invalid },
  /* 97 */ { 0, &Ia_Invalid },
  /* 98 */ { 0, &Ia_Invalid },
  /* 99 */ { 0, &Ia_Invalid },
  /* 9A */ { 0, &Ia_Invalid },
  /* 9B */ { 0, &Ia_Invalid },
  /* 9C */ { 0, &Ia_Invalid },
  /* 9D */ { 0, &Ia_Invalid },
  /* 9E */ { 0, &Ia_Invalid },
  /* 9F */ { 0, &Ia_Invalid },
  /* A0 */ { 0, &Ia_Invalid },
  /* A1 */ { 0, &Ia_Invalid },
  /* A2 */ { 0, &Ia_Invalid },
  /* A3 */ { 0, &Ia_Invalid },
  /* A4 */ { 0, &Ia_Invalid },
  /* A5 */ { 0, &Ia_Invalid },
  /* A6 */ { 0, &Ia_Invalid },
  /* A7 */ { 0, &Ia_Invalid },
  /* A8 */ { 0, &Ia_Invalid },
  /* A9 */ { 0, &Ia_Invalid },
  /* AA */ { 0, &Ia_Invalid },
  /* AB */ { 0, &Ia_Invalid },
  /* AC */ { 0, &Ia_Invalid },
  /* AD */ { 0, &Ia_Invalid },
  /* AE */ { 0, &Ia_Invalid },
  /* AF */ { 0, &Ia_Invalid },
  /* B0 */ { 0, &Ia_Invalid },
  /* B1 */ { 0, &Ia_Invalid },
  /* B2 */ { 0, &Ia_Invalid },
  /* B3 */ { 0, &Ia_Invalid },
  /* B4 */ { 0, &Ia_Invalid },
  /* B5 */ { 0, &Ia_Invalid },
  /* B6 */ { 0, &Ia_Invalid },
  /* B7 */ { 0, &Ia_Invalid },
  /* B8 */ { 0, &Ia_Invalid },
  /* B9 */ { 0, &Ia_Invalid },
  /* BA */ { 0, &Ia_Invalid },
  /* BB */ { 0, &Ia_Invalid },
  /* BC */ { 0, &Ia_Invalid },
  /* BD */ { 0, &Ia_Invalid },
  /* BE */ { 0, &Ia_Invalid },
  /* BF */ { 0, &Ia_Invalid },
  /* C0 */ { 0, &Ia_Invalid },
  /* C1 */ { 0, &Ia_Invalid },
  /* C2 */ { 0, &Ia_Invalid },
  /* C3 */ { 0, &Ia_Invalid },
  /* C4 */ { 0, &Ia_Invalid },
  /* C5 */ { 0, &Ia_Invalid },
  /* C6 */ { 0, &Ia_Invalid },
  /* C7 */ { 0, &Ia_Invalid },
  /* C8 */ { GRPSSENONE(Ia_sha1nexte_Vdq_Wdq) },
  /* C9 */ { GRPSSENONE(Ia_sha1msg1_Vdq_Wdq) },
  /* CA */ { GRPSSENONE(Ia_sha1msg2_Vdq_Wdq) },
  /* CB */ { GRPSSENONE(Ia_sha256rnds2_Vdq_Wdq) },
  /* CC */ { GRPSSENONE(Ia_sha256msg1_Vdq_Wdq) },
  /* CD */ { GRPSSENONE(Ia_sha256msg2_Vdq_Wdq) },
  /* CE */ { 0, &Ia_Invalid },
  /* CF */ { 0, &Ia_Invalid },
  /* D0 */ { 0, &Ia_Invalid },
  /* D1 */ { 0, &Ia_Invalid },
  /* D2 */ { 0, &Ia_Invalid },
  /* D3 */ { 0, &Ia_Invalid },
  /* D4 */ { 0, &Ia_Invalid },
  /* D5 */ { 0, &Ia_Invalid },
  /* D6 */ { 0, &Ia_Invalid },
  /* D7 */ { 0, &Ia_Invalid },
  /* D8 */ { 0, &Ia_Invalid },
  /* D9 */ { 0, &Ia_Invalid },
  /* DA */ { 0, &Ia_Invalid },
  /* DB */ { GRPSSE66(Ia_aesimc_Vdq_Wdq) },
  /* DC */ { GRPSSE66(Ia_aesenc_Vdq_Wdq) },
  /* DD */ { GRPSSE66(Ia_aesenclast_Vdq_Wdq) },
  /* DE */ { GRPSSE66(Ia_aesdec_Vdq_Wdq) },
  /* DF */ { GRPSSE66(Ia_aesdeclast_Vdq_Wdq) },
  /* E0 */ { 0, &Ia_Invalid },
  /* E1 */ { 0, &Ia_Invalid },
  /* E2 */ { 0, &Ia_Invalid },
  /* E3 */ { 0, &Ia_Invalid },
  /* E4 */ { 0, &Ia_Invalid },
  /* E5 */ { 0, &Ia_Invalid },
  /* E6 */ { 0, &Ia_Invalid },
  /* E7 */ { 0, &Ia_Invalid },
  /* E8 */ { 0, &Ia_Invalid },
  /* E9 */ { 0, &Ia_Invalid },
  /* EA */ { 0, &Ia_Invalid },
  /* EB */ { 0, &Ia_Invalid },
  /* EC */ { 0, &Ia_Invalid },
  /* ED */ { 0, &Ia_Invalid },
  /* EE */ { 0, &Ia_Invalid },
  /* EF */ { 0, &Ia_Invalid },
  /* F0 */ { GR64BIT(0f38f0) },
  /* F1 */ { GR64BIT(0f38f1) },
  /* F2 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F4 */ { 0, &Ia_Invalid },
  /* F5 */ { 0, &Ia_Invalid },
  /* F6 */ { GRPSSE(0f38f6) },
  /* F7 */ { 0, &Ia_Invalid },
  /* F8 */ { 0, &Ia_Invalid },
  /* F9 */ { 0, &Ia_Invalid },
  /* FA */ { 0, &Ia_Invalid },
  /* FB */ { 0, &Ia_Invalid },
  /* FC */ { 0, &Ia_Invalid },
  /* FD */ { 0, &Ia_Invalid },
  /* FE */ { 0, &Ia_Invalid },
  /* FF */ { 0, &Ia_Invalid }
};

/* ************************************************************************ */
/* 3-byte opcode table (Table A-5, 0F 3A) */

static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
  /* 00 */ { 0, &Ia_Invalid },
  /* 01 */ { 0, &Ia_Invalid },
  /* 02 */ { 0, &Ia_Invalid },
  /* 03 */ { 0, &Ia_Invalid },
  /* 04 */ { 0, &Ia_Invalid },
  /* 05 */ { 0, &Ia_Invalid },
  /* 06 */ { 0, &Ia_Invalid },
  /* 07 */ { 0, &Ia_Invalid },
  /* 08 */ { GRPSSE66(Ia_roundps_Vps_Wps_Ib) },
  /* 09 */ { GRPSSE66(Ia_roundpd_Vpd_Wpd_Ib) },
  /* 0A */ { GRPSSE66(Ia_roundss_Vss_Wss_Ib) },
  /* 0B */ { GRPSSE66(Ia_roundsd_Vsd_Wsd_Ib) },
  /* 0C */ { GRPSSE66(Ia_blendps_Vps_Wps_Ib) },
  /* 0D */ { GRPSSE66(Ia_blendpd_Vpd_Wpd_Ib) },
  /* 0E */ { GRPSSE66(Ia_pblendw_Vdq_Wdq_Ib) },
  /* 0F */ { GRPSSE2(0f3a0f) },
  /* 10 */ { 0, &Ia_Invalid },
  /* 11 */ { 0, &Ia_Invalid },
  /* 12 */ { 0, &Ia_Invalid },
  /* 13 */ { 0, &Ia_Invalid },
  /* 14 */ { GRPSSE66(Ia_pextrb_Ebd_Vdq_Ib) },
  /* 15 */ { GRPSSE66(Ia_pextrw_Ewd_Vdq_Ib) },
  /* 16 */ { GRPSSE2(0f3a16) },
  /* 17 */ { GRPSSE66(Ia_extractps_Ed_Vdq_Ib) },
  /* 18 */ { 0, &Ia_Invalid },
  /* 19 */ { 0, &Ia_Invalid },
  /* 1A */ { 0, &Ia_Invalid },
  /* 1B */ { 0, &Ia_Invalid },
  /* 1C */ { 0, &Ia_Invalid },
  /* 1D */ { 0, &Ia_Invalid },
  /* 1E */ { 0, &Ia_Invalid },
  /* 1F */ { 0, &Ia_Invalid },
  /* 20 */ { GRPSSE66(Ia_pinsrb_Vdq_Ew_Ib) },
  /* 21 */ { GRPSSE66(Ia_insertps_Vps_Wss_Ib) },
  /* 22 */ { GRPSSE2(0f3a22) },
  /* 23 */ { 0, &Ia_Invalid },
  /* 24 */ { 0, &Ia_Invalid },
  /* 25 */ { 0, &Ia_Invalid },
  /* 26 */ { 0, &Ia_Invalid },
  /* 27 */ { 0, &Ia_Invalid },
  /* 28 */ { 0, &Ia_Invalid },
  /* 29 */ { 0, &Ia_Invalid },
  /* 2A */ { 0, &Ia_Invalid },
  /* 2B */ { 0, &Ia_Invalid },
  /* 2C */ { 0, &Ia_Invalid },
  /* 2D */ { 0, &Ia_Invalid },
  /* 2E */ { 0, &Ia_Invalid },
  /* 2F */ { 0, &Ia_Invalid },
  /* 30 */ { 0, &Ia_Invalid },
  /* 31 */ { 0, &Ia_Invalid },
  /* 32 */ { 0, &Ia_Invalid },
  /* 33 */ { 0, &Ia_Invalid },
  /* 34 */ { 0, &Ia_Invalid },
  /* 35 */ { 0, &Ia_Invalid },
  /* 36 */ { 0, &Ia_Invalid },
  /* 37 */ { 0, &Ia_Invalid },
  /* 38 */ { 0, &Ia_Invalid },
  /* 39 */ { 0, &Ia_Invalid },
  /* 3A */ { 0, &Ia_Invalid },
  /* 3B */ { 0, &Ia_Invalid },
  /* 3C */ { 0, &Ia_Invalid },
  /* 3D */ { 0, &Ia_Invalid },
  /* 3E */ { 0, &Ia_Invalid },
  /* 3F */ { 0, &Ia_Invalid },
  /* 40 */ { GRPSSE66(Ia_dpps_Vps_Wps_Ib) },
  /* 41 */ { GRPSSE66(Ia_dppd_Vpd_Wpd_Ib) },
  /* 42 */ { GRPSSE66(Ia_mpsadbw_Vdq_Wdq_Ib) },
  /* 43 */ { 0, &Ia_Invalid },
  /* 44 */ { GRPSSE66(Ia_pclmulqdq_Vdq_Wdq_Ib) },
  /* 45 */ { 0, &Ia_Invalid },
  /* 46 */ { 0, &Ia_Invalid },
  /* 47 */ { 0, &Ia_Invalid },
  /* 48 */ { 0, &Ia_Invalid },
  /* 49 */ { 0, &Ia_Invalid },
  /* 4A */ { 0, &Ia_Invalid },
  /* 4B */ { 0, &Ia_Invalid },
  /* 4C */ { 0, &Ia_Invalid },
  /* 4D */ { 0, &Ia_Invalid },
  /* 4E */ { 0, &Ia_Invalid },
  /* 4F */ { 0, &Ia_Invalid },
  /* 50 */ { 0, &Ia_Invalid },
  /* 51 */ { 0, &Ia_Invalid },
  /* 52 */ { 0, &Ia_Invalid },
  /* 53 */ { 0, &Ia_Invalid },
  /* 54 */ { 0, &Ia_Invalid },
  /* 55 */ { 0, &Ia_Invalid },
  /* 56 */ { 0, &Ia_Invalid },
  /* 57 */ { 0, &Ia_Invalid },
  /* 58 */ { 0, &Ia_Invalid },
  /* 59 */ { 0, &Ia_Invalid },
  /* 5A */ { 0, &Ia_Invalid },
  /* 5B */ { 0, &Ia_Invalid },
  /* 5C */ { 0, &Ia_Invalid },
  /* 5D */ { 0, &Ia_Invalid },
  /* 5E */ { 0, &Ia_Invalid },
  /* 5F */ { 0, &Ia_Invalid },
  /* 60 */ { GRPSSE66(Ia_pcmpestrm_Vdq_Wdq_Ib) },
  /* 61 */ { GRPSSE66(Ia_pcmpestri_Vdq_Wdq_Ib) },
  /* 62 */ { GRPSSE66(Ia_pcmpistrm_Vdq_Wdq_Ib) },
  /* 63 */ { GRPSSE66(Ia_pcmpistri_Vdq_Wdq_Ib) },
  /* 64 */ { 0, &Ia_Invalid },
  /* 65 */ { 0, &Ia_Invalid },
  /* 66 */ { 0, &Ia_Invalid },
  /* 67 */ { 0, &Ia_Invalid },
  /* 68 */ { 0, &Ia_Invalid },
  /* 69 */ { 0, &Ia_Invalid },
  /* 6A */ { 0, &Ia_Invalid },
  /* 6B */ { 0, &Ia_Invalid },
  /* 6C */ { 0, &Ia_Invalid },
  /* 6D */ { 0, &Ia_Invalid },
  /* 6E */ { 0, &Ia_Invalid },
  /* 6F */ { 0, &Ia_Invalid },
  /* 70 */ { 0, &Ia_Invalid },
  /* 71 */ { 0, &Ia_Invalid },
  /* 72 */ { 0, &Ia_Invalid },
  /* 73 */ { 0, &Ia_Invalid },
  /* 74 */ { 0, &Ia_Invalid },
  /* 75 */ { 0, &Ia_Invalid },
  /* 76 */ { 0, &Ia_Invalid },
  /* 77 */ { 0, &Ia_Invalid },
  /* 78 */ { 0, &Ia_Invalid },
  /* 79 */ { 0, &Ia_Invalid },
  /* 7A */ { 0, &Ia_Invalid },
  /* 7B */ { 0, &Ia_Invalid },
  /* 7C */ { 0, &Ia_Invalid },
  /* 7D */ { 0, &Ia_Invalid },
  /* 7E */ { 0, &Ia_Invalid },
  /* 7F */ { 0, &Ia_Invalid },
  /* 80 */ { 0, &Ia_Invalid },
  /* 81 */ { 0, &Ia_Invalid },
  /* 82 */ { 0, &Ia_Invalid },
  /* 83 */ { 0, &Ia_Invalid },
  /* 84 */ { 0, &Ia_Invalid },
  /* 85 */ { 0, &Ia_Invalid },
  /* 86 */ { 0, &Ia_Invalid },
  /* 87 */ { 0, &Ia_Invalid },
  /* 88 */ { 0, &Ia_Invalid },
  /* 89 */ { 0, &Ia_Invalid },
  /* 8A */ { 0, &Ia_Invalid },
  /* 8B */ { 0, &Ia_Invalid },
  /* 8C */ { 0, &Ia_Invalid },
  /* 8D */ { 0, &Ia_Invalid },
  /* 8E */ { 0, &Ia_Invalid },
  /* 8F */ { 0, &Ia_Invalid },
  /* 90 */ { 0, &Ia_Invalid },
  /* 91 */ { 0, &Ia_Invalid },
  /* 92 */ { 0, &Ia_Invalid },
  /* 93 */ { 0, &Ia_Invalid },
  /* 94 */ { 0, &Ia_Invalid },
  /* 95 */ { 0, &Ia_Invalid },
  /* 96 */ { 0, &Ia_Invalid },
  /* 97 */ { 0, &Ia_Invalid },
  /* 98 */ { 0, &Ia_Invalid },
  /* 99 */ { 0, &Ia_Invalid },
  /* 9A */ { 0, &Ia_Invalid },
  /* 9B */ { 0, &Ia_Invalid },
  /* 9C */ { 0, &Ia_Invalid },
  /* 9D */ { 0, &Ia_Invalid },
  /* 9E */ { 0, &Ia_Invalid },
  /* 9F */ { 0, &Ia_Invalid },
  /* A0 */ { 0, &Ia_Invalid },
  /* A1 */ { 0, &Ia_Invalid },
  /* A2 */ { 0, &Ia_Invalid },
  /* A3 */ { 0, &Ia_Invalid },
  /* A4 */ { 0, &Ia_Invalid },
  /* A5 */ { 0, &Ia_Invalid },
  /* A6 */ { 0, &Ia_Invalid },
  /* A7 */ { 0, &Ia_Invalid },
  /* A8 */ { 0, &Ia_Invalid },
  /* A9 */ { 0, &Ia_Invalid },
  /* AA */ { 0, &Ia_Invalid },
  /* AB */ { 0, &Ia_Invalid },
  /* AC */ { 0, &Ia_Invalid },
  /* AD */ { 0, &Ia_Invalid },
  /* AE */ { 0, &Ia_Invalid },
  /* AF */ { 0, &Ia_Invalid },
  /* B0 */ { 0, &Ia_Invalid },
  /* B1 */ { 0, &Ia_Invalid },
  /* B2 */ { 0, &Ia_Invalid },
  /* B3 */ { 0, &Ia_Invalid },
  /* B4 */ { 0, &Ia_Invalid },
  /* B5 */ { 0, &Ia_Invalid },
  /* B6 */ { 0, &Ia_Invalid },
  /* B7 */ { 0, &Ia_Invalid },
  /* B8 */ { 0, &Ia_Invalid },
  /* B9 */ { 0, &Ia_Invalid },
  /* BA */ { 0, &Ia_Invalid },
  /* BB */ { 0, &Ia_Invalid },
  /* BC */ { 0, &Ia_Invalid },
  /* BD */ { 0, &Ia_Invalid },
  /* BE */ { 0, &Ia_Invalid },
  /* BF */ { 0, &Ia_Invalid },
  /* C0 */ { 0, &Ia_Invalid },
  /* C1 */ { 0, &Ia_Invalid },
  /* C2 */ { 0, &Ia_Invalid },
  /* C3 */ { 0, &Ia_Invalid },
  /* C4 */ { 0, &Ia_Invalid },
  /* C5 */ { 0, &Ia_Invalid },
  /* C6 */ { 0, &Ia_Invalid },
  /* C7 */ { 0, &Ia_Invalid },
  /* C8 */ { 0, &Ia_Invalid },
  /* C9 */ { 0, &Ia_Invalid },
  /* CA */ { 0, &Ia_Invalid },
  /* CB */ { 0, &Ia_Invalid },
  /* CC */ { GRPSSENONE(Ia_sha1rnds4_Vdq_Wdq_Ib) },
  /* CD */ { 0, &Ia_Invalid },
  /* CE */ { 0, &Ia_Invalid },
  /* CF */ { 0, &Ia_Invalid },
  /* D0 */ { 0, &Ia_Invalid },
  /* D1 */ { 0, &Ia_Invalid },
  /* D2 */ { 0, &Ia_Invalid },
  /* D3 */ { 0, &Ia_Invalid },
  /* D4 */ { 0, &Ia_Invalid },
  /* D5 */ { 0, &Ia_Invalid },
  /* D6 */ { 0, &Ia_Invalid },
  /* D7 */ { 0, &Ia_Invalid },
  /* D8 */ { 0, &Ia_Invalid },
  /* D9 */ { 0, &Ia_Invalid },
  /* DA */ { 0, &Ia_Invalid },
  /* DB */ { 0, &Ia_Invalid },
  /* DC */ { 0, &Ia_Invalid },
  /* DD */ { 0, &Ia_Invalid },
  /* DE */ { 0, &Ia_Invalid },
  /* DF */ { GRPSSE66(Ia_aeskeygenassist_Vdq_Wdq_Ib) },
  /* E0 */ { 0, &Ia_Invalid },
  /* E1 */ { 0, &Ia_Invalid },
  /* E2 */ { 0, &Ia_Invalid },
  /* E3 */ { 0, &Ia_Invalid },
  /* E4 */ { 0, &Ia_Invalid },
  /* E5 */ { 0, &Ia_Invalid },
  /* E6 */ { 0, &Ia_Invalid },
  /* E7 */ { 0, &Ia_Invalid },
  /* E8 */ { 0, &Ia_Invalid },
  /* E9 */ { 0, &Ia_Invalid },
  /* EA */ { 0, &Ia_Invalid },
  /* EB */ { 0, &Ia_Invalid },
  /* EC */ { 0, &Ia_Invalid },
  /* ED */ { 0, &Ia_Invalid },
  /* EE */ { 0, &Ia_Invalid },
  /* EF */ { 0, &Ia_Invalid },
  /* F0 */ { 0, &Ia_Invalid },
  /* F1 */ { 0, &Ia_Invalid },
  /* F2 */ { 0, &Ia_Invalid },
  /* F3 */ { 0, &Ia_Invalid },
  /* F4 */ { 0, &Ia_Invalid },
  /* F5 */ { 0, &Ia_Invalid },
  /* F6 */ { 0, &Ia_Invalid },
  /* F7 */ { 0, &Ia_Invalid },
  /* F8 */ { 0, &Ia_Invalid },
  /* F9 */ { 0, &Ia_Invalid },
  /* FA */ { 0, &Ia_Invalid },
  /* FB */ { 0, &Ia_Invalid },
  /* FC */ { 0, &Ia_Invalid },
  /* FD */ { 0, &Ia_Invalid },
  /* FE */ { 0, &Ia_Invalid },
  /* FF */ { 0, &Ia_Invalid }
};