/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
//
//   Copyright (c) 2008-2023 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
//
/////////////////////////////////////////////////////////////////////////

/* bx_define_opcode is a macro with the following fields:
 *   - Opcode name
 *   - Opcode execution function (/m form)
 *   - Opcode execution function (/r form)
 *   - x86 ISA extensions that enable this instruction
 *   - source for instruction destination register
 *   - source for instruction src1 register
 *   - source for instruction src2 register
 *   - source for instruction src3 register
 *   - special attributes (PREPARE_SSE, PREPARE_AVX and etc)
 *
 * in case of complex /m form instruction (load+op) /m form execution function
 * directly calls the /r form.
 */

/* Codes for Addressing Method:
 * ---------------------------
 * A  - Direct address. The instruction has no ModR/M byte; the address
 *      of the operand is encoded in the instruction; and no base register,
 *      index register, or scaling factor can be applied.
 * C  - The reg field of the ModR/M byte selects a control register.
 * D  - The reg field of the ModR/M byte selects a debug register.
 * E  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either a general-purpose register or a memory address.
 *      In case of the register operand, the R/M field of the ModR/M byte
 *      selects a general register.
 * F  - Flags Register.
 * G  - The reg field of the ModR/M byte selects a general register.
 * I  - Immediate data. The operand value is encoded in subsequent bytes of
 *      the instruction.
 * J  - The instruction contains a relative offset to be added to the
 *      instruction pointer register.
 * M  - The ModR/M byte may refer only to memory.
 * N  - The R/M field of the ModR/M byte selects a packed-quadword MMX
        technology register.
 * O  - The instruction has no ModR/M byte; the offset of the operand is
 *      coded as a word, double word or quad word (depending on address
 *      size attribute) in the instruction. No base register, index
 *      register, or scaling factor can be applied.
 * P  - The reg field of the ModR/M byte selects a packed quadword MMX
 *      technology register.
 * Q  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either an MMX technology register or a memory address.
 *      If it is a memory address, the address is computed from a segment
 *      register and any of the following values: a base register, an
 *      index register, a scaling factor, and a displacement.
 * R  - The mod field of the ModR/M byte may refer only to a general register.
 * S  - The reg field of the ModR/M byte selects a segment register.
 * U  - The R/M field of the ModR/M byte selects a 128-bit XMM/256-bit YMM register.
 * V  - The reg field of the ModR/M byte selects a 128-bit XMM/256-bit YMM register.
 * W  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either a 128-bit XMM/256-bit YMM register or a memory address.
 *      If it is a memory address, the address is computed from a segment
 *      register and any of the following values: a base register, an
 *      index register, a scaling factor, and a displacement.
 * X  - Memory addressed by the DS:rSI register pair.
 * Y  - Memory addressed by the ES:rDI register pair.
 */

/*
 * Codes for Operand Type:
 * ----------------------
 * b  - Byte, regardless of operand-size attribute.
 * w  - Word, regardless of operand-size attribute.
 * d  - Doubleword, regardless of operand-size attribute.
 * dq - Double-quadword, regardless of operand-size attribute.
 * p  - 32-bit or 48-bit pointer, depending on operand-size attribute.
 * pd - 128-bit/256-bit packed double-precision floating-point data.
 * pi - Quadword MMX technology register (packed integer)
 * ps - 128-bit/256-bit packed single-precision floating-point data.
 * q  - Quadword, regardless of operand-size attribute.
 * s  - 6-byte or 10-byte pseudo-descriptor.
 * si - Doubleword integer register (scalar integer)
 * ss - Scalar element of a packed single-precision floating data.
 * sd - Scalar element of a packed double-precision floating data.
 * v  - Word, doubleword or quadword, depending on operand-size attribute.
 */

bx_define_opcode(BX_IA_ERROR, "error", "error", &BX_CPU_C::BxError, &BX_CPU_C::BxError, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#if BX_SUPPORT_HANDLERS_CHAINING_SPEEDUPS
bx_define_opcode(BX_INSERTED_OPCODE, "error", "error", &BX_CPU_C::BxError, &BX_CPU_C::BxError, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_AAA, "aaa", "aaa", NULL, &BX_CPU_C::AAA, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAD, "aad", "aad", NULL, &BX_CPU_C::AAD, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAM, "aam", "aam", NULL, &BX_CPU_C::AAM, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAS, "aas", "aas", NULL, &BX_CPU_C::AAS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DAA, "daa", "daa", NULL, &BX_CPU_C::DAA, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DAS, "das", "das", NULL, &BX_CPU_C::DAS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_EbGb, "adc", "adcb", &BX_CPU_C::ADC_EbGbM, &BX_CPU_C::ADC_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EbGb, "and", "andb", &BX_CPU_C::AND_EbGbM, &BX_CPU_C::AND_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EbGb, "add", "addb", &BX_CPU_C::ADD_EbGbM, &BX_CPU_C::ADD_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EbGb, "cmp", "cmpb", &BX_CPU_C::CMP_EbGbM, &BX_CPU_C::CMP_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EbGb, "or", "orb", &BX_CPU_C::OR_EbGbM, &BX_CPU_C::OR_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EbGb, "sbb", "sbbb", &BX_CPU_C::SBB_EbGbM, &BX_CPU_C::SBB_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EbGb, "sub", "subb", &BX_CPU_C::SUB_EbGbM, &BX_CPU_C::SUB_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EbGb, "test", "testb", &BX_CPU_C::TEST_EbGbM, &BX_CPU_C::TEST_EbGbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EbGb, "xor", "xorb", &BX_CPU_C::XOR_EbGbM, &BX_CPU_C::XOR_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_EwGw, "adc", "adcw", &BX_CPU_C::ADC_EwGwM, &BX_CPU_C::ADC_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EwGw, "add", "addw", &BX_CPU_C::ADD_EwGwM, &BX_CPU_C::ADD_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwGw, "and", "andw", &BX_CPU_C::AND_EwGwM, &BX_CPU_C::AND_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EwGw, "cmp", "cmpw", &BX_CPU_C::CMP_EwGwM, &BX_CPU_C::CMP_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EwGw, "or", "orw", &BX_CPU_C::OR_EwGwM, &BX_CPU_C::OR_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwGw, "sbb", "sbbw", &BX_CPU_C::SBB_EwGwM, &BX_CPU_C::SBB_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwGw, "sub", "subw", &BX_CPU_C::SUB_EwGwM, &BX_CPU_C::SUB_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwGw, "test", "testw", &BX_CPU_C::TEST_EwGwM, &BX_CPU_C::TEST_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EwGw, "xor", "xorw", &BX_CPU_C::XOR_EwGwM, &BX_CPU_C::XOR_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_EdGd, "adc", "adcl", &BX_CPU_C::ADC_EdGdM, &BX_CPU_C::ADC_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EdGd, "add", "addl", &BX_CPU_C::ADD_EdGdM, &BX_CPU_C::ADD_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdGd, "and", "andl", &BX_CPU_C::AND_EdGdM, &BX_CPU_C::AND_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EdGd, "cmp", "cmpl", &BX_CPU_C::CMP_EdGdM, &BX_CPU_C::CMP_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EdGd, "or", "orl", &BX_CPU_C::OR_EdGdM, &BX_CPU_C::OR_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdGd, "sbb", "sbbl", &BX_CPU_C::SBB_EdGdM, &BX_CPU_C::SBB_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdGd, "sub", "subl", &BX_CPU_C::SUB_EdGdM, &BX_CPU_C::SUB_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdGd, "test", "testl", &BX_CPU_C::TEST_EdGdM, &BX_CPU_C::TEST_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EdGd, "xor", "xorl", &BX_CPU_C::XOR_EdGdM, &BX_CPU_C::XOR_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_ALIb, "adc", "adcb", NULL, &BX_CPU_C::ADC_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_ALIb, "add", "addb", NULL, &BX_CPU_C::ADD_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_ALIb, "and", "andb", NULL, &BX_CPU_C::AND_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_ALIb, "cmp", "cmpb", NULL, &BX_CPU_C::CMP_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_ALIb, "or", "orb", NULL, &BX_CPU_C::OR_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_ALIb, "sbb", "sbbb", NULL, &BX_CPU_C::SBB_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_ALIb, "sub", "subb", NULL, &BX_CPU_C::SUB_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_ALIb, "test", "testb", NULL, &BX_CPU_C::TEST_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_ALIb, "xor", "xorb", NULL, &BX_CPU_C::XOR_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_AXIw, "adc", "adcw", NULL, &BX_CPU_C::ADC_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_AXIw, "add", "addw", NULL, &BX_CPU_C::ADD_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_AXIw, "and", "andw", NULL, &BX_CPU_C::AND_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_AXIw, "cmp", "cmpw", NULL, &BX_CPU_C::CMP_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_AXIw, "or", "orw", NULL, &BX_CPU_C::OR_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_AXIw, "sbb", "sbbw", NULL, &BX_CPU_C::SBB_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_AXIw, "sub", "subw", NULL, &BX_CPU_C::SUB_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_AXIw, "test", "testw", NULL, &BX_CPU_C::TEST_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_AXIw, "xor", "xorw", NULL, &BX_CPU_C::XOR_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_EAXId, "adc", "adcl", NULL, &BX_CPU_C::ADC_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_EAXId, "add", "addl", NULL, &BX_CPU_C::ADD_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_EAXId, "and", "andl", NULL, &BX_CPU_C::AND_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EAXId, "cmp", "cmpl", NULL, &BX_CPU_C::CMP_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EAXId, "or", "orl", NULL, &BX_CPU_C::OR_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_EAXId, "sbb", "sbbl", NULL, &BX_CPU_C::SBB_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EAXId, "sub", "subl", NULL, &BX_CPU_C::SUB_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_EAXId, "test", "testl", NULL, &BX_CPU_C::TEST_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EAXId, "xor", "xorl", NULL, &BX_CPU_C::XOR_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EbIb, "add", "addb", &BX_CPU_C::ADD_EbIbM, &BX_CPU_C::ADD_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EbIb, "or", "orb", &BX_CPU_C::OR_EbIbM, &BX_CPU_C::OR_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EbIb, "adc", "adcb", &BX_CPU_C::ADC_EbIbM, &BX_CPU_C::ADC_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EbIb, "sbb", "sbbb", &BX_CPU_C::SBB_EbIbM, &BX_CPU_C::SBB_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EbIb, "and", "andb", &BX_CPU_C::AND_EbIbM, &BX_CPU_C::AND_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EbIb, "sub", "subb", &BX_CPU_C::SUB_EbIbM, &BX_CPU_C::SUB_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EbIb, "xor", "xorb", &BX_CPU_C::XOR_EbIbM, &BX_CPU_C::XOR_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EbIb, "test", "testb", &BX_CPU_C::TEST_EbIbM, &BX_CPU_C::TEST_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EbIb, "cmp", "cmpb", &BX_CPU_C::CMP_EbIbM, &BX_CPU_C::CMP_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EwIw, "add", "addw", &BX_CPU_C::ADD_EwIwM, &BX_CPU_C::ADD_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EwIw, "or", "orw", &BX_CPU_C::OR_EwIwM, &BX_CPU_C::OR_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EwIw, "adc", "adcw", &BX_CPU_C::ADC_EwIwM, &BX_CPU_C::ADC_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwIw, "sbb", "sbbw", &BX_CPU_C::SBB_EwIwM, &BX_CPU_C::SBB_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwIw, "and", "andw", &BX_CPU_C::AND_EwIwM, &BX_CPU_C::AND_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwIw, "sub", "subw", &BX_CPU_C::SUB_EwIwM, &BX_CPU_C::SUB_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EwIw, "xor", "xorw", &BX_CPU_C::XOR_EwIwM, &BX_CPU_C::XOR_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwIw, "test", "testw", &BX_CPU_C::TEST_EwIwM, &BX_CPU_C::TEST_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EwIw, "cmp", "cmpw", &BX_CPU_C::CMP_EwIwM, &BX_CPU_C::CMP_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EwsIb, "add", "addw", &BX_CPU_C::ADD_EwIwM, &BX_CPU_C::ADD_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EwsIb, "or", "orw", &BX_CPU_C::OR_EwIwM, &BX_CPU_C::OR_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EwsIb, "adc", "adcw", &BX_CPU_C::ADC_EwIwM, &BX_CPU_C::ADC_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwsIb, "sbb", "sbbw", &BX_CPU_C::SBB_EwIwM, &BX_CPU_C::SBB_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwsIb, "and", "andw", &BX_CPU_C::AND_EwIwM, &BX_CPU_C::AND_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwsIb, "sub", "subw", &BX_CPU_C::SUB_EwIwM, &BX_CPU_C::SUB_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EwsIb, "xor", "xorw", &BX_CPU_C::XOR_EwIwM, &BX_CPU_C::XOR_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwsIb, "test", "testw", &BX_CPU_C::TEST_EwIwM, &BX_CPU_C::TEST_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EwsIb, "cmp", "cmpw", &BX_CPU_C::CMP_EwIwM, &BX_CPU_C::CMP_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EdId, "add", "addl", &BX_CPU_C::ADD_EdIdM, &BX_CPU_C::ADD_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EdId, "or", "orl", &BX_CPU_C::OR_EdIdM, &BX_CPU_C::OR_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EdId, "adc", "adcl", &BX_CPU_C::ADC_EdIdM, &BX_CPU_C::ADC_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdId, "sbb", "sbbl", &BX_CPU_C::SBB_EdIdM, &BX_CPU_C::SBB_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdId, "and", "andl", &BX_CPU_C::AND_EdIdM, &BX_CPU_C::AND_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdId, "sub", "subl", &BX_CPU_C::SUB_EdIdM, &BX_CPU_C::SUB_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EdId, "xor", "xorl", &BX_CPU_C::XOR_EdIdM, &BX_CPU_C::XOR_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdId, "test", "testl", &BX_CPU_C::TEST_EdIdM, &BX_CPU_C::TEST_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EdId, "cmp", "cmpl", &BX_CPU_C::CMP_EdIdM, &BX_CPU_C::CMP_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EdsIb, "add", "addl", &BX_CPU_C::ADD_EdIdM, &BX_CPU_C::ADD_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EdsIb, "or", "orl", &BX_CPU_C::OR_EdIdM, &BX_CPU_C::OR_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EdsIb, "adc", "adcl", &BX_CPU_C::ADC_EdIdM, &BX_CPU_C::ADC_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdsIb, "sbb", "sbbl", &BX_CPU_C::SBB_EdIdM, &BX_CPU_C::SBB_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdsIb, "and", "andl", &BX_CPU_C::AND_EdIdM, &BX_CPU_C::AND_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdsIb, "sub", "subl", &BX_CPU_C::SUB_EdIdM, &BX_CPU_C::SUB_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EdsIb, "xor", "xorl", &BX_CPU_C::XOR_EdIdM, &BX_CPU_C::XOR_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdsIb, "test", "testl", &BX_CPU_C::TEST_EdIdM, &BX_CPU_C::TEST_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EdsIb, "cmp", "cmpl", &BX_CPU_C::CMP_EdIdM, &BX_CPU_C::CMP_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XOR_EwGw_ZERO_IDIOM, "xor", "xorw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GwEw_ZERO_IDIOM, "xor", "xorw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EdGd_ZERO_IDIOM, "xor", "xorl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GdEd_ZERO_IDIOM, "xor", "xorl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EwGw_ZERO_IDIOM, "sub", "subw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GwEw_ZERO_IDIOM, "sub", "subw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EdGd_ZERO_IDIOM, "sub", "subl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GdEd_ZERO_IDIOM, "sub", "subl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_GbEb, "add", "addb", &BX_CPU_C::ADD_GbEbM, &BX_CPU_C::ADD_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GbEb, "or", "orb", &BX_CPU_C::OR_GbEbM, &BX_CPU_C::OR_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_GbEb, "adc", "adcb", &BX_CPU_C::ADC_GbEbM, &BX_CPU_C::ADC_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GbEb, "sbb", "sbbb", &BX_CPU_C::SBB_GbEbM, &BX_CPU_C::SBB_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GbEb, "and", "andb", &BX_CPU_C::AND_GbEbM, &BX_CPU_C::AND_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GbEb, "sub", "subb", &BX_CPU_C::SUB_GbEbM, &BX_CPU_C::SUB_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GbEb, "xor", "xorb", &BX_CPU_C::XOR_GbEbM, &BX_CPU_C::XOR_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GbEb, "cmp", "cmpb", &BX_CPU_C::CMP_GbEbM, &BX_CPU_C::CMP_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_GwEw, "adc", "adcw", &BX_CPU_C::ADC_GwEwM, &BX_CPU_C::ADC_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_GwEw, "add", "addw", &BX_CPU_C::ADD_GwEwM, &BX_CPU_C::ADD_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GwEw, "and", "andw", &BX_CPU_C::AND_GwEwM, &BX_CPU_C::AND_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GwEw, "cmp", "cmpw", &BX_CPU_C::CMP_GwEwM, &BX_CPU_C::CMP_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GwEw, "or", "orw", &BX_CPU_C::OR_GwEwM, &BX_CPU_C::OR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GwEw, "sbb", "sbbw", &BX_CPU_C::SBB_GwEwM, &BX_CPU_C::SBB_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GwEw, "sub", "subw", &BX_CPU_C::SUB_GwEwM, &BX_CPU_C::SUB_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GwEw, "xor", "xorw", &BX_CPU_C::XOR_GwEwM, &BX_CPU_C::XOR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_GdEd, "adc", "adcl", &BX_CPU_C::ADC_GdEdM, &BX_CPU_C::ADC_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_GdEd, "add", "addl", &BX_CPU_C::ADD_GdEdM, &BX_CPU_C::ADD_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GdEd, "and", "andl", &BX_CPU_C::AND_GdEdM, &BX_CPU_C::AND_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GdEd, "cmp", "cmpl", &BX_CPU_C::CMP_GdEdM, &BX_CPU_C::CMP_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GdEd, "or", "orl", &BX_CPU_C::OR_GdEdM, &BX_CPU_C::OR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GdEd, "sbb", "sbbl", &BX_CPU_C::SBB_GdEdM, &BX_CPU_C::SBB_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GdEd, "sub", "subl", &BX_CPU_C::SUB_GdEdM, &BX_CPU_C::SUB_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GdEd, "xor", "xorl", &BX_CPU_C::XOR_GdEdM, &BX_CPU_C::XOR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_INC_Eb, "inc", "incb", &BX_CPU_C::INC_EbM, &BX_CPU_C::INC_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INC_Ew, "inc", "incw", &BX_CPU_C::INC_EwM, &BX_CPU_C::INC_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INC_Ed, "inc", "incl", &BX_CPU_C::INC_EdM, &BX_CPU_C::INC_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_DEC_Eb, "dec", "decb", &BX_CPU_C::DEC_EbM, &BX_CPU_C::DEC_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Ew, "dec", "decw", &BX_CPU_C::DEC_EwM, &BX_CPU_C::DEC_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Ed, "dec", "decl", &BX_CPU_C::DEC_EdM, &BX_CPU_C::DEC_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BSF_GwEw, "bsf", "bsfw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSF_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GwEw, "bsr", "bsrw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSF_GdEd, "bsf", "bsfl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSF_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GdEd, "bsr", "bsrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BTC_EwGw, "btc", "btcw", &BX_CPU_C::BTC_EwGwM, &BX_CPU_C::BTC_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EwGw, "btr", "btrw", &BX_CPU_C::BTR_EwGwM, &BX_CPU_C::BTR_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EwGw, "bts", "btsw", &BX_CPU_C::BTS_EwGwM, &BX_CPU_C::BTS_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EdGd, "btc", "btcl", &BX_CPU_C::BTC_EdGdM, &BX_CPU_C::BTC_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EdGd, "btr", "btrl", &BX_CPU_C::BTR_EdGdM, &BX_CPU_C::BTR_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EdGd, "bts", "btsl", &BX_CPU_C::BTS_EdGdM, &BX_CPU_C::BTS_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EwIb, "btc", "btcw", &BX_CPU_C::BTC_EwIbM, &BX_CPU_C::BTC_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EwIb, "btr", "btrw", &BX_CPU_C::BTR_EwIbM, &BX_CPU_C::BTR_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EwIb, "bts", "btsw", &BX_CPU_C::BTS_EwIbM, &BX_CPU_C::BTS_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EdIb, "btc", "btcl", &BX_CPU_C::BTC_EdIbM, &BX_CPU_C::BTC_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EdIb, "btr", "btrl", &BX_CPU_C::BTR_EdIbM, &BX_CPU_C::BTR_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EdIb, "bts", "btsl", &BX_CPU_C::BTS_EdIbM, &BX_CPU_C::BTS_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BT_EwIb, "bt", "btw", &BX_CPU_C::BT_EwIbM, &BX_CPU_C::BT_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EdIb, "bt", "btl", &BX_CPU_C::BT_EdIbM, &BX_CPU_C::BT_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EwGw, "bt", "btw", &BX_CPU_C::BT_EwGwM, &BX_CPU_C::BT_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EdGd, "bt", "btl", &BX_CPU_C::BT_EdGdM, &BX_CPU_C::BT_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BOUND_GwMa, "bound", "boundw", &BX_CPU_C::BOUND_GwMa, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BOUND_GdMa, "bound", "boundl", &BX_CPU_C::BOUND_GdMa, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ARPL_EwGw, "arpl", "arpl", &BX_CPU_C::ARPL_EwGw, &BX_CPU_C::ARPL_EwGw, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CALL_Ed, "call", "call", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Ew, "call", "call", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CALL_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Jd, "call", "call", NULL, &BX_CPU_C::CALL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Jw, "call", "call", NULL, &BX_CPU_C::CALL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op16_Ap, "callf", "lcall", NULL, &BX_CPU_C::CALL16_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op32_Ap, "callf", "lcall", NULL, &BX_CPU_C::CALL32_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op16_Ep, "callf", "lcall", &BX_CPU_C::CALL16_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op32_Ep, "callf", "lcall", &BX_CPU_C::CALL32_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CBW, "cbw", "cbtw", NULL, &BX_CPU_C::CBW, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CDQ, "cdq", "cltd", NULL, &BX_CPU_C::CDQ, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CWD, "cwd", "cwtd", NULL, &BX_CPU_C::CWD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CWDE, "cwde", "cwtl", NULL, &BX_CPU_C::CWDE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CLC, "clc", "clc", NULL, &BX_CPU_C::CLC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLD, "cld", "cld", NULL, &BX_CPU_C::CLD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLI, "cli", "cli", NULL, &BX_CPU_C::CLI, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLTS, "clts", "clts", NULL, &BX_CPU_C::CLTS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CMC, "cmc", "cmc", NULL, &BX_CPU_C::CMC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_HLT, "hlt", "hlt", NULL, &BX_CPU_C::HLT, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CLFLUSH, "clflush", "clflush", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLFLUSH, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLFLUSHOPT, "clflushopt", "clflushopt", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLFLUSHOPT, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLWB, "clwb", "clwb", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLWB, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLDEMOTE, "cldemote", "cldemote", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLDEMOTE, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLZERO, "clzero", "clzero", &BX_CPU_C::BxError, &BX_CPU_C::CLZERO, BX_ISA_CLZERO, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ENTER_Op16_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER16_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENTER_Op32_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER32_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op16, "leave", "leave", NULL, &BX_CPU_C::LEAVE16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op32, "leave", "leave", NULL, &BX_CPU_C::LEAVE32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_IMUL_GdEd, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GdEdId, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR, 0, OP_Gd, OP_Ed, OP_Id, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GdEdsIb, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR, 0, OP_Gd, OP_Ed, OP_sIbd, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEwIw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR, 0, OP_Gw, OP_Ew, OP_Iw, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEwsIb, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR, 0, OP_Gw, OP_Ew, OP_sIbw, OP_NONE, 0)

bx_define_opcode(BX_IA_IN_ALDX, "in", "inb", NULL, &BX_CPU_C::IN_ALDX, 0, OP_ALReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_ALIb, "in", "inb", NULL, &BX_CPU_C::IN_ALIb, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_AXDX, "in", "inw", NULL, &BX_CPU_C::IN_AXDX, 0, OP_AXReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_AXIb, "in", "inw", NULL, &BX_CPU_C::IN_AXIb, 0, OP_AXReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_EAXDX, "in", "inl", NULL, &BX_CPU_C::IN_EAXDX, 0, OP_EAXReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_EAXIb, "in", "inl", NULL, &BX_CPU_C::IN_EAXIb, 0, OP_EAXReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_OUT_DXAL, "out", "outb", NULL, &BX_CPU_C::OUT_DXAL, 0, OP_DXReg, OP_ALReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_DXAX, "out", "outw", NULL, &BX_CPU_C::OUT_DXAX, 0, OP_DXReg, OP_AXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_DXEAX, "out", "outl", NULL, &BX_CPU_C::OUT_DXEAX, 0, OP_DXReg, OP_EAXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbAL, "out", "outb", NULL, &BX_CPU_C::OUT_IbAL, 0, OP_Ib, OP_ALReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbAX, "out", "outw", NULL, &BX_CPU_C::OUT_IbAX, 0, OP_Ib, OP_AXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbEAX, "out", "outl", NULL, &BX_CPU_C::OUT_IbEAX, 0, OP_Ib, OP_EAXReg, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_INT_Ib, "int", "int", NULL, &BX_CPU_C::INT_Ib, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INT1, "int1", "int1", NULL, &BX_CPU_C::INT1, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INT3, "int3", "int3", NULL, &BX_CPU_C::INT3, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INTO, "into", "into", NULL, &BX_CPU_C::INTO, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IRET_Op16, "iret", "iretw", NULL, &BX_CPU_C::IRET16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IRET_Op32, "iret", "iretd", NULL, &BX_CPU_C::IRET32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JMP_Ed, "jmp", "jmp", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::JMP_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Ew, "jmp", "jmp", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::JMP_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jw, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbw, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jd, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbd, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JMPF_Ap, "jmpf", "ljmp", NULL, &BX_CPU_C::JMP_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op16_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP16_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op32_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP32_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JCXZ_Jbw, "jcxz", "jcxz", NULL, &BX_CPU_C::JCXZ_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JECXZ_Jbd, "jecxz", "jecxz", NULL, &BX_CPU_C::JECXZ_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbw, "loop", "loop", NULL, &BX_CPU_C::LOOP16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbw, "loope", "loope", NULL, &BX_CPU_C::LOOPE16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPNE_Jbw, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbd, "loop", "loop", NULL, &BX_CPU_C::LOOP32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbd, "loope", "loope", NULL, &BX_CPU_C::LOOPE32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPNE_Jbd, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JB_Jw, "jb", "jb", NULL, &BX_CPU_C::JB_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jw, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jw, "jl", "jl", NULL, &BX_CPU_C::JL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jw, "jle", "jle", NULL, &BX_CPU_C::JLE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jw, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jw, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jw, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jw, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jw, "jno", "jno", NULL, &BX_CPU_C::JNO_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jw, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jw, "jns", "jns", NULL, &BX_CPU_C::JNS_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jw, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jw, "jo", "jo", NULL, &BX_CPU_C::JO_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jw, "jp", "jp", NULL, &BX_CPU_C::JP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jw, "js", "js", NULL, &BX_CPU_C::JS_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jw, "jz", "jz", NULL, &BX_CPU_C::JZ_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jbw, "jb", "jb", NULL, &BX_CPU_C::JB_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbw, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbw, "jl", "jl", NULL, &BX_CPU_C::JL_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbw, "jle", "jle", NULL, &BX_CPU_C::JLE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbw, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbw, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbw, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbw, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbw, "jno", "jno", NULL, &BX_CPU_C::JNO_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbw, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbw, "jns", "jns", NULL, &BX_CPU_C::JNS_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbw, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jbw, "jo", "jo", NULL, &BX_CPU_C::JO_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbw, "jp", "jp", NULL, &BX_CPU_C::JP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbw, "js", "js", NULL, &BX_CPU_C::JS_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbw, "jz", "jz", NULL, &BX_CPU_C::JZ_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jd, "jb", "jb", NULL, &BX_CPU_C::JB_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jd, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jd, "jl", "jl", NULL, &BX_CPU_C::JL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jd, "jle", "jle", NULL, &BX_CPU_C::JLE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jd, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jd, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jd, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jd, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jd, "jno", "jno", NULL, &BX_CPU_C::JNO_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jd, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jd, "jns", "jns", NULL, &BX_CPU_C::JNS_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jd, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jd, "jo", "jo", NULL, &BX_CPU_C::JO_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jd, "jp", "jp", NULL, &BX_CPU_C::JP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jd, "js", "js", NULL, &BX_CPU_C::JS_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jd, "jz", "jz", NULL, &BX_CPU_C::JZ_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jbd, "jb", "jb", NULL, &BX_CPU_C::JB_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbd, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbd, "jl", "jl", NULL, &BX_CPU_C::JL_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbd, "jle", "jle", NULL, &BX_CPU_C::JLE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbd, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbd, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbd, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbd, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbd, "jno", "jno", NULL, &BX_CPU_C::JNO_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbd, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbd, "jns", "jns", NULL, &BX_CPU_C::JNS_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbd, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jbd, "jo", "jo", NULL, &BX_CPU_C::JO_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbd, "jp", "jp", NULL, &BX_CPU_C::JP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbd, "js", "js", NULL, &BX_CPU_C::JS_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbd, "jz", "jz", NULL, &BX_CPU_C::JZ_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SAHF, "sahf", "sahf", NULL, &BX_CPU_C::SAHF, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LAHF, "lahf", "lahf", NULL, &BX_CPU_C::LAHF, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LDS_GdMp, "lds", "ldsl", &BX_CPU_C::LDS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LDS_GwMp, "lds", "ldsw", &BX_CPU_C::LDS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LES_GdMp, "les", "lesl", &BX_CPU_C::LES_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LES_GwMp, "les", "lesw", &BX_CPU_C::LES_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GdMp, "lfs", "lfsl", &BX_CPU_C::LFS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GwMp, "lfs", "lfsw", &BX_CPU_C::LFS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSS_GdMp, "lss", "lssl", &BX_CPU_C::LSS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSS_GwMp, "lss", "lssw", &BX_CPU_C::LSS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GdMp, "lgs", "lgsl", &BX_CPU_C::LGS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GwMp, "lgs", "lgsw", &BX_CPU_C::LGS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LAR_GwEw, "lar", "larw", &BX_CPU_C::LAR_GvEw, &BX_CPU_C::LAR_GvEw, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSL_GwEw, "lsl", "lslw", &BX_CPU_C::LSL_GvEw, &BX_CPU_C::LSL_GvEw, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LAR_GdEw, "lar", "larl", &BX_CPU_C::LAR_GvEw, &BX_CPU_C::LAR_GvEw, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSL_GdEw, "lsl", "lsll", &BX_CPU_C::LSL_GvEw, &BX_CPU_C::LSL_GvEw, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GdM, "lea", "leal", &BX_CPU_C::LEA_GdM, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GwM, "lea", "leaw", &BX_CPU_C::LEA_GwM, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)

// IDT/GDT/LDTR/TR access - keep NNN for VMX
bx_define_opcode(BX_IA_SIDT_Ms, "sidt", "sidt", &BX_CPU_C::SIDT_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LIDT_Ms, "lidt", "lidt", &BX_CPU_C::LIDT_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SGDT_Ms, "sgdt", "sgdt", &BX_CPU_C::SGDT_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGDT_Ms, "lgdt", "lgdt", &BX_CPU_C::LGDT_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SLDT_Ew, "sldt", "sldt", &BX_CPU_C::SLDT_Ew, &BX_CPU_C::SLDT_Ew, 0, OP_Ew, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LLDT_Ew, "lldt", "lldt", &BX_CPU_C::LLDT_Ew, &BX_CPU_C::LLDT_Ew, 0, BX_SRC_NNN, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STR_Ew, "str", "str", &BX_CPU_C::STR_Ew, &BX_CPU_C::STR_Ew, 0, OP_Ew, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LTR_Ew, "ltr", "ltr", &BX_CPU_C::LTR_Ew, &BX_CPU_C::LTR_Ew, 0, BX_SRC_NNN, OP_Ew, OP_NONE, OP_NONE, 0)
// IDT/GDT/LDTR/TR access - keep NNN for VMX

bx_define_opcode(BX_IA_SMSW_Ew, "smsw", "smsw", &BX_CPU_C::SMSW_EwM, &BX_CPU_C::SMSW_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LMSW_Ew, "lmsw", "lmsw", &BX_CPU_C::LMSW_Ew, &BX_CPU_C::LMSW_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR0Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR0Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR2Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR2Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR3Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR3Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR4Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR4Rd, BX_ISA_PENTIUM, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RdCR0, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR0, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR2, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR2, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR3, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR3, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR4, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR4, BX_ISA_PENTIUM, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdDd, "mov", "movl", NULL, &BX_CPU_C::MOV_RdDd, 0, OP_Ed, OP_Dd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_DdRd, "mov", "movl", NULL, &BX_CPU_C::MOV_DdRd, 0, OP_Dd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MOV_EbIb, "mov", "movb", &BX_CPU_C::MOV_EbIbM, &BX_CPU_C::MOV_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EdId, "mov", "movl", &BX_CPU_C::MOV_EdIdM, &BX_CPU_C::MOV_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwIw, "mov", "movw", &BX_CPU_C::MOV_EwIwM, &BX_CPU_C::MOV_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GbEb, "mov", "movb", &BX_CPU_C::MOV_GbEbM, &BX_CPU_C::MOV_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EbGb, "mov", "movb", &BX_CPU_C::MOV_EbGbM, &BX_CPU_C::MOV_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GwEw, "mov", "movw", &BX_CPU_C::MOV_GwEwM, &BX_CPU_C::MOV_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwGw, "mov", "movw", &BX_CPU_C::MOV_EwGwM, &BX_CPU_C::MOV_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op32_GdEd, "mov", "movl", &BX_CPU_C::MOV32_GdEdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op32_EdGd, "mov", "movl", &BX_CPU_C::MOV32_EdGdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwSw, "mov", "movw", &BX_CPU_C::MOV_EwSwM, &BX_CPU_C::MOV_EwSwR, 0, OP_Ew, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_SwEw, "mov", "movw", &BX_CPU_C::MOV_SwEw, &BX_CPU_C::MOV_SwEw, 0, OP_Sw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOV_ALOd, "mov", "movb", NULL, &BX_CPU_C::MOV_ALOd, 0, OP_ALReg, OP_Ob, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_AXOd, "mov", "movw", NULL, &BX_CPU_C::MOV_AXOd, 0, OP_AXReg, OP_Ow, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EAXOd, "mov", "movl", NULL, &BX_CPU_C::MOV_EAXOd, 0, OP_EAXReg, OP_Od, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdAL, "mov", "movb", NULL, &BX_CPU_C::MOV_OdAL, 0, OP_Ob, OP_ALReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdAX, "mov", "movw", NULL, &BX_CPU_C::MOV_OdAX, 0, OP_Ow, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdEAX, "mov", "movl", NULL, &BX_CPU_C::MOV_OdEAX, 0, OP_Od, OP_EAXReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOVSX_GdEb, "movsx", "movbl", &BX_CPU_C::MOVSX_GdEbM, &BX_CPU_C::MOVSX_GdEbR, 0, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GdEw, "movsx", "movwl", &BX_CPU_C::MOVSX_GdEwM, &BX_CPU_C::MOVSX_GdEwR, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GwEb, "movsx", "movbw", &BX_CPU_C::MOVSX_GwEbM, &BX_CPU_C::MOVSX_GwEbR, 0, OP_Gw, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GdEb, "movzx", "movbl", &BX_CPU_C::MOVZX_GdEbM, &BX_CPU_C::MOVZX_GdEbR, 0, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GdEw, "movzx", "movwl", &BX_CPU_C::MOVZX_GdEwM, &BX_CPU_C::MOVZX_GdEwR, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GwEb, "movzx", "movbw", &BX_CPU_C::MOVZX_GwEbM, &BX_CPU_C::MOVZX_GwEbR, 0, OP_Gw, OP_Eb, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_NOP, "nop", "nop", &BX_CPU_C::NOP, &BX_CPU_C::NOP, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PAUSE, "pause", "pause", NULL, &BX_CPU_C::PAUSE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_POP_Ew, "pop", "popw", &BX_CPU_C::POP_EwM, &BX_CPU_C::POP_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Ed, "pop", "popl", &BX_CPU_C::POP_EdM, &BX_CPU_C::POP_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_POP_Op16_Sw, "pop", "popw", NULL, &BX_CPU_C::POP16_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Op32_Sw, "pop", "popl", NULL, &BX_CPU_C::POP32_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPA_Op16, "popa", "popaw", NULL, &BX_CPU_C::POPA16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPA_Op32, "popa", "popal", NULL, &BX_CPU_C::POPA32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPF_Fw, "popf", "popfw", NULL, &BX_CPU_C::POPF_Fw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_POPF_Fd, "popf", "popfl", NULL, &BX_CPU_C::POPF_Fd, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_PUSH_Ew, "push", "pushw", &BX_CPU_C::PUSH_EwM, &BX_CPU_C::PUSH_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Ed, "push", "pushl", &BX_CPU_C::PUSH_EdM, &BX_CPU_C::PUSH_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_PUSH_Id, "push", "pushl", NULL, &BX_CPU_C::PUSH_Id, 0, OP_Id, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_sIb32, "push", "pushl", NULL, &BX_CPU_C::PUSH_Id, 0, OP_sIbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Iw, "push", "pushw", NULL, &BX_CPU_C::PUSH_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_sIb16, "push", "pushw", NULL, &BX_CPU_C::PUSH_Iw, 0, OP_sIbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op16_Sw, "push", "pushw", NULL, &BX_CPU_C::PUSH16_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op32_Sw, "push", "pushl", NULL, &BX_CPU_C::PUSH32_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHA_Op16, "pusha", "pushaw", NULL, &BX_CPU_C::PUSHA16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHA_Op32, "pusha", "pushal", NULL, &BX_CPU_C::PUSHA32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHF_Fw, "pushf", "pushfw", NULL, &BX_CPU_C::PUSHF_Fw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHF_Fd, "pushf", "pushfl", NULL, &BX_CPU_C::PUSHF_Fd, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_REP_CMPSB_XbYb, "cmpsb", "cmpsb", NULL, &BX_CPU_C::REP_CMPSB_XbYb, 0, OP_Xb, OP_Yb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSD_XdYd, "cmpsd", "cmpsl", NULL, &BX_CPU_C::REP_CMPSD_XdYd, 0, OP_Xd, OP_Yd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSW_XwYw, "cmpsw", "cmpsw", NULL, &BX_CPU_C::REP_CMPSW_XwYw, 0, OP_Xw, OP_Yw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_INSB_YbDX, "insb", "insb", NULL, &BX_CPU_C::REP_INSB_YbDX, 0, OP_Yb, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_INSD_YdDX, "insd", "insl", NULL, &BX_CPU_C::REP_INSD_YdDX, 0, OP_Yd, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_INSW_YwDX, "insw", "insw", NULL, &BX_CPU_C::REP_INSW_YwDX, 0, OP_Yw, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_LODSB_ALXb, "lodsb", "lodsb", NULL, &BX_CPU_C::REP_LODSB_ALXb, 0, OP_ALReg, OP_Xb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSD_EAXXd, "lodsd", "lodsl", NULL, &BX_CPU_C::REP_LODSD_EAXXd, 0, OP_EAXReg, OP_Xd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSW_AXXw, "lodsw", "lodsw", NULL, &BX_CPU_C::REP_LODSW_AXXw, 0, OP_AXReg, OP_Xw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSB_YbXb, "movsb", "movsb", NULL, &BX_CPU_C::REP_MOVSB_YbXb, 0, OP_Yb, OP_Xb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSD_YdXd, "movsd", "movsl", NULL, &BX_CPU_C::REP_MOVSD_YdXd, 0, OP_Yd, OP_Xd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSW_YwXw, "movsw", "movsw", NULL, &BX_CPU_C::REP_MOVSW_YwXw, 0, OP_Yw, OP_Xw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_OUTSB_DXXb, "outsb", "outsb", NULL, &BX_CPU_C::REP_OUTSB_DXXb, 0, OP_DXReg, OP_Xb, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_OUTSD_DXXd, "outsd", "outsl", NULL, &BX_CPU_C::REP_OUTSD_DXXd, 0, OP_DXReg, OP_Xd, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_OUTSW_DXXw, "outsw", "outsw", NULL, &BX_CPU_C::REP_OUTSW_DXXw, 0, OP_DXReg, OP_Xw, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_SCASB_ALYb, "scasb", "scasb", NULL, &BX_CPU_C::REP_SCASB_ALYb, 0, OP_ALReg, OP_Yb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASD_EAXYd, "scasd", "scasl", NULL, &BX_CPU_C::REP_SCASD_EAXYd, 0, OP_EAXReg, OP_Yd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASW_AXYw, "scasw", "scasw", NULL, &BX_CPU_C::REP_SCASW_AXYw, 0, OP_AXReg, OP_Yw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSB_YbAL, "stosb", "stosb", NULL, &BX_CPU_C::REP_STOSB_YbAL, 0, OP_Yb, OP_ALReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSD_YdEAX, "stosd", "stosl", NULL, &BX_CPU_C::REP_STOSD_YdEAX, 0, OP_Yd, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSW_YwAX, "stosw", "stosw", NULL, &BX_CPU_C::REP_STOSW_YwAX, 0, OP_Yw, OP_AXReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_RETF_Op16, "retf", "lretw", NULL, &BX_CPU_C::RETfar16_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op16_Iw, "retf", "lretw", NULL, &BX_CPU_C::RETfar16_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op32, "retf", "lretl", NULL, &BX_CPU_C::RETfar32_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op32_Iw, "retf", "lretl", NULL, &BX_CPU_C::RETfar32_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_RET_Op16, "ret", "ret", NULL, &BX_CPU_C::RETnear16_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op16_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear16_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op32, "ret", "ret", NULL, &BX_CPU_C::RETnear32_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op32_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear32_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_NOT_Eb, "not", "notb", &BX_CPU_C::NOT_EbM, &BX_CPU_C::NOT_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Eb, "neg", "negb", &BX_CPU_C::NEG_EbM, &BX_CPU_C::NEG_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NOT_Ew, "not", "notb", &BX_CPU_C::NOT_EwM, &BX_CPU_C::NOT_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Ew, "neg", "negb", &BX_CPU_C::NEG_EwM, &BX_CPU_C::NEG_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NOT_Ed, "not", "notb", &BX_CPU_C::NOT_EdM, &BX_CPU_C::NOT_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Ed, "neg", "negb", &BX_CPU_C::NEG_EdM, &BX_CPU_C::NEG_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ROL_Eb, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Eb, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Eb, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Eb, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Eb, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Eb, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Eb, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_Ew, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Ew, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Ew, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Ew, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Ew, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Ew, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Ew, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_Ed, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Ed, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Ed, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Ed, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Ed, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Ed, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Ed, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EbIb, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EbIb, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EbIb, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EbIb, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EbIb, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EbIb, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EbIb, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EwIb, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EwIb, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EwIb, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EwIb, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EwIb, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EwIb, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EwIb, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EdIb, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EdIb, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EdIb, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EdIb, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EdIb, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EdIb, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EdIb, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EbI1, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EbI1, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EbI1, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EbI1, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EbI1, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EbI1, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EbI1, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EwI1, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EwI1, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EwI1, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EwI1, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EwI1, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EwI1, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EwI1, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EdI1, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EdI1, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EdI1, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EdI1, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EdI1, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EdI1, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EdI1, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SETB_Eb, "setb", "setb", &BX_CPU_C::SETB_EbM, &BX_CPU_C::SETB_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETBE_Eb, "setbe", "setbe", &BX_CPU_C::SETBE_EbM, &BX_CPU_C::SETBE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETL_Eb, "setl", "setl", &BX_CPU_C::SETL_EbM, &BX_CPU_C::SETL_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETLE_Eb, "setle", "setle", &BX_CPU_C::SETLE_EbM, &BX_CPU_C::SETLE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNB_Eb, "setnb", "setnb", &BX_CPU_C::SETNB_EbM, &BX_CPU_C::SETNB_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNBE_Eb, "setnbe", "setnbe", &BX_CPU_C::SETNBE_EbM, &BX_CPU_C::SETNBE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNL_Eb, "setnl", "setnl", &BX_CPU_C::SETNL_EbM, &BX_CPU_C::SETNL_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNLE_Eb, "setnle", "setnle", &BX_CPU_C::SETNLE_EbM, &BX_CPU_C::SETNLE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNO_Eb, "setno", "setno", &BX_CPU_C::SETNO_EbM, &BX_CPU_C::SETNO_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNP_Eb, "setnp", "setnp", &BX_CPU_C::SETNP_EbM, &BX_CPU_C::SETNP_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNS_Eb, "setns", "setns", &BX_CPU_C::SETNS_EbM, &BX_CPU_C::SETNS_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNZ_Eb, "setnz", "setnz", &BX_CPU_C::SETNZ_EbM, &BX_CPU_C::SETNZ_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETO_Eb, "seto", "seto", &BX_CPU_C::SETO_EbM, &BX_CPU_C::SETO_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETP_Eb, "setp", "setp", &BX_CPU_C::SETP_EbM, &BX_CPU_C::SETP_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETS_Eb, "sets", "sets", &BX_CPU_C::SETS_EbM, &BX_CPU_C::SETS_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETZ_Eb, "setz", "setz", &BX_CPU_C::SETZ_EbM, &BX_CPU_C::SETZ_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SHLD_EdGd, "shld", "shldl", &BX_CPU_C::SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdR, 0, OP_Ed, OP_Gd, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EdGdIb, "shld", "shldl", &BX_CPU_C::SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdR, 0, OP_Ed, OP_Gd, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EwGw, "shld", "shldw", &BX_CPU_C::SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwR, 0, OP_Ew, OP_Gw, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EwGwIb, "shld", "shldw", &BX_CPU_C::SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwR, 0, OP_Ew, OP_Gw, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EdGd, "shrd", "shrdl", &BX_CPU_C::SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdR, 0, OP_Ed, OP_Gd, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EdGdIb, "shrd", "shrdl", &BX_CPU_C::SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdR, 0, OP_Ed, OP_Gd, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EwGw, "shrd", "shrdw", &BX_CPU_C::SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwR, 0, OP_Ew, OP_Gw, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EwGwIb, "shrd", "shrdw", &BX_CPU_C::SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwR, 0, OP_Ew, OP_Gw, OP_Ib, OP_NONE, 0)

bx_define_opcode(BX_IA_RSM, "rsm", "rsm", NULL, &BX_CPU_C::RSM, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SALC, "salc", "salc", NULL, &BX_CPU_C::SALC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STC, "stc", "stc", NULL, &BX_CPU_C::STC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STD, "std", "std", NULL, &BX_CPU_C::STD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STI, "sti", "sti", NULL, &BX_CPU_C::STI, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MUL_ALEb, "mul", "mulb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::MUL_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_ALEb, "imul", "imulb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IMUL_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_ALEb, "div", "divb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::DIV_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_ALEb, "idiv", "idivb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IDIV_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MUL_AXEw, "mul", "mulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::MUL_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_AXEw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_AXEw, "div", "divw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::DIV_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_AXEw, "idiv", "idivw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IDIV_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MUL_EAXEd, "mul", "mull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MUL_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_EAXEd, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_EAXEd, "div", "divl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::DIV_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_EAXEd, "idiv", "idivl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IDIV_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_VERR_Ew, "verr", "verr", &BX_CPU_C::VERR_Ew, &BX_CPU_C::VERR_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VERW_Ew, "verw", "verw", &BX_CPU_C::VERW_Ew, &BX_CPU_C::VERW_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XCHG_EbGb, "xchg", "xchgb", &BX_CPU_C::XCHG_EbGbM, &BX_CPU_C::XCHG_EbGbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_EwGw, "xchg", "xchgw", &BX_CPU_C::XCHG_EwGwM, &BX_CPU_C::XCHG_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_EdGd, "xchg", "xchgl", &BX_CPU_C::XCHG_EdGdM, &BX_CPU_C::XCHG_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_RXAX, "xchg", "xchgw", NULL, &BX_CPU_C::XCHG_EwGwR, 0, OP_Ew, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XCHG_ERXEAX, "xchg", "xchgl", NULL, &BX_CPU_C::XCHG_EdGdR, 0, OP_Ed, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XLAT, "xlat", "xlat", NULL, &BX_CPU_C::XLAT, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SYSENTER, "sysenter", "sysenter", NULL, &BX_CPU_C::SYSENTER, BX_ISA_SYSENTER_SYSEXIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSEXIT, "sysexit", "sysexit", NULL, &BX_CPU_C::SYSEXIT, BX_ISA_SYSENTER_SYSEXIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MONITOR, "monitor", "monitor", &BX_CPU_C::BxError, &BX_CPU_C::MONITOR, BX_ISA_MONITOR_MWAIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MWAIT, "mwait", "mwait", &BX_CPU_C::BxError, &BX_CPU_C::MWAIT, BX_ISA_MONITOR_MWAIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_UMONITOR_Eq, "umonitor", "umonitor", &BX_CPU_C::BxError, &BX_CPU_C::UMONITOR_Eq, BX_ISA_WAITPKG, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_UMONITOR_Ed, "umonitor", "umonitor", &BX_CPU_C::BxError, &BX_CPU_C::UMONITOR_Eq, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UMWAIT_Ed, "umwait", "umwait", &BX_CPU_C::BxError, &BX_CPU_C::UMWAIT_Ed, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_TPAUSE_Ed, "tpause", "tpause", &BX_CPU_C::BxError, &BX_CPU_C::UMWAIT_Ed, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MONITORX, "monitorx", "monitorx", &BX_CPU_C::BxError, &BX_CPU_C::MONITOR, BX_ISA_MONITORX_MWAITX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MWAITX, "mwaitx", "mwaitx", &BX_CPU_C::BxError, &BX_CPU_C::MWAIT, BX_ISA_MONITORX_MWAITX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_FWAIT, "fwait", "fwait", NULL, &BX_CPU_C::FWAIT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_FPU
bx_define_opcode(BX_IA_FLD_STi, "fld", "fld", NULL, &BX_CPU_C::FLD_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_SINGLE_REAL, "fld", "flds", &BX_CPU_C::FLD_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_DOUBLE_REAL, "fld", "fldl", &BX_CPU_C::FLD_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_EXTENDED_REAL, "fld", "fldt", &BX_CPU_C::FLD_EXTENDED_REAL, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_WORD_INTEGER, "fild", "fildw", &BX_CPU_C::FILD_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_DWORD_INTEGER, "fild", "fildl", &BX_CPU_C::FILD_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_QWORD_INTEGER, "fild", "fildq", &BX_CPU_C::FILD_QWORD_INTEGER, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FBLD_PACKED_BCD, "fbld", "fbldt", &BX_CPU_C::FBLD_PACKED_BCD, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FST_STi, "fst", "fst", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_STi, "fstp", "fstp", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_SPECIAL_STi, "fstp", "fstp", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU) // undocumented 287 compatibility opcode
bx_define_opcode(BX_IA_FST_SINGLE_REAL, "fst", "fsts", &BX_CPU_C::FST_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_SINGLE_REAL, "fstp", "fstps", &BX_CPU_C::FST_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FST_DOUBLE_REAL, "fst", "fstl", &BX_CPU_C::FST_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_DOUBLE_REAL, "fstp", "fstpl", &BX_CPU_C::FST_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_EXTENDED_REAL, "fstp", "fstpt", &BX_CPU_C::FSTP_EXTENDED_REAL, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIST_WORD_INTEGER, "fist", "fistw", &BX_CPU_C::FIST_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_WORD_INTEGER, "fistp", "fistpw", &BX_CPU_C::FIST_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIST_DWORD_INTEGER, "fist", "fistl", &BX_CPU_C::FIST_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_DWORD_INTEGER, "fistp", "fistpl", &BX_CPU_C::FIST_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_QWORD_INTEGER, "fistp", "fistpq", &BX_CPU_C::FISTP_QWORD_INTEGER, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FBSTP_PACKED_BCD, "fbstp", "fbstpt", &BX_CPU_C::FBSTP_PACKED_BCD, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Mw, "fisttp", "fisttpw", &BX_CPU_C::FISTTP16, NULL, BX_ISA_SSE3, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Md, "fisttp", "fisttpl", &BX_CPU_C::FISTTP32, NULL, BX_ISA_SSE3, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Mq, "fisttp", "fisttpq", &BX_CPU_C::FISTTP64, NULL, BX_ISA_SSE3, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNINIT, "fninit", "fninit", NULL, &BX_CPU_C::FNINIT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNCLEX, "fnclex", "fnclex", NULL, &BX_CPU_C::FNCLEX, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FRSTOR, "frstor", "frstor", &BX_CPU_C::FRSTOR, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSAVE, "fnsave", "fnsave", &BX_CPU_C::FNSAVE, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDENV, "fldenv", "fldenv", &BX_CPU_C::FLDENV, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTENV, "fnstenv", "fnstenv", &BX_CPU_C::FNSTENV, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDCW, "fldcw", "fldcw", &BX_CPU_C::FLDCW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTCW, "fnstcw", "fnstcw", &BX_CPU_C::FNSTCW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTSW, "fnstsw", "fnstsw", &BX_CPU_C::FNSTSW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTSW_AX, "fnstsw", "fnstsw", NULL, &BX_CPU_C::FNSTSW_AX, BX_ISA_X87, OP_AXReg, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD1, "fld1", "fld1", NULL, &BX_CPU_C::FLD1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDL2T, "fldl2t", "fldl2t", NULL, &BX_CPU_C::FLDL2T, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDL2E, "fldl2e", "fldl2e", NULL, &BX_CPU_C::FLDL2E, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDPI, "fldpi", "fldpi", NULL, &BX_CPU_C::FLDPI, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDLG2, "fldlg2", "fldlg2", NULL, &BX_CPU_C::FLDLG2, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDLN2, "fldln2", "fldln2", NULL, &BX_CPU_C::FLDLN2, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDZ, "fldz", "fldz", NULL, &BX_CPU_C::FLDZ, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_ST0_STj, "fadd", "fadd", NULL, &BX_CPU_C::FADD_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_STi_ST0, "fadd", "fadd", NULL, &BX_CPU_C::FADD_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADDP_STi_ST0, "faddp", "faddp", NULL, &BX_CPU_C::FADD_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_SINGLE_REAL, "fadd", "fadds", &BX_CPU_C::FADD_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_DOUBLE_REAL, "fadd", "faddl", &BX_CPU_C::FADD_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIADD_WORD_INTEGER, "fiadd", "fiaddw", &BX_CPU_C::FIADD_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIADD_DWORD_INTEGER, "fiadd", "fiaddl", &BX_CPU_C::FIADD_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_ST0_STj, "fmul", "fmul", NULL, &BX_CPU_C::FMUL_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_STi_ST0, "fmul", "fmul", NULL, &BX_CPU_C::FMUL_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMULP_STi_ST0, "fmulp", "fmulp", NULL, &BX_CPU_C::FMUL_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_SINGLE_REAL, "fmul", "fmuls", &BX_CPU_C::FMUL_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_DOUBLE_REAL, "fmul", "fmull", &BX_CPU_C::FMUL_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIMUL_WORD_INTEGER , "fimul", "fimulw", &BX_CPU_C::FIMUL_WORD_INTEGER , NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIMUL_DWORD_INTEGER, "fimul", "fimull", &BX_CPU_C::FIMUL_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_ST0_STj, "fsub", "fsub", NULL, &BX_CPU_C::FSUB_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_ST0_STj, "fsubr", "fsubr", NULL, &BX_CPU_C::FSUBR_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_STi_ST0, "fsub", "fsub", NULL, &BX_CPU_C::FSUB_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBP_STi_ST0, "fsubp", "fsubp", NULL, &BX_CPU_C::FSUB_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_STi_ST0, "fsubr", "fsubr", NULL, &BX_CPU_C::FSUBR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBRP_STi_ST0, "fsubrp", "fsubrp", NULL, &BX_CPU_C::FSUBR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_SINGLE_REAL, "fsub", "fsubs", &BX_CPU_C::FSUB_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_SINGLE_REAL, "fsubr", "fsubrs", &BX_CPU_C::FSUBR_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_DOUBLE_REAL, "fsub", "fsubl", &BX_CPU_C::FSUB_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_DOUBLE_REAL, "fsubr", "fsubrl", &BX_CPU_C::FSUBR_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUB_WORD_INTEGER, "fisub", "fisubw", &BX_CPU_C::FISUB_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUBR_WORD_INTEGER, "fisubr", "fisubrw", &BX_CPU_C::FISUBR_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUB_DWORD_INTEGER, "fisub", "fisubl", &BX_CPU_C::FISUB_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUBR_DWORD_INTEGER, "fisubr", "fisubrl", &BX_CPU_C::FISUBR_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_ST0_STj, "fdiv", "fdiv", NULL, &BX_CPU_C::FDIV_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_ST0_STj, "fdivr", "fdivr", NULL, &BX_CPU_C::FDIVR_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_STi_ST0, "fdiv", "fdiv", NULL, &BX_CPU_C::FDIV_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVP_STi_ST0, "fdivp", "fdivp", NULL, &BX_CPU_C::FDIV_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_STi_ST0, "fdivr", "fdivr", NULL, &BX_CPU_C::FDIVR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVRP_STi_ST0, "fdivrp", "fdivrp", NULL, &BX_CPU_C::FDIVR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_SINGLE_REAL, "fdiv", "fdivs", &BX_CPU_C::FDIV_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_SINGLE_REAL, "fdivr", "fdivrs", &BX_CPU_C::FDIVR_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_DOUBLE_REAL, "fdiv", "fdivl", &BX_CPU_C::FDIV_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_DOUBLE_REAL, "fdivr", "fdivrl", &BX_CPU_C::FDIVR_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIV_WORD_INTEGER, "fidiv", "fidivw", &BX_CPU_C::FIDIV_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIVR_WORD_INTEGER, "fidivr", "fidivrw", &BX_CPU_C::FIDIVR_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIV_DWORD_INTEGER, "fidiv", "fidivl", &BX_CPU_C::FIDIV_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIVR_DWORD_INTEGER, "fidivr", "fidivrl", &BX_CPU_C::FIDIVR_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_STi, "fcom", "fcom", NULL, &BX_CPU_C::FCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_STi, "fcomp", "fcomp", NULL, &BX_CPU_C::FCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOM_STi, "fucom", "fucom", NULL, &BX_CPU_C::FUCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMP_STi, "fucomp", "fucomp", NULL, &BX_CPU_C::FUCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMI_ST0_STj, "fcomi", "fcomi", NULL, &BX_CPU_C::FCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMIP_ST0_STj, "fcomip", "fcomip", NULL, &BX_CPU_C::FCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMI_ST0_STj, "fucomi", "fucomi", NULL, &BX_CPU_C::FUCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMIP_ST0_STj, "fucomip", "fucomip", NULL, &BX_CPU_C::FUCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_SINGLE_REAL, "fcom", "fcoms", &BX_CPU_C::FCOM_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_SINGLE_REAL, "fcomp", "fcomps", &BX_CPU_C::FCOM_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_DOUBLE_REAL, "fcom", "fcoml", &BX_CPU_C::FCOM_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_DOUBLE_REAL, "fcomp", "fcompl", &BX_CPU_C::FCOM_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOM_WORD_INTEGER, "ficom", "ficomw", &BX_CPU_C::FICOM_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOMP_WORD_INTEGER, "ficomp", "ficompw", &BX_CPU_C::FICOM_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOM_DWORD_INTEGER, "ficom", "ficoml", &BX_CPU_C::FICOM_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOMP_DWORD_INTEGER, "ficomp", "ficompl", &BX_CPU_C::FICOM_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVB_ST0_STj, "fcmovb", "fcmovb", NULL, &BX_CPU_C::FCMOVB_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVE_ST0_STj, "fcmove", "fcmove", NULL, &BX_CPU_C::FCMOVE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVBE_ST0_STj, "fcmovbe", "fcmovbe", NULL, &BX_CPU_C::FCMOVBE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVU_ST0_STj, "fcmovu", "fcmovu", NULL, &BX_CPU_C::FCMOVU_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNB_ST0_STj, "fcmovnb", "fcmovnb", NULL, &BX_CPU_C::FCMOVNB_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNE_ST0_STj, "fcmovne", "fcmovne", NULL, &BX_CPU_C::FCMOVNE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNBE_ST0_STj, "fcmovnbe", "fcmovnbe", NULL, &BX_CPU_C::FCMOVNBE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNU_ST0_STj, "fcmovnu", "fcmovnu", NULL, &BX_CPU_C::FCMOVNU_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMPP, "fcompp", "fcompp", NULL, &BX_CPU_C::FCOMPP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMPP, "fucompp", "fucompp", NULL, &BX_CPU_C::FCOMPP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXCH_STi, "fxch", "fxch", NULL, &BX_CPU_C::FXCH_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNOP, "fnop", "fnop", NULL, &BX_CPU_C::FNOP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPLEGACY, "fplegacy", "fplegacy", NULL, &BX_CPU_C::FPLEGACY, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCHS, "fchs", "fchs", NULL, &BX_CPU_C::FCHS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FABS, "fabs", "fabs", NULL, &BX_CPU_C::FABS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FTST, "ftst", "ftst", NULL, &BX_CPU_C::FTST, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXAM, "fxam", "fxam", NULL, &BX_CPU_C::FXAM, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDECSTP, "fdecstp", "fdecstp", NULL, &BX_CPU_C::FDECSTP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FINCSTP, "fincstp", "fincstp", NULL, &BX_CPU_C::FINCSTP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FFREE_STi, "ffree", "ffree", NULL, &BX_CPU_C::FFREE_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FFREEP_STi, "ffreep", "ffreep", NULL, &BX_CPU_C::FFREEP_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_F2XM1, "f2xm1", "f2xm1", NULL, &BX_CPU_C::F2XM1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FYL2X, "fyl2x", "fyl2x", NULL, &BX_CPU_C::FYL2X, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPTAN, "fptan", "fptan", NULL, &BX_CPU_C::FPTAN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPATAN, "fpatan", "fpatan", NULL, &BX_CPU_C::FPATAN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXTRACT, "fxtract", "fxtract", NULL, &BX_CPU_C::FXTRACT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPREM1, "fprem1", "fprem1", NULL, &BX_CPU_C::FPREM1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPREM, "fprem", "fprem", NULL, &BX_CPU_C::FPREM, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FYL2XP1, "fyl2xp1", "fyl2xp1", NULL, &BX_CPU_C::FYL2XP1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSQRT, "fsqrt", "fsqrt", NULL, &BX_CPU_C::FSQRT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSINCOS, "fsincos", "fsincos", NULL, &BX_CPU_C::FSINCOS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FRNDINT, "frndint", "frndint", NULL, &BX_CPU_C::FRNDINT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSCALE, "fscale", "fscale", NULL, &BX_CPU_C::FSCALE, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSIN, "fsin", "fsin", NULL, &BX_CPU_C::FSIN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOS, "fcos", "fcos", NULL, &BX_CPU_C::FCOS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
#else
bx_define_opcode(BX_IA_FPUESC, "fpuesc", "fpuesc", &BX_CPU_C::FPU_ESC, &BX_CPU_C::FPU_ESC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
#endif

// 486 new instructions
bx_define_opcode(BX_IA_CPUID, "cpuid", "cpuid", NULL, &BX_CPU_C::CPUID, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_RX, "bswap", "bswapw", NULL, &BX_CPU_C::BSWAP_RX, BX_ISA_486, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_ERX, "bswap", "bswapl", NULL, &BX_CPU_C::BSWAP_ERX, BX_ISA_486, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_INVD, "invd", "invd", NULL, &BX_CPU_C::INVD, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_WBINVD, "wbinvd", "wbinvd", NULL, &BX_CPU_C::WBINVD, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_XADD_EbGb, "xadd", "xaddb", &BX_CPU_C::XADD_EbGbM, &BX_CPU_C::XADD_EbGbR, BX_ISA_486, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XADD_EwGw, "xadd", "xaddw", &BX_CPU_C::XADD_EwGwM, &BX_CPU_C::XADD_EwGwR, BX_ISA_486, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XADD_EdGd, "xadd", "xaddl", &BX_CPU_C::XADD_EdGdM, &BX_CPU_C::XADD_EdGdR, BX_ISA_486, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EbGb, "cmpxchg", "cmpxchgb", &BX_CPU_C::CMPXCHG_EbGbM, &BX_CPU_C::CMPXCHG_EbGbR, BX_ISA_486, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EwGw, "cmpxchg", "cmpxchgw", &BX_CPU_C::CMPXCHG_EwGwM, &BX_CPU_C::CMPXCHG_EwGwR, BX_ISA_486, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EdGd, "cmpxchg", "cmpxchgl", &BX_CPU_C::CMPXCHG_EdGdM, &BX_CPU_C::CMPXCHG_EdGdR, BX_ISA_486, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INVLPG, "invlpg", "invlpg", &BX_CPU_C::INVLPG, &BX_CPU_C::BxError, 0, OP_Mb, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// 486 new instructions

// Pentium new instructions
bx_define_opcode(BX_IA_CMPXCHG8B, "cmpxchg8b", "cmpxchg8b", &BX_CPU_C::CMPXCHG8B, &BX_CPU_C::BxError, BX_ISA_PENTIUM, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_WRMSR, "wrmsr", "wrmsr", NULL, &BX_CPU_C::WRMSR, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RDMSR, "rdmsr", "rdmsr", NULL, &BX_CPU_C::RDMSR, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RDTSC, "rdtsc", "rdtsc", NULL, &BX_CPU_C::RDTSC, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// Pentium new instructions

// MMX
bx_define_opcode(BX_IA_PUNPCKLBW_PqQd, "punpcklbw", "punpcklbw", &BX_CPU_C::PUNPCKLBW_PqQd, &BX_CPU_C::PUNPCKLBW_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKLWD_PqQd, "punpcklwd", "punpcklwd", &BX_CPU_C::PUNPCKLWD_PqQd, &BX_CPU_C::PUNPCKLWD_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKLDQ_PqQd, "punpckldq", "punpckldq", &BX_CPU_C::PUNPCKLDQ_PqQd, &BX_CPU_C::PUNPCKLDQ_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKSSWB_PqQq, "packsswb", "packsswb", &BX_CPU_C::PACKSSWB_PqQq, &BX_CPU_C::PACKSSWB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTB_PqQq, "pcmpgtb", "pcmpgtb", &BX_CPU_C::PCMPGTB_PqQq, &BX_CPU_C::PCMPGTB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTW_PqQq, "pcmpgtw", "pcmpgtw", &BX_CPU_C::PCMPGTW_PqQq, &BX_CPU_C::PCMPGTW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTD_PqQq, "pcmpgtd", "pcmpgtd", &BX_CPU_C::PCMPGTD_PqQq, &BX_CPU_C::PCMPGTD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKUSWB_PqQq, "packuswb", "packuswb", &BX_CPU_C::PACKUSWB_PqQq, &BX_CPU_C::PACKUSWB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHBW_PqQq, "punpckhbw", "punpckhbw", &BX_CPU_C::PUNPCKHBW_PqQq, &BX_CPU_C::PUNPCKHBW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHWD_PqQq, "punpckhwd", "punpckhwd", &BX_CPU_C::PUNPCKHWD_PqQq, &BX_CPU_C::PUNPCKHWD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHDQ_PqQq, "punpckhdq", "punpckhdq", &BX_CPU_C::PUNPCKHDQ_PqQq, &BX_CPU_C::PUNPCKHDQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKSSDW_PqQq, "packssdw", "packssdw", &BX_CPU_C::PACKSSDW_PqQq, &BX_CPU_C::PACKSSDW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVD_PqEd, "movd", "movd", &BX_CPU_C::MOVD_PqEdM, &BX_CPU_C::MOVD_PqEdR, BX_ISA_MMX, OP_Pq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_PqQq, "movq", "movq", &BX_CPU_C::MOVQ_PqQqM, &BX_CPU_C::MOVQ_PqQqR, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQB_PqQq, "pcmpeqb", "pcmpeqb", &BX_CPU_C::PCMPEQB_PqQq, &BX_CPU_C::PCMPEQB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQW_PqQq, "pcmpeqw", "pcmpeqw", &BX_CPU_C::PCMPEQW_PqQq, &BX_CPU_C::PCMPEQW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQD_PqQq, "pcmpeqd", "pcmpeqd", &BX_CPU_C::PCMPEQD_PqQq, &BX_CPU_C::PCMPEQD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_EMMS, "emms", "emms", NULL, &BX_CPU_C::EMMS, BX_ISA_MMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVD_EdPq, "movd", "movd", &BX_CPU_C::MOVD_EdPqM, &BX_CPU_C::MOVD_EdPqR, BX_ISA_MMX, OP_Ed, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_QqPq, "movq", "movq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::MOVQ_PqQqR, BX_ISA_MMX, OP_Qq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLW_PqQq, "psrlw", "psrlw", &BX_CPU_C::PSRLW_PqQq, &BX_CPU_C::PSRLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLD_PqQq, "psrld", "psrld", &BX_CPU_C::PSRLD_PqQq, &BX_CPU_C::PSRLD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLQ_PqQq, "psrlq", "psrlq", &BX_CPU_C::PSRLQ_PqQq, &BX_CPU_C::PSRLQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULLW_PqQq, "pmullw", "pmullw", &BX_CPU_C::PMULLW_PqQq, &BX_CPU_C::PMULLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBUSB_PqQq, "psubusb", "psubusb", &BX_CPU_C::PSUBUSB_PqQq, &BX_CPU_C::PSUBUSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBUSW_PqQq, "psubusw", "psubusw", &BX_CPU_C::PSUBUSW_PqQq, &BX_CPU_C::PSUBUSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAND_PqQq, "pand", "pand", &BX_CPU_C::PAND_PqQq, &BX_CPU_C::PAND_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDUSB_PqQq, "paddusb", "paddusb", &BX_CPU_C::PADDUSB_PqQq, &BX_CPU_C::PADDUSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDUSW_PqQq, "paddusw", "paddusw", &BX_CPU_C::PADDUSW_PqQq, &BX_CPU_C::PADDUSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PANDN_PqQq, "pandn", "pandn", &BX_CPU_C::PANDN_PqQq, &BX_CPU_C::PANDN_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAW_PqQq, "psraw", "psraw", &BX_CPU_C::PSRAW_PqQq, &BX_CPU_C::PSRAW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAD_PqQq, "psrad", "psrad", &BX_CPU_C::PSRAD_PqQq, &BX_CPU_C::PSRAD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHW_PqQq, "pmulhw", "pmulhw", &BX_CPU_C::PMULHW_PqQq, &BX_CPU_C::PMULHW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBSB_PqQq, "psubsb", "psubsb", &BX_CPU_C::PSUBSB_PqQq, &BX_CPU_C::PSUBSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBSW_PqQq, "psubsw", "psubsw", &BX_CPU_C::PSUBSW_PqQq, &BX_CPU_C::PSUBSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_POR_PqQq, "por", "por", &BX_CPU_C::POR_PqQq, &BX_CPU_C::POR_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDSB_PqQq, "paddsb", "paddsb", &BX_CPU_C::PADDSB_PqQq, &BX_CPU_C::PADDSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDSW_PqQq, "paddsw", "paddsw", &BX_CPU_C::PADDSW_PqQq, &BX_CPU_C::PADDSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PXOR_PqQq, "pxor", "pxor", &BX_CPU_C::PXOR_PqQq, &BX_CPU_C::PXOR_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLW_PqQq, "psllw", "psllw", &BX_CPU_C::PSLLW_PqQq, &BX_CPU_C::PSLLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLD_PqQq, "pslld", "pslld", &BX_CPU_C::PSLLD_PqQq, &BX_CPU_C::PSLLD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLQ_PqQq, "psllq", "psllq", &BX_CPU_C::PSLLQ_PqQq, &BX_CPU_C::PSLLQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMADDWD_PqQq, "pmaddwd", "pmaddwd", &BX_CPU_C::PMADDWD_PqQq, &BX_CPU_C::PMADDWD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBB_PqQq, "psubb", "psubb", &BX_CPU_C::PSUBB_PqQq, &BX_CPU_C::PSUBB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBW_PqQq, "psubw", "psubw", &BX_CPU_C::PSUBW_PqQq, &BX_CPU_C::PSUBW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBD_PqQq, "psubd", "psubd", &BX_CPU_C::PSUBD_PqQq, &BX_CPU_C::PSUBD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDB_PqQq, "paddb", "paddb", &BX_CPU_C::PADDB_PqQq, &BX_CPU_C::PADDB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDW_PqQq, "paddw", "paddw", &BX_CPU_C::PADDW_PqQq, &BX_CPU_C::PADDW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDD_PqQq, "paddd", "paddd", &BX_CPU_C::PADDD_PqQq, &BX_CPU_C::PADDD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLW_NqIb, "psrlw", "psrlw", &BX_CPU_C::BxError, &BX_CPU_C::PSRLW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAW_NqIb, "psraw", "psraw", &BX_CPU_C::BxError, &BX_CPU_C::PSRAW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLW_NqIb, "psllw", "psllw", &BX_CPU_C::BxError, &BX_CPU_C::PSLLW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLD_NqIb, "psrld", "psrld", &BX_CPU_C::BxError, &BX_CPU_C::PSRLD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAD_NqIb, "psrad", "psrad", &BX_CPU_C::BxError, &BX_CPU_C::PSRAD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLD_NqIb, "pslld", "pslld", &BX_CPU_C::BxError, &BX_CPU_C::PSLLD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLQ_NqIb, "psrlq", "psrlq", &BX_CPU_C::BxError, &BX_CPU_C::PSRLQ_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLQ_NqIb, "psllq", "psllq", &BX_CPU_C::BxError, &BX_CPU_C::PSLLQ_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVQ_EqPq, "movq", "movq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::MOVQ_EqPqR, 0, OP_Eq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#endif
// MMX

bx_define_opcode(BX_IA_FEMMS, "femms", "femms", NULL, &BX_CPU_C::EMMS, BX_ISA_3DNOW, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#if BX_SUPPORT_3DNOW
bx_define_opcode(BX_IA_PF2ID_PqQq, "pf2id", "pf2id", &BX_CPU_C::PF2ID_PqQq, &BX_CPU_C::PF2ID_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PF2IW_PqQq, "pf2iw", "pf2iw", &BX_CPU_C::PF2IW_PqQq, &BX_CPU_C::PF2IW_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFACC_PqQq, "pfacc", "pfacc", &BX_CPU_C::PFACC_PqQq, &BX_CPU_C::PFACC_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFADD_PqQq, "pfadd", "pfadd", &BX_CPU_C::PFADD_PqQq, &BX_CPU_C::PFADD_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPEQ_PqQq, "pfcmpeq", "pfcmpeq", &BX_CPU_C::PFCMPEQ_PqQq, &BX_CPU_C::PFCMPEQ_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPGE_PqQq, "pfcmpge", "pfcmpge", &BX_CPU_C::PFCMPGE_PqQq, &BX_CPU_C::PFCMPGE_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPGT_PqQq, "pfcmpgt", "pfcmpgt", &BX_CPU_C::PFCMPGT_PqQq, &BX_CPU_C::PFCMPGT_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMAX_PqQq, "pfmax", "pfmax", &BX_CPU_C::PFMAX_PqQq, &BX_CPU_C::PFMAX_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMIN_PqQq, "pfmin", "pfmin", &BX_CPU_C::PFMIN_PqQq, &BX_CPU_C::PFMIN_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMUL_PqQq, "pfmul", "pfmul", &BX_CPU_C::PFMUL_PqQq, &BX_CPU_C::PFMUL_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFNACC_PqQq, "pfnacc", "pfnacc", &BX_CPU_C::PFNACC_PqQq, &BX_CPU_C::PFNACC_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFPNACC_PqQq, "pfpnacc", "pfpnacc", &BX_CPU_C::PFPNACC_PqQq, &BX_CPU_C::PFPNACC_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCP_PqQq, "pfrcp", "pfrcp", &BX_CPU_C::PFRCP_PqQq, &BX_CPU_C::PFRCP_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCPIT1_PqQq, "pfrcpit1", "pfrcpit1", &BX_CPU_C::PFRCPIT1_PqQq, &BX_CPU_C::PFRCPIT1_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCPIT2_PqQq, "pfrcpit2", "pfrcpit2", &BX_CPU_C::PFRCPIT2_PqQq, &BX_CPU_C::PFRCPIT2_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRSQIT1_PqQq, "pfrsqit1", "pfrsqit1", &BX_CPU_C::PFRSQIT1_PqQq, &BX_CPU_C::PFRSQIT1_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRSQRT_PqQq, "pfrsqrt", "pfrsqrt", &BX_CPU_C::PFRSQRT_PqQq, &BX_CPU_C::PFRSQRT_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFSUB_PqQq, "pfsub", "pfsub", &BX_CPU_C::PFSUB_PqQq, &BX_CPU_C::PFSUB_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFSUBR_PqQq, "pfsubr", "pfsubr", &BX_CPU_C::PFSUBR_PqQq, &BX_CPU_C::PFSUBR_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PI2FD_PqQq, "pi2fd", "pi2fd", &BX_CPU_C::PI2FD_PqQq, &BX_CPU_C::PI2FD_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PI2FW_PqQq, "pi2fw", "pi2fw", &BX_CPU_C::PI2FW_PqQq, &BX_CPU_C::PI2FW_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHRW_PqQq, "pmulhrw", "pmulhrw", &BX_CPU_C::PMULHRW_PqQq, &BX_CPU_C::PMULHRW_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSWAPD_PqQq, "pswapd", "pswapd", &BX_CPU_C::PSWAPD_PqQq, &BX_CPU_C::PSWAPD_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#endif
bx_define_opcode(BX_IA_PREFETCHW_Mb, "prefetchw", "prefetchw", &BX_CPU_C::NOP, &BX_CPU_C::NOP, 0, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0) // NOP even when no 3DNow!

bx_define_opcode(BX_IA_SYSCALL_LEGACY, "syscall", "syscall", NULL, &BX_CPU_C::SYSCALL, BX_ISA_SYSCALL_SYSRET_LEGACY, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSRET_LEGACY, "sysret", "sysret", NULL, &BX_CPU_C::SYSRET, BX_ISA_SYSCALL_SYSRET_LEGACY, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

// P6 new instructions
bx_define_opcode(BX_IA_CMOVB_GwEw, "cmovb", "cmovbw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVB_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GwEw, "cmovbe", "cmovbew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVBE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GwEw, "cmovl", "cmovlw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVL_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GwEw, "cmovle", "cmovlew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVLE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GwEw, "cmovnb", "cmovnbw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNB_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GwEw, "cmovnbe", "cmovnbew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNBE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GwEw, "cmovnl", "cmovnlw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNL_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GwEw, "cmovnle", "cmovnlew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNLE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GwEw, "cmovno", "cmovnow", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNO_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GwEw, "cmovnp", "cmovnpw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNP_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GwEw, "cmovns", "cmovnsw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNS_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GwEw, "cmovnz", "cmovnzw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNZ_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVO_GwEw, "cmovo", "cmovow", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVO_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GwEw, "cmovp", "cmovpw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVP_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GwEw, "cmovs", "cmovsw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVS_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GwEw, "cmovz", "cmovzw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVZ_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CMOVB_GdEd, "cmovb", "cmovbl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVB_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GdEd, "cmovbe", "cmovbel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVBE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GdEd, "cmovl", "cmovll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVL_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GdEd, "cmovle", "cmovlel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVLE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GdEd, "cmovnb", "cmovnbl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNB_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GdEd, "cmovnbe", "cmovnbel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNBE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GdEd, "cmovnl", "cmovnll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNL_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GdEd, "cmovnle", "cmovnlel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNLE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GdEd, "cmovno", "cmovnol", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNO_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GdEd, "cmovnp", "cmovnpl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNP_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GdEd, "cmovns", "cmovnsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNS_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GdEd, "cmovnz", "cmovnzl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNZ_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVO_GdEd, "cmovo", "cmovol", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVO_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GdEd, "cmovp", "cmovpl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVP_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GdEd, "cmovs", "cmovsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVS_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GdEd, "cmovz", "cmovzl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVZ_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_RDPMC, "rdpmc", "rdpmc", NULL, &BX_CPU_C::RDPMC, BX_ISA_P6, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UD0, "ud0", "ud0", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_UD1, "ud1", "ud1", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_UD2, "ud2", "ud2", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// P6 new instructions

// FXSAVE
bx_define_opcode(BX_IA_FXSAVE, "fxsave", "fxsave", &BX_CPU_C::FXSAVE, &BX_CPU_C::BxError, BX_ISA_SSE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_FXRSTOR, "fxrstor", "fxrstor", &BX_CPU_C::FXRSTOR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
// FXSAVE

// SSE
bx_define_opcode(BX_IA_LDMXCSR, "ldmxcsr", "ldmxcsr", &BX_CPU_C::LDMXCSR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_STMXCSR, "stmxcsr", "stmxcsr", &BX_CPU_C::STMXCSR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PREFETCH_Mb, "prefetch", "prefetch", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT0_Mb, "prefetcht0", "prefetcht0", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT1_Mb, "prefetcht1", "prefetcht1", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT2_Mb, "prefetcht2", "prefetcht2", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHNTA_Mb, "prefetchnta", "prefetchnta", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
// SSE

// SSE and SSE2
bx_define_opcode(BX_IA_ANDPS_VpsWps, "andps", "andps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ORPS_VpsWps, "orps", "orps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_XORPS_VpsWps, "xorps", "xorps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDNPS_VpsWps, "andnps", "andnps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MOVUPS_VpsWps, "movups", "movups", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPS_WpsVps, "movups", "movups", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSS_VssWss, "movss", "movss", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSS_WssVss, "movss", "movss", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVSS_VssWssR, BX_ISA_SSE, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPS_VpsMq, "movlps", "movlps", &BX_CPU_C::MOVLPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Vps, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHLPS_VpsWps, "movhlps", "movhlps", &BX_CPU_C::BxError, &BX_CPU_C::MOVHLPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPS_MqVps, "movlps", "movlps", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPS_VpsMq, "movhps", "movhps", &BX_CPU_C::MOVHPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Vps, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLHPS_VpsWps, "movlhps", "movlhps", &BX_CPU_C::BxError, &BX_CPU_C::MOVLHPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPS_MqVps, "movhps", "movhps", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPS_VpsWps, "movaps", "movaps", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPS_WpsVps, "movaps", "movaps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTPS_MpsVps, "movntps", "movntps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPI2PS_VpsQq, "cvtpi2ps", "cvtpi2ps", &BX_CPU_C::CVTPI2PS_VpsQqM, &BX_CPU_C::CVTPI2PS_VpsQqR, BX_ISA_SSE, OP_Vps, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SS_VssEd, "cvtsi2ss", "cvtsi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CVTSI2SS_VssEdR, BX_ISA_SSE, OP_Vss, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPS2PI_PqWps, "cvttps2pi", "cvttps2pi", &BX_CPU_C::CVTTPS2PI_PqWps, &BX_CPU_C::CVTTPS2PI_PqWps, BX_ISA_SSE, OP_Pq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPS2PI_PqWps, "cvtps2pi", "cvtps2pi", &BX_CPU_C::CVTPS2PI_PqWps, &BX_CPU_C::CVTPS2PI_PqWps, BX_ISA_SSE, OP_Pq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSS2SI_GdWss, "cvttss2si", "cvttss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GdWssR, BX_ISA_SSE, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SI_GdWss, "cvtss2si", "cvtss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GdWssR, BX_ISA_SSE, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UCOMISS_VssWss, "ucomiss", "ucomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::UCOMISS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_COMISS_VssWss, "comiss", "comiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::COMISS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVMSKPS_GdUps, "movmskps", "movmskps", &BX_CPU_C::BxError, &BX_CPU_C::MOVMSKPS_GdUps, BX_ISA_SSE, OP_Gd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVMSKPD_GdUpd, "movmskpd", "movmskpd", &BX_CPU_C::BxError, &BX_CPU_C::MOVMSKPD_GdUpd, BX_ISA_SSE2, OP_Gd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RSQRTPS_VpsWps, "rsqrtps", "rsqrtps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::RSQRTPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RSQRTSS_VssWss, "rsqrtss", "rsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::RSQRTSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RCPPS_VpsWps, "rcpps", "rcpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::RCPPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RCPSS_VssWss, "rcpss", "rcpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::RCPSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFW_PqQqIb, "pshufw", "pshufw", &BX_CPU_C::PSHUFW_PqQqIb, &BX_CPU_C::PSHUFW_PqQqIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSHUFLW_VdqWdqIb, "pshuflw", "pshuflw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFLW_VdqWdqIbR, BX_ISA_SSE, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRW_PqEwIb, "pinsrw", "pinsrw", &BX_CPU_C::PINSRW_PqEwIb, &BX_CPU_C::PINSRW_PqEwIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PEXTRW_GdNqIb, "pextrw", "pextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdNqIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Gd, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_SHUFPS_VpsWpsIb, "shufps", "shufps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHUFPS_VpsWpsIbR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVMSKB_GdNq, "pmovmskb", "pmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::PMOVMSKB_GdNq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Gd, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMINUB_PqQq, "pminub", "pminub", &BX_CPU_C::PMINUB_PqQq, &BX_CPU_C::PMINUB_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMAXUB_PqQq, "pmaxub", "pmaxub", &BX_CPU_C::PMAXUB_PqQq, &BX_CPU_C::PMAXUB_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAVGB_PqQq, "pavgb", "pavgb", &BX_CPU_C::PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, BX_ISA_SSE, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAVGW_PqQq, "pavgw", "pavgw", &BX_CPU_C::PAVGW_PqQq, &BX_CPU_C::PAVGW_PqQq, BX_ISA_SSE, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHUW_PqQq, "pmulhuw", "pmulhuw", &BX_CPU_C::PMULHUW_PqQq, &BX_CPU_C::PMULHUW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVNTQ_MqPq, "movntq", "movntq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::BxError, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Qq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMINSW_PqQq, "pminsw", "pminsw", &BX_CPU_C::PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMAXSW_PqQq, "pmaxsw", "pmaxsw", &BX_CPU_C::PMAXSW_PqQq, &BX_CPU_C::PMAXSW_PqQq, BX_ISA_SSE, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSADBW_PqQq, "psadbw", "psadbw", &BX_CPU_C::PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MASKMOVQ_PqNq, "maskmovq", "maskmovq", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVQ_PqNq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_NONE, OP_Pq, OP_Qq, OP_sYq, BX_PREPARE_MMX)

bx_define_opcode(BX_IA_ADDPS_VpsWps, "addps", "addps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDPD_VpdWpd, "addpd", "addpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSS_VssWss, "addss", "addss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::ADDSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSD_VsdWsd, "addsd", "addsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::ADDSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MULPS_VpsWps, "mulps", "mulps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_mulps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULPD_VpdWpd, "mulpd", "mulpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_mulpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULSS_VssWss, "mulss", "mulss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MULSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULSD_VsdWsd, "mulsd", "mulsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MULSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_SUBPS_VpsWps, "subps", "subps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_subps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBPD_VpdWpd, "subpd", "subpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_subpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBSS_VssWss, "subss", "subss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::SUBSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBSD_VsdWsd, "subsd", "subsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::SUBSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MINPS_VpsWps, "minps", "minps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_minps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINPD_VpdWpd, "minpd", "minpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_minpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINSS_VssWss, "minss", "minss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MINSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINSD_VsdWsd, "minsd", "minsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MINSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_DIVPS_VpsWps, "divps", "divps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_divps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVPD_VpdWpd, "divpd", "divpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_divpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVSS_VssWss, "divss", "divss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::DIVSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVSD_VsdWsd, "divsd", "divsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::DIVSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MAXPS_VpsWps, "maxps", "maxps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_maxps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXPD_VpdWpd, "maxpd", "maxpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_maxpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXSS_VssWss, "maxss", "maxss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MAXSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXSD_VsdWsd, "maxsd", "maxsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MAXSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_SQRTPS_VpsWps, "sqrtps", "sqrtps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_1OP<xmm_sqrtps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTPD_VpdWpd, "sqrtpd", "sqrtpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_1OP<xmm_sqrtpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTSS_VssWss, "sqrtss", "sqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::SQRTSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTSD_VsdWsd, "sqrtsd", "sqrtsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::SQRTSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_CMPPS_VpsWpsIb, "cmpps", "cmpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CMPPS_VpsWpsIbR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPPD_VpdWpdIb, "cmppd", "cmppd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CMPPD_VpdWpdIbR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPSS_VssWssIb, "cmpss", "cmpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CMPSS_VssWssIbR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPSD_VsdWsdIb, "cmpsd", "cmpsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CMPSD_VsdWsdIbR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_Ib, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_CVTPS2PD_VpdWps, "cvtps2pd", "cvtps2pd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTPS2PD_VpdWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2PS_VpsWpd, "cvtpd2ps", "cvtpd2ps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPD2PS_VpsWpdR, BX_ISA_SSE2, OP_Vps, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SD_VsdWss, "cvtss2sd", "cvtss2sd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SD_VsdWssR, BX_ISA_SSE2, OP_Vsd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SS_VssWsd, "cvtsd2ss", "cvtsd2ss", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SS_VssWsdR, BX_ISA_SSE2, OP_Vss, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MOVSD_VsdWsd, "movsd", "movsd", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSD_WsdVsd, "movsd", "movsd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVSD_VsdWsdR, BX_ISA_SSE2, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPI2PD_VpdQq, "cvtpi2pd", "cvtpi2pd", &BX_CPU_C::CVTPI2PD_VpdQqM, &BX_CPU_C::CVTPI2PD_VpdQqR, BX_ISA_SSE2, OP_Vpd, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SD_VsdEd, "cvtsi2sd", "cvtsi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CVTSI2SD_VsdEdR, BX_ISA_SSE2, OP_Vsd, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPD2PI_PqWpd, "cvttpd2pi", "cvttpd2pi", &BX_CPU_C::CVTTPD2PI_PqWpd, &BX_CPU_C::CVTTPD2PI_PqWpd, BX_ISA_SSE2, OP_Pq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSD2SI_GdWsd, "cvttsd2si", "cvttsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GdWsdR, BX_ISA_SSE2, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2PI_PqWpd, "cvtpd2pi", "cvtpd2pi", &BX_CPU_C::CVTPD2PI_PqWpd, &BX_CPU_C::CVTPD2PI_PqWpd, BX_ISA_SSE2, OP_Pq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SI_GdWsd, "cvtsd2si", "cvtsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GdWsdR, BX_ISA_SSE2, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UCOMISD_VsdWsd, "ucomisd", "ucomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::UCOMISD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_COMISD_VsdWsd, "comisd", "comisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::COMISD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTDQ2PS_VpsWdq, "cvtdq2ps", "cvtdq2ps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTDQ2PS_VpsWdqR, BX_ISA_SSE2, OP_Vps, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPS2DQ_VdqWps, "cvtps2dq", "cvtps2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPS2DQ_VdqWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPS2DQ_VdqWps, "cvttps2dq", "cvttps2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTTPS2DQ_VdqWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKHPD_VpdWdq, "unpckhpd", "unpckhpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKLPD_VpdWdq, "unpcklpd", "unpcklpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHDQ_VdqWdq, "punpckhdq", "punpckhdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhps>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLDQ_VdqWdq, "punpckldq", "punpckldq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklps>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPD_VpdWpd, "movapd", "movapd", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPD_WpdVpd, "movapd", "movapd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQA_VdqWdq, "movdqa", "movdqa", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQA_WdqVdq, "movdqa", "movdqa", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQU_VdqWdq, "movdqu", "movdqu", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQU_WdqVdq, "movdqu", "movdqu", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPD_MqVsd, "movhpd", "movhpd", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wsd, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPD_VsdMq, "movhpd", "movhpd", &BX_CPU_C::MOVHPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPD_MqVsd, "movlpd", "movlpd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPD_VsdMq, "movlpd", "movlpd", &BX_CPU_C::MOVLPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTDQ_MdqVdq, "movntdq", "movntdq", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTPD_MpdVpd, "movntpd", "movntpd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPD_VpdWpd, "movupd", "movupd", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPD_WpdVpd, "movupd", "movupd", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDNPD_VpdWpd, "andnpd", "andnpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDPD_VpdWpd, "andpd", "andpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ORPD_VpdWpd, "orpd", "orpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_XORPD_VpdWpd, "xorpd", "xorpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAND_VdqWdq, "pand", "pand", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PANDN_VdqWdq, "pandn", "pandn", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_POR_VdqWdq, "por", "por", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PXOR_VdqWdq, "pxor", "pxor", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLBW_VdqWdq, "punpcklbw", "punpcklbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpcklbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLWD_VdqWdq, "punpcklwd", "punpcklwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpcklwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKLPS_VpsWdq, "unpcklps", "unpcklps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKSSWB_VdqWdq, "packsswb", "packsswb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packsswb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTB_VdqWdq, "pcmpgtb", "pcmpgtb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTW_VdqWdq, "pcmpgtw", "pcmpgtw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTD_VdqWdq, "pcmpgtd", "pcmpgtd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKUSWB_VdqWdq, "packuswb", "packuswb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packuswb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHBW_VdqWdq, "punpckhbw", "punpckhbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpckhbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHWD_VdqWdq, "punpckhwd", "punpckhwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpckhwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKHPS_VpsWdq, "unpckhps", "unpckhps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKSSDW_VdqWdq, "packssdw", "packssdw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packssdw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLQDQ_VdqWdq, "punpcklqdq", "punpcklqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklpd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHQDQ_VdqWdq, "punpckhqdq", "punpckhqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhpd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVD_VdqEd, "movd", "movd", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVD_VdqEdR, BX_ISA_SSE2, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFD_VdqWdqIb, "pshufd", "pshufd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFD_VdqWdqIbR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFHW_VdqWdqIb, "pshufhw", "pshufhw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFHW_VdqWdqIbR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQB_VdqWdq, "pcmpeqb", "pcmpeqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQW_VdqWdq, "pcmpeqw", "pcmpeqw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQD_VdqWdq, "pcmpeqd", "pcmpeqd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVD_EdVd, "movd", "movd", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVD_EdVdR, BX_ISA_SSE2, OP_Ed, OP_Vd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_VqWq, "movq", "movq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_SSE2, OP_Vq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTI_Op32_MdGd, "movnti", "movnti", &BX_CPU_C::MOV32_EdGdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PINSRW_VdqEwIb, "pinsrw", "pinsrw", &BX_CPU_C::PINSRW_VdqEwIbM, &BX_CPU_C::PINSRW_VdqEwIbR, BX_ISA_SSE2, OP_Vdq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_GdUdqIb, "pextrw", "pextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdUdqIb, BX_ISA_SSE2, OP_Gd, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHUFPD_VpdWpdIb, "shufpd", "shufpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHUFPD_VpdWpdIbR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLW_VdqWdq, "psrlw", "psrlw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrlw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLD_VdqWdq, "psrld", "psrld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrld>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLQ_VdqWdq, "psrlq", "psrlq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrlq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDQ_PqQq, "paddq", "paddq", &BX_CPU_C::PADDQ_PqQq, &BX_CPU_C::PADDQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBQ_PqQq, "psubq", "psubq", &BX_CPU_C::PSUBQ_PqQq, &BX_CPU_C::PSUBQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDQ_VdqWdq, "paddq", "paddq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULLW_VdqWdq, "pmullw", "pmullw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmullw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_WqVq, "movq", "movq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_SSE2, OP_Wq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQ2Q_PqUdq, "movdq2q", "movdq2q", &BX_CPU_C::BxError, &BX_CPU_C::MOVDQ2Q_PqUdq, BX_ISA_SSE2, OP_Pq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ2DQ_VdqQq, "movq2dq", "movq2dq", &BX_CPU_C::BxError, &BX_CPU_C::MOVQ2DQ_VdqQq, BX_ISA_SSE2, OP_Vdq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVMSKB_GdUdq, "pmovmskb", "pmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::PMOVMSKB_GdUdq, BX_ISA_SSE2, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBUSB_VdqWdq, "psubusb", "psubusb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubusb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBUSW_VdqWdq, "psubusw", "psubusw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubusw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUB_VdqWdq, "pminub", "pminub", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminub>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDUSB_VdqWdq, "paddusb", "paddusb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddusb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDUSW_VdqWdq, "paddusw", "paddusw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddusw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUB_VdqWdq, "pmaxub", "pmaxub", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxub>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAVGB_VdqWdq, "pavgb", "pavgb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pavgb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAW_VdqWdq, "psraw", "psraw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psraw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAD_VdqWdq, "psrad", "psrad", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrad>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAVGW_VdqWdq, "pavgw", "pavgw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pavgw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHUW_VdqWdq, "pmulhuw", "pmulhuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhuw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHW_VdqWdq, "pmulhw", "pmulhw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPD2DQ_VqWpd, "cvttpd2dq", "cvttpd2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTTPD2DQ_VqWpdR, BX_ISA_SSE2, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2DQ_VqWpd, "cvtpd2dq", "cvtpd2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPD2DQ_VqWpdR, BX_ISA_SSE2, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTDQ2PD_VpdWq, "cvtdq2pd", "cvtdq2pd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTDQ2PD_VpdWqR, BX_ISA_SSE2, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBSB_VdqWdq, "psubsb", "psubsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubsb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBSW_VdqWdq, "psubsw", "psubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSW_VdqWdq, "pminsw", "pminsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSW_VdqWdq, "pmaxsw", "pmaxsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDSB_VdqWdq, "paddsb", "paddsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddsb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDSW_VdqWdq, "paddsw", "paddsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLW_VdqWdq, "psllw", "psllw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psllw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLD_VdqWdq, "pslld", "pslld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_pslld>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLQ_VdqWdq, "psllq", "psllq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psllq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULUDQ_PqQq, "pmuludq", "pmuludq", &BX_CPU_C::PMULUDQ_PqQq, &BX_CPU_C::PMULUDQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULUDQ_VdqWdq, "pmuludq", "pmuludq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmuludq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMADDWD_VdqWdq, "pmaddwd", "pmaddwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaddwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSADBW_VdqWdq, "psadbw", "psadbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psadbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MASKMOVDQU_VdqUdq, "maskmovdqu", "maskmovdqu", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVDQU_VdqUdq, BX_ISA_SSE2, OP_NONE, OP_Vdq, OP_Wdq, OP_sYdq, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBB_VdqWdq, "psubb", "psubb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBW_VdqWdq, "psubw", "psubw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBD_VdqWdq, "psubd", "psubd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBQ_VdqWdq, "psubq", "psubq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDB_VdqWdq, "paddb", "paddb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDW_VdqWdq, "paddw", "paddw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDD_VdqWdq, "paddd", "paddd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLW_UdqIb, "psrlw", "psrlw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrlw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAW_UdqIb, "psraw", "psraw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psraw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLW_UdqIb, "psllw", "psllw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psllw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLD_UdqIb, "psrld", "psrld", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrld>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAD_UdqIb, "psrad", "psrad", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrad>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLD_UdqIb, "pslld", "pslld", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_pslld>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLQ_UdqIb, "psrlq", "psrlq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrlq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLQ_UdqIb, "psllq", "psllq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psllq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLDQ_UdqIb, "psrldq", "psrldq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrldq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLDQ_UdqIb, "pslldq", "pslldq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_pslldq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_LFENCE, "lfence", "lfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE2, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SFENCE, "sfence", "sfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MFENCE, "mfence", "mfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE2, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
// SSE and SSE2

// SSE3
bx_define_opcode(BX_IA_MOVDDUP_VpdWq, "movddup", "movddup", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MOVDDUP_VpdWqR, BX_ISA_SSE3, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSLDUP_VpsWps, "movsldup", "movsldup", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MOVSLDUP_VpsWpsR, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSHDUP_VpsWps, "movshdup", "movshdup", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MOVSHDUP_VpsWpsR, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HADDPD_VpdWpd, "haddpd", "haddpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_haddpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HADDPS_VpsWps, "haddps", "haddps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_haddps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HSUBPD_VpdWpd, "hsubpd", "hsubpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_hsubpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HSUBPS_VpsWps, "hsubps", "hsubps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_hsubps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSUBPD_VpdWpd, "addsubpd", "addsubpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addsubpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSUBPS_VpsWps, "addsubps", "addsubps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addsubps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_LDDQU_VdqMdq, "lddqu", "lddqu", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_SSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE3

#if BX_CPU_LEVEL >= 6
// SSSE3
bx_define_opcode(BX_IA_PSHUFB_PqQq, "pshufb", "pshufb", &BX_CPU_C::PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDW_PqQq, "phaddw", "phaddw", &BX_CPU_C::PHADDW_PqQq, &BX_CPU_C::PHADDW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDD_PqQq, "phaddd", "phaddd", &BX_CPU_C::PHADDD_PqQq, &BX_CPU_C::PHADDD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDSW_PqQq, "phaddsw", "phaddsw", &BX_CPU_C::PHADDSW_PqQq, &BX_CPU_C::PHADDSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMADDUBSW_PqQq, "pmaddubsw", "pmaddubsw", &BX_CPU_C::PMADDUBSW_PqQq, &BX_CPU_C::PMADDUBSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBSW_PqQq, "phsubsw", "phsubsw", &BX_CPU_C::PHSUBSW_PqQq, &BX_CPU_C::PHSUBSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBW_PqQq, "phsubw", "phsubw", &BX_CPU_C::PHSUBW_PqQq, &BX_CPU_C::PHSUBW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBD_PqQq, "phsubd", "phsubd", &BX_CPU_C::PHSUBD_PqQq, &BX_CPU_C::PHSUBD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGNB_PqQq, "psignb", "psignb", &BX_CPU_C::PSIGNB_PqQq, &BX_CPU_C::PSIGNB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGNW_PqQq, "psignw", "psignw", &BX_CPU_C::PSIGNW_PqQq, &BX_CPU_C::PSIGNW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGND_PqQq, "psignd", "psignd", &BX_CPU_C::PSIGND_PqQq, &BX_CPU_C::PSIGND_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHRSW_PqQq, "pmulhrsw", "pmulhrsw", &BX_CPU_C::PMULHRSW_PqQq, &BX_CPU_C::PMULHRSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSB_PqQq, "pabsb", "pabsb", &BX_CPU_C::PABSB_PqQq, &BX_CPU_C::PABSB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSW_PqQq, "pabsw", "pabsw", &BX_CPU_C::PABSW_PqQq, &BX_CPU_C::PABSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSD_PqQq, "pabsd", "pabsd", &BX_CPU_C::PABSD_PqQq, &BX_CPU_C::PABSD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PALIGNR_PqQqIb, "palignr", "palignr", &BX_CPU_C::PALIGNR_PqQqIb, &BX_CPU_C::PALIGNR_PqQqIb, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)

bx_define_opcode(BX_IA_PSHUFB_VdqWdq, "pshufb", "pshufb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFB_VdqWdqR, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDW_VdqWdq, "phaddw", "phaddw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDD_VdqWdq, "phaddd", "phaddd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDSW_VdqWdq, "phaddsw", "phaddsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMADDUBSW_VdqWdq, "pmaddubsw", "pmaddubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaddubsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBSW_VdqWdq, "phsubsw", "phsubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBW_VdqWdq, "phsubw", "phsubw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBD_VdqWdq, "phsubd", "phsubd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGNB_VdqWdq, "psignb", "psignb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignb>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGNW_VdqWdq, "psignw", "psignw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGND_VdqWdq, "psignd", "psignd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHRSW_VdqWdq, "pmulhrsw", "pmulhrsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhrsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSB_VdqWdq, "pabsb", "pabsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsb>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSW_VdqWdq, "pabsw", "pabsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSD_VdqWdq, "pabsd", "pabsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PALIGNR_VdqWdqIb, "palignr", "palignr", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PALIGNR_VdqWdqIbR, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
// SSSE3

// SSE4.1
bx_define_opcode(BX_IA_PBLENDVB_VdqWdq, "pblendvb", "pblendvb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PBLENDVB_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDVPS_VpsWps, "blendvps", "blendvps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDVPS_VpsWpsR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDVPD_VpdWpd, "blendvpd", "blendvpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDVPD_VpdWpdR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBW_VdqWq, "pmovsxbw", "pmovsxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXBW_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBD_VdqWd, "pmovsxbd", "pmovsxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXBD_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBQ_VdqWw, "pmovsxbq", "pmovsxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVSXBQ_VdqWwR, BX_ISA_SSE4_1, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXWD_VdqWq, "pmovsxwd", "pmovsxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXWD_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXWQ_VdqWd, "pmovsxwq", "pmovsxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXWQ_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXDQ_VdqWq, "pmovsxdq", "pmovsxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXDQ_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBW_VdqWq, "pmovzxbw", "pmovzxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXBW_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBD_VdqWd, "pmovzxbd", "pmovzxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXBD_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBQ_VdqWw, "pmovzxbq", "pmovzxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVZXBQ_VdqWwR, BX_ISA_SSE4_1, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXWD_VdqWq, "pmovzxwd", "pmovzxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXWD_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXWQ_VdqWd, "pmovzxwq", "pmovzxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXWQ_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXDQ_VdqWq, "pmovzxdq", "pmovzxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXDQ_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PTEST_VdqWdq, "ptest", "ptest", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PTEST_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULDQ_VdqWdq, "pmuldq", "pmuldq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmuldq>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQQ_VdqWdq, "pcmpeqq", "pcmpeqq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqq>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKUSDW_VdqWdq, "packusdw", "packusdw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packusdw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSB_VdqWdq, "pminsb", "pminsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsb>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSD_VdqWdq, "pminsd", "pminsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsd>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUW_VdqWdq, "pminuw", "pminuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminuw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUD_VdqWdq, "pminud", "pminud", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminud>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSB_VdqWdq, "pmaxsb", "pmaxsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsb>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSD_VdqWdq, "pmaxsd", "pmaxsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsd>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUW_VdqWdq, "pmaxuw", "pmaxuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxuw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUD_VdqWdq, "pmaxud", "pmaxud", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxud>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULLD_VdqWdq, "pmulld", "pmulld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulld>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHMINPOSUW_VdqWdq, "phminposuw", "phminposuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PHMINPOSUW_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDPS_VpsWpsIb, "roundps", "roundps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::ROUNDPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDPD_VpdWpdIb, "roundpd", "roundpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::ROUNDPD_VpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDSS_VssWssIb, "roundss", "roundss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::ROUNDSS_VssWssIbR, BX_ISA_SSE4_1, OP_Vss, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDSD_VsdWsdIb, "roundsd", "roundsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::ROUNDSD_VsdWsdIbR, BX_ISA_SSE4_1, OP_Vsd, OP_Wsd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDPS_VpsWpsIb, "blendps", "blendps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDPD_VpdWpdIb, "blendpd", "blendpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDPD_VpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PBLENDW_VdqWdqIb, "pblendw", "pblendw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PBLENDW_VdqWdqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRB_EdVdqIbR, "pextrb", "pextrb", NULL, &BX_CPU_C::PEXTRB_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRB_MbVdqIbM, "pextrb", "pextrb", &BX_CPU_C::PEXTRB_MbVdqIbM, NULL, BX_ISA_SSE4_1, OP_Mb, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_EdVdqIbR, "pextrw", "pextrw", NULL, &BX_CPU_C::PEXTRW_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_MwVdqIbM, "pextrw", "pextrw", &BX_CPU_C::PEXTRW_MwVdqIbM, NULL, BX_ISA_SSE4_1, OP_Mw, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRD_EdVdqIb, "pextrd", "pextrd", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_PEXTRQ_EqVdqIb, "pextrq", "pextrq", &BX_CPU_C::PEXTRQ_EqVdqIbM, &BX_CPU_C::PEXTRQ_EqVdqIbR, BX_ISA_SSE4_1, OP_Eq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#endif
bx_define_opcode(BX_IA_EXTRACTPS_EdVpsIb, "extractps", "extractps", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRB_VdqEbIb, "pinsrb", "pinsrb", &BX_CPU_C::PINSRB_VdqEbIbM, &BX_CPU_C::PINSRB_VdqEbIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTPS_VpsWssIb, "insertps", "insertps", &BX_CPU_C::INSERTPS_VpsWssIbM, &BX_CPU_C::INSERTPS_VpsWssIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRD_VdqEdIb, "pinsrd", "pinsrd", &BX_CPU_C::PINSRD_VdqEdIbM, &BX_CPU_C::PINSRD_VdqEdIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Ed, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_PINSRQ_VdqEqIb, "pinsrq", "pinsrq", &BX_CPU_C::PINSRQ_VdqEqIbM, &BX_CPU_C::PINSRQ_VdqEqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Eq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#endif
bx_define_opcode(BX_IA_DPPS_VpsWpsIb, "dpps", "dpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::DPPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DPPD_VpdWpdIb, "dppd", "dppd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::DPPD_VpdHpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Vpd, OP_Wpd, OP_Ib, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MPSADBW_VdqWdqIb, "mpsadbw", "mpsadbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MPSADBW_VdqWdqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTDQA_VdqMdq, "movntdqa", "movntdqa", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE4.1

// SSE4.2
bx_define_opcode(BX_IA_CRC32_GdEb, "crc32", "crc32b", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::CRC32_GdEbR, BX_ISA_SSE4_2, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CRC32_GdEw, "crc32", "crc32w", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CRC32_GdEwR, BX_ISA_SSE4_2, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CRC32_GdEd, "crc32", "crc32l", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CRC32_GdEdR, BX_ISA_SSE4_2, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_CRC32_GdEq, "crc32", "crc32q", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CRC32_GdEqR, BX_ISA_SSE4_2, OP_Gd, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_PCMPGTQ_VdqWdq, "pcmpgtq", "pcmpgtq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtq>, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPESTRM_VdqWdqIb, "pcmpestrm", "pcmpestrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRM_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPESTRI_VdqWdqIb, "pcmpestri", "pcmpestri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRI_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPISTRM_VdqWdqIb, "pcmpistrm", "pcmpistrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRM_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPISTRI_VdqWdqIb, "pcmpistri", "pcmpistri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRI_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
// SSE4.2

// MOVBE instruction
bx_define_opcode(BX_IA_MOVBE_GwMw, "movbe", "movbew", &BX_CPU_C::MOVBE_GwMw, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVBE_GdMd, "movbe", "movbel", &BX_CPU_C::MOVBE_GdMd, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVBE_GqMq, "movbe", "movbeq", &BX_CPU_C::MOVBE_GqMq, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_MOVBE_MwGw, "movbe", "movbew", &BX_CPU_C::MOVBE_MwGw, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVBE_MdGd, "movbe", "movbel", &BX_CPU_C::MOVBE_MdGd, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVBE_MqGq, "movbe", "movbeq", &BX_CPU_C::MOVBE_MqGq, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
#endif
// MOVBE instruction

#endif // BX_CPU_LEVEL >= 6

// POPCNT instruction
bx_define_opcode(BX_IA_POPCNT_GwEw, "popcnt", "popcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::POPCNT_GwEwR, BX_ISA_SSE4_2, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPCNT_GdEd, "popcnt", "popcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::POPCNT_GdEdR, BX_ISA_SSE4_2, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_POPCNT_GqEq, "popcnt", "popcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::POPCNT_GqEqR, BX_ISA_SSE4_2, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
// POPCNT instruction

// XSAVE extensions
bx_define_opcode(BX_IA_XRSTOR, "xrstor", "xrstor", &BX_CPU_C::XRSTOR, &BX_CPU_C::BxError, BX_ISA_XSAVE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVE, "xsave", "xsave", &BX_CPU_C::XSAVE, &BX_CPU_C::BxError, BX_ISA_XSAVE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVEC, "xsavec", "xsavec", &BX_CPU_C::XSAVEC, &BX_CPU_C::BxError, BX_ISA_XSAVEC, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSETBV, "xsetbv", "xsetbv", &BX_CPU_C::BxError, &BX_CPU_C::XSETBV, BX_ISA_XSAVE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_XGETBV, "xgetbv", "xgetbv", &BX_CPU_C::BxError, &BX_CPU_C::XGETBV, BX_ISA_XSAVE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVEOPT, "xsaveopt", "xsaveopt", &BX_CPU_C::XSAVE, &BX_CPU_C::BxError, BX_ISA_XSAVEOPT, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVES, "xsaves", "xsaves", &BX_CPU_C::XSAVEC, &BX_CPU_C::BxError, BX_ISA_XSAVES, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XRSTORS, "xrstors", "xrstors", &BX_CPU_C::XRSTOR, &BX_CPU_C::BxError, BX_ISA_XSAVES, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)

#if BX_CPU_LEVEL >= 6

// AES instructions
bx_define_opcode(BX_IA_AESIMC_VdqWdq, "aesimc", "aesimc", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESIMC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESKEYGENASSIST_VdqWdqIb, "aeskeygenassist", "aeskeygenassist", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESENC_VdqWdq, "aesenc", "aesenc", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESENC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESENCLAST_VdqWdq, "aesenclast", "aesenclast", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESENCLAST_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESDEC_VdqWdq, "aesdec", "aesdec", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESDEC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESDECLAST_VdqWdq, "aesdeclast", "aesdeclast", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESDECLAST_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCLMULQDQ_VdqWdqIb, "pclmulqdq", "pclmulqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PCLMULQDQ_VdqWdqIbR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)

// SHA instructions
bx_define_opcode(BX_IA_SHA1NEXTE_VdqWdq, "sha1nexte", "sha1nexte", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1NEXTE_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1MSG1_VdqWdq, "sha1msg1", "sha1msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1MSG1_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1MSG2_VdqWdq, "sha1msg2", "sha1msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1MSG2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256RNDS2_VdqWdq, "sha256rnds2", "sha256rnds2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256RNDS2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256MSG1_VdqWdq, "sha256msg1", "sha256msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256MSG1_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256MSG2_VdqWdq, "sha256msg2", "sha256msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256MSG2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1RNDS4_VdqWdqIb, "sha1rnds4", "sha1rnds4", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1RNDS4_VdqWdqIbR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)

// GFNI instructions
bx_define_opcode(BX_IA_GF2P8AFFINEQB_VdqWdqIb, "gf2p8affineqb", "gf2p8affineqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8AFFINEQB_VdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_GF2P8AFFINEINVQB_VdqWdqIb, "gf2p8affineinvqb", "gf2p8affineinvqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8AFFINEINVQB_VdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_GF2P8MULB_VdqWdq, "gf2p8mulb", "gf2p8mulb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8MULB_VdqWdqR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)

#endif

#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_LAHF_LM, "lahf", "lahf", NULL, &BX_CPU_C::LAHF, BX_ISA_LM_LAHF_SAHF, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAHF_LM, "sahf", "sahf", NULL, &BX_CPU_C::SAHF, BX_ISA_LM_LAHF_SAHF, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SYSCALL, "syscall", "syscall", NULL, &BX_CPU_C::SYSCALL, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSRET, "sysret", "sysret", NULL, &BX_CPU_C::SYSRET, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_XOR_EqGq_ZERO_IDIOM, "xor", "xorq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GqEq_ZERO_IDIOM, "xor", "xorq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EqGq_ZERO_IDIOM, "sub", "subq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GqEq_ZERO_IDIOM, "sub", "subq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_GqEq, "add", "addq", &BX_CPU_C::ADD_GqEqM, &BX_CPU_C::ADD_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GqEq, "or", "orq", &BX_CPU_C::OR_GqEqM, &BX_CPU_C::OR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_GqEq, "adc", "adcq", &BX_CPU_C::ADC_GqEqM, &BX_CPU_C::ADC_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GqEq, "sbb", "sbbq", &BX_CPU_C::SBB_GqEqM, &BX_CPU_C::SBB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GqEq, "and", "andq", &BX_CPU_C::AND_GqEqM, &BX_CPU_C::AND_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GqEq, "sub", "subq", &BX_CPU_C::SUB_GqEqM, &BX_CPU_C::SUB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GqEq, "xor", "xorq", &BX_CPU_C::XOR_GqEqM, &BX_CPU_C::XOR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GqEq, "cmp", "cmpq", &BX_CPU_C::CMP_GqEqM, &BX_CPU_C::CMP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqGq, "add", "addq", &BX_CPU_C::ADD_EqGqM, &BX_CPU_C::ADD_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqGq, "or", "orq", &BX_CPU_C::OR_EqGqM, &BX_CPU_C::OR_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqGq, "adc", "adcq", &BX_CPU_C::ADC_EqGqM, &BX_CPU_C::ADC_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqGq, "sbb", "sbbq", &BX_CPU_C::SBB_EqGqM, &BX_CPU_C::SBB_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqGq, "and", "andq", &BX_CPU_C::AND_EqGqM, &BX_CPU_C::AND_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqGq, "sub", "subq", &BX_CPU_C::SUB_EqGqM, &BX_CPU_C::SUB_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqGq, "xor", "xorq", &BX_CPU_C::XOR_EqGqM, &BX_CPU_C::XOR_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqGq, "test", "testq", &BX_CPU_C::TEST_EqGqM, &BX_CPU_C::TEST_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqGq, "cmp", "cmpq", &BX_CPU_C::CMP_EqGqM, &BX_CPU_C::CMP_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_RAXId, "add", "addq", NULL, &BX_CPU_C::ADD_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_RAXId, "or", "orq", NULL, &BX_CPU_C::OR_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_RAXId, "adc", "adcq", NULL, &BX_CPU_C::ADC_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_RAXId, "sbb", "sbbq", NULL, &BX_CPU_C::SBB_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_RAXId, "and", "andq", NULL, &BX_CPU_C::AND_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_RAXId, "sub", "subq", NULL, &BX_CPU_C::SUB_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_RAXId, "xor", "xorq", NULL, &BX_CPU_C::XOR_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_RAXId, "test", "testq", NULL, &BX_CPU_C::TEST_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_RAXId, "cmp", "cmpq", NULL, &BX_CPU_C::CMP_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqId, "add", "addq", &BX_CPU_C::ADD_EqIdM, &BX_CPU_C::ADD_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqId, "or", "orq", &BX_CPU_C::OR_EqIdM, &BX_CPU_C::OR_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqId, "adc", "adcq", &BX_CPU_C::ADC_EqIdM, &BX_CPU_C::ADC_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqId, "sbb", "sbbq", &BX_CPU_C::SBB_EqIdM, &BX_CPU_C::SBB_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqId, "and", "andq", &BX_CPU_C::AND_EqIdM, &BX_CPU_C::AND_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqId, "sub", "subq", &BX_CPU_C::SUB_EqIdM, &BX_CPU_C::SUB_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqId, "xor", "xorq", &BX_CPU_C::XOR_EqIdM, &BX_CPU_C::XOR_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqId, "test", "testq", &BX_CPU_C::TEST_EqIdM, &BX_CPU_C::TEST_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqId, "cmp", "cmpq", &BX_CPU_C::CMP_EqIdM, &BX_CPU_C::CMP_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqsIb, "add", "addq", &BX_CPU_C::ADD_EqIdM, &BX_CPU_C::ADD_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqsIb, "or", "orq", &BX_CPU_C::OR_EqIdM, &BX_CPU_C::OR_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqsIb, "adc", "adcq", &BX_CPU_C::ADC_EqIdM, &BX_CPU_C::ADC_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqsIb, "sbb", "sbbq", &BX_CPU_C::SBB_EqIdM, &BX_CPU_C::SBB_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqsIb, "and", "andq", &BX_CPU_C::AND_EqIdM, &BX_CPU_C::AND_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqsIb, "sub", "subq", &BX_CPU_C::SUB_EqIdM, &BX_CPU_C::SUB_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqsIb, "xor", "xorq", &BX_CPU_C::XOR_EqIdM, &BX_CPU_C::XOR_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqsIb, "test", "testq", &BX_CPU_C::TEST_EqIdM, &BX_CPU_C::TEST_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqsIb, "cmp", "cmpq", &BX_CPU_C::CMP_EqIdM, &BX_CPU_C::CMP_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XCHG_EqGq, "xchg", "xchgq", &BX_CPU_C::XCHG_EqGqM, &BX_CPU_C::XCHG_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_RRXRAX, "xchg", "xchgq", NULL, &BX_CPU_C::XCHG_EqGqR, 0, OP_Eq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GqM, "lea", "leaq", &BX_CPU_C::LEA_GqM, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op64_GdEd, "mov", "movq", &BX_CPU_C::MOV64_GdEdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op64_EdGd, "mov", "movq", &BX_CPU_C::MOV64_EdGdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GqEq, "mov", "movq", &BX_CPU_C::MOV_GqEqM, &BX_CPU_C::MOV_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EqGq, "mov", "movq", &BX_CPU_C::MOV_EqGqM, &BX_CPU_C::MOV_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EqId, "mov", "movq", &BX_CPU_C::MOV_EqIdM, &BX_CPU_C::MOV_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOV_RAXOq, "mov", "movq", NULL, &BX_CPU_C::MOV_RAXOq, 0, OP_RAXReg, OP_Oq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqRAX, "mov", "movq", NULL, &BX_CPU_C::MOV_OqRAX, 0, OP_Oq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EAXOq, "mov", "movl", NULL, &BX_CPU_C::MOV_EAXOq, 0, OP_EAXReg, OP_Od, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqEAX, "mov", "movl", NULL, &BX_CPU_C::MOV_OqEAX, 0, OP_Od, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_AXOq, "mov", "movw", NULL, &BX_CPU_C::MOV_AXOq, 0, OP_AXReg, OP_Ow, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqAX, "mov", "movw", NULL, &BX_CPU_C::MOV_OqAX, 0, OP_Ow, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_ALOq, "mov", "movb", NULL, &BX_CPU_C::MOV_ALOq, 0, OP_ALReg, OP_Ob, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqAL, "mov", "movb", NULL, &BX_CPU_C::MOV_OqAL, 0, OP_Ob, OP_ALReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_REP_MOVSQ_YqXq, "movsq", "movsq", NULL, &BX_CPU_C::REP_MOVSQ_YqXq, 0, OP_Yq, OP_Xq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSQ_XqYq, "cmpsq", "cmpsq", NULL, &BX_CPU_C::REP_CMPSQ_XqYq, 0, OP_Xq, OP_Yq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSQ_YqRAX, "stosq", "stosq", NULL, &BX_CPU_C::REP_STOSQ_YqRAX, 0, OP_Yq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSQ_RAXXq, "lodsq", "lodsq", NULL, &BX_CPU_C::REP_LODSQ_RAXXq, 0, OP_RAXReg, OP_Xq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASQ_RAXYq, "scasq", "scasq", NULL, &BX_CPU_C::REP_SCASQ_RAXYq, 0, OP_RAXReg, OP_Yq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CALL_Jq, "call", "call", NULL, &BX_CPU_C::CALL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jq, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbq, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JO_Jq, "jo", "jo", NULL, &BX_CPU_C::JO_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jq, "jno", "jno", NULL, &BX_CPU_C::JNO_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JB_Jq, "jb", "jb", NULL, &BX_CPU_C::JB_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jq, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jq, "jz", "jz", NULL, &BX_CPU_C::JZ_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jq, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jq, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jq, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jq, "js", "js", NULL, &BX_CPU_C::JS_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jq, "jns", "jns", NULL, &BX_CPU_C::JNS_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jq, "jp", "jp", NULL, &BX_CPU_C::JP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jq, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jq, "jl", "jl", NULL, &BX_CPU_C::JL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jq, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jq, "jle", "jle", NULL, &BX_CPU_C::JLE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jq, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JO_Jbq, "jo", "jo", NULL, &BX_CPU_C::JO_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbq, "jno", "jno", NULL, &BX_CPU_C::JNO_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JB_Jbq, "jb", "jb", NULL, &BX_CPU_C::JB_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbq, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbq, "jz", "jz", NULL, &BX_CPU_C::JZ_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbq, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbq, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbq, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbq, "js", "js", NULL, &BX_CPU_C::JS_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbq, "jns", "jns", NULL, &BX_CPU_C::JNS_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbq, "jp", "jp", NULL, &BX_CPU_C::JP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbq, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbq, "jl", "jl", NULL, &BX_CPU_C::JL_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbq, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbq, "jle", "jle", NULL, &BX_CPU_C::JLE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbq, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ENTER_Op64_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER64_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op64, "leave", "leave", NULL, &BX_CPU_C::LEAVE64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IRET_Op64, "iret", "iretq", NULL, &BX_CPU_C::IRET64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_SHLD_EqGq, "shld", "shldq", &BX_CPU_C::SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqR, 0, OP_Eq, OP_Gq, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EqGqIb, "shld", "shldq", &BX_CPU_C::SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqR, 0, OP_Eq, OP_Gq, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EqGq, "shrd", "shrdq", &BX_CPU_C::SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqR, 0, OP_Eq, OP_Gq, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EqGqIb, "shrd", "shrdq", &BX_CPU_C::SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqR, 0, OP_Eq, OP_Gq, OP_Ib, OP_NONE, 0)

bx_define_opcode(BX_IA_IMUL_GqEq, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GqEqId, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR, 0, OP_Gq, OP_Eq, OP_sId, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GqEqsIb, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR, 0, OP_Gq, OP_Eq, OP_sIbd, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GqEb, "movzx", "movbq", &BX_CPU_C::MOVZX_GqEbM, &BX_CPU_C::MOVZX_GqEbR, 0, OP_Gq, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GqEw, "movzx", "movwq", &BX_CPU_C::MOVZX_GqEwM, &BX_CPU_C::MOVZX_GqEwR, 0, OP_Gq, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GqEb, "movsx", "movbq", &BX_CPU_C::MOVSX_GqEbM, &BX_CPU_C::MOVSX_GqEbR, 0, OP_Gq, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GqEw, "movsx", "movwq", &BX_CPU_C::MOVSX_GqEwM, &BX_CPU_C::MOVSX_GqEwR, 0, OP_Gq, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSXD_GqEd, "movsxd", "movslq", &BX_CPU_C::MOVSX_GqEdM, &BX_CPU_C::MOVSX_GqEdR, 0, OP_Gq, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_RRX, "bswap", "bswapq", NULL, &BX_CPU_C::BSWAP_RRX, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BSF_GqEq, "bsf", "bsfq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSF_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GqEq, "bsr", "bsrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BT_EqGq, "bt", "btq", &BX_CPU_C::BT_EqGqM, &BX_CPU_C::BT_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BTS_EqGq, "bts", "btsq", &BX_CPU_C::BTS_EqGqM, &BX_CPU_C::BTS_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EqGq, "btr", "btrq", &BX_CPU_C::BTR_EqGqM, &BX_CPU_C::BTR_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTC_EqGq, "btc", "btcq", &BX_CPU_C::BTC_EqGqM, &BX_CPU_C::BTC_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BT_EqIb, "bt", "btq", &BX_CPU_C::BT_EqIbM, &BX_CPU_C::BT_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BTS_EqIb, "bts", "btsq", &BX_CPU_C::BTS_EqIbM, &BX_CPU_C::BTS_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EqIb, "btr", "btrq", &BX_CPU_C::BTR_EqIbM, &BX_CPU_C::BTR_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTC_EqIb, "btc", "btcq", &BX_CPU_C::BTC_EqIbM, &BX_CPU_C::BTC_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_NOT_Eq, "not", "notq", &BX_CPU_C::NOT_EqM, &BX_CPU_C::NOT_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Eq, "neg", "negq", &BX_CPU_C::NEG_EqM, &BX_CPU_C::NEG_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ROL_Eq, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Eq, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Eq, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Eq, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Eq, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Eq, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Eq, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EqIb, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EqIb, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EqIb, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EqIb, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EqIb, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EqIb, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EqIb, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EqI1, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EqI1, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EqI1, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EqI1, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EqI1, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EqI1, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EqI1, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MUL_RAXEq, "mul", "mulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MUL_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_RAXEq, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_RAXEq, "div", "divq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::DIV_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_RAXEq, "idiv", "idivq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IDIV_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_INC_Eq, "inc", "incq", &BX_CPU_C::INC_EqM, &BX_CPU_C::INC_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Eq, "dec", "decq", &BX_CPU_C::DEC_EqM, &BX_CPU_C::DEC_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_CALL_Eq, "call", "call", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CALL_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op64_Ep, "callf", "lcall", &BX_CPU_C::CALL64_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Eq, "jmp", "jmp", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::JMP_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op64_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP64_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_PUSHF_Fq, "pushf", "pushfq", NULL, &BX_CPU_C::PUSHF_Fq, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPF_Fq, "popf", "popfq", NULL, &BX_CPU_C::POPF_Fq, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CMPXCHG_EqGq, "cmpxchg", "cmpxchgq", &BX_CPU_C::CMPXCHG_EqGqM, &BX_CPU_C::CMPXCHG_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CDQE, "cdqe", "cltq", NULL, &BX_CPU_C::CDQE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CQO, "cqo", "cqto", NULL, &BX_CPU_C::CQO, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XADD_EqGq, "xadd", "xaddq", &BX_CPU_C::XADD_EqGqM, &BX_CPU_C::XADD_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_RET_Op64_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear64_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op64, "ret", "ret", NULL, &BX_CPU_C::RETnear64_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op64_Iw, "retf", "lretq", NULL, &BX_CPU_C::RETfar64_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op64, "retf", "lretq", NULL, &BX_CPU_C::RETfar64_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CMOVO_GqEq, "cmovo", "cmovoq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVO_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GqEq, "cmovno", "cmovnoq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNO_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVB_GqEq, "cmovb", "cmovbq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GqEq, "cmovnb", "cmovnbq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GqEq, "cmovz", "cmovzq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVZ_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GqEq, "cmovnz", "cmovnzq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNZ_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GqEq, "cmovbe", "cmovbeq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVBE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GqEq, "cmovnbe", "cmovnbeq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNBE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GqEq, "cmovs", "cmovsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVS_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GqEq, "cmovns", "cmovnsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNS_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GqEq, "cmovp", "cmovpq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GqEq, "cmovnp", "cmovnpq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GqEq, "cmovl", "cmovlq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GqEq, "cmovnl", "cmovnlq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GqEq, "cmovle", "cmovleq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVLE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GqEq, "cmovnle", "cmovnleq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNLE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_PUSH_Eq, "push", "pushq", &BX_CPU_C::PUSH_EqM, &BX_CPU_C::PUSH_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Eq, "pop", "popq", &BX_CPU_C::POP_EqM, &BX_CPU_C::POP_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_Id, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Id, 0, OP_sId, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_sIb, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Id, 0, OP_sIbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_Sw, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Op64_Sw, "pop", "popq", NULL, &BX_CPU_C::POP64_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)

// IDT/GDT/LDTR/TR access - keep NNN for VMX
bx_define_opcode(BX_IA_SGDT_Op64_Ms, "sgdt", "sgdt", &BX_CPU_C::SGDT64_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SIDT_Op64_Ms, "sidt", "sidt", &BX_CPU_C::SIDT64_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGDT_Op64_Ms, "lgdt", "lgdt", &BX_CPU_C::LGDT64_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LIDT_Op64_Ms, "lidt", "lidt", &BX_CPU_C::LIDT64_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
// IDT/GDT/LDTR/TR access - keep NNN for VMX

bx_define_opcode(BX_IA_MOV_RRXIq, "mov", "movq", NULL, &BX_CPU_C::MOV_RRXIq, 0, OP_Eq, OP_Iq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LSS_GqMp, "lss", "lssq", &BX_CPU_C::LSS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GqMp, "lfs", "lfsq", &BX_CPU_C::LFS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GqMp, "lgs", "lgsq", &BX_CPU_C::LGS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPXCHG16B, "cmpxchg16b", "cmpxchg16b", &BX_CPU_C::CMPXCHG16B, &BX_CPU_C::BxError, BX_ISA_CMPXCHG16B, OP_Mdq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_LOOPNE_Jbq, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbq, "loope", "loope", NULL, &BX_CPU_C::LOOPE64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbq, "loop", "loop", NULL, &BX_CPU_C::LOOP64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JRCXZ_Jbq, "jrcxz", "jrcxz", NULL, &BX_CPU_C::JRCXZ_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MOVQ_EqVq, "movq", "movq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_EqVqR, 0, OP_Eq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_PqEq, "movq", "movq", &BX_CPU_C::MOVQ_PqQqM, &BX_CPU_C::MOVQ_PqEqR, 0, OP_Pq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_VdqEq, "movq", "movq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VdqEqR, 0, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SS_VssEq, "cvtsi2ss", "cvtsi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CVTSI2SS_VssEqR, 0, OP_Vss, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SD_VsdEq, "cvtsi2sd", "cvtsi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CVTSI2SD_VsdEqR, 0, OP_Vsd, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSS2SI_GqWss, "cvttss2si", "cvttss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GqWssR, 0, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSD2SI_GqWsd, "cvttsd2si", "cvttsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GqWsdR, 0, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SI_GqWss, "cvtss2si", "cvtss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GqWssR, 0, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SI_GqWsd, "cvtsd2si", "cvtsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GqWsdR, 0, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTI_Op64_MdGd, "movnti", "movnti", &BX_CPU_C::MOV64_EdGdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVNTI_MqGq, "movnti", "movntiq", &BX_CPU_C::MOV_EqGqM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR0Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR0Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR2Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR2Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR3Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR3Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR4Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR4Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RqCR0, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR0, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR2, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR2, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR3, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR3, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR4, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR4, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_DqRq, "mov", "movq", NULL, &BX_CPU_C::MOV_DqRq, 0, OP_Dq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RqDq, "mov", "movq", NULL, &BX_CPU_C::MOV_RqDq, 0, OP_Eq, OP_Dq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SWAPGS, "swapgs", "swapgs", &BX_CPU_C::BxError, &BX_CPU_C::SWAPGS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDFSBASE_Ed, "rdfsbase", "rdfsbasel", &BX_CPU_C::BxError, &BX_CPU_C::RDFSBASE_Ed, BX_ISA_FSGSBASE, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDGSBASE_Ed, "rdgsbase", "rdgsbasel", &BX_CPU_C::BxError, &BX_CPU_C::RDGSBASE_Ed, BX_ISA_FSGSBASE, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDFSBASE_Eq, "rdfsbase", "rdfsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::RDFSBASE_Eq, BX_ISA_FSGSBASE, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDGSBASE_Eq, "rdgsbase", "rdgsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::RDGSBASE_Eq, BX_ISA_FSGSBASE, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRFSBASE_Ed, "wrfsbase", "wrfsbasel", &BX_CPU_C::BxError, &BX_CPU_C::WRFSBASE_Ed, BX_ISA_FSGSBASE, OP_NONE, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRGSBASE_Ed, "wrgsbase", "wrgsbasel", &BX_CPU_C::BxError, &BX_CPU_C::WRGSBASE_Ed, BX_ISA_FSGSBASE, OP_NONE, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRFSBASE_Eq, "wrfsbase", "wrfsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::WRFSBASE_Eq, BX_ISA_FSGSBASE, OP_NONE, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRGSBASE_Eq, "wrgsbase", "wrgsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::WRGSBASE_Eq, BX_ISA_FSGSBASE, OP_NONE, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_RDTSCP, "rdtscp", "rdtscp", &BX_CPU_C::BxError, &BX_CPU_C::RDTSCP, BX_ISA_RDTSCP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

// VMX
bx_define_opcode(BX_IA_VMXON_Mq, "vmxon", "vmxon", &BX_CPU_C::VMXON, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMXOFF, "vmxoff", "vmxoff", &BX_CPU_C::BxError, &BX_CPU_C::VMXOFF, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMCALL, "vmcall", "vmcall", &BX_CPU_C::BxError, &BX_CPU_C::VMCALL, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMLAUNCH, "vmlaunch", "vmlaunch", &BX_CPU_C::BxError, &BX_CPU_C::VMLAUNCH, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMRESUME, "vmresume", "vmresume", &BX_CPU_C::BxError, &BX_CPU_C::VMLAUNCH, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMCLEAR_Mq, "vmclear", "vmclear", &BX_CPU_C::VMCLEAR, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMPTRLD_Mq, "vmptrld", "vmptrld", &BX_CPU_C::VMPTRLD, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMPTRST_Mq, "vmptrst", "vmptrst", &BX_CPU_C::VMPTRST, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMREAD_EdGd, "vmread", "vmreadl", &BX_CPU_C::VMREAD_EdGd, &BX_CPU_C::VMREAD_EdGd, BX_ISA_VMX, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMWRITE_GdEd, "vmwrite", "vmwritel", &BX_CPU_C::VMWRITE_GdEd, &BX_CPU_C::VMWRITE_GdEd, BX_ISA_VMX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_VMREAD_EqGq, "vmread", "vmreadq", &BX_CPU_C::VMREAD_EqGq, &BX_CPU_C::VMREAD_EqGq, BX_ISA_VMX, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMWRITE_GqEq, "vmwrite", "vmwriteq", &BX_CPU_C::VMWRITE_GqEq, &BX_CPU_C::VMWRITE_GqEq, BX_ISA_VMX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
#if BX_CPU_LEVEL >= 6
bx_define_opcode(BX_IA_INVEPT, "invept", "invept", &BX_CPU_C::INVEPT, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INVVPID, "invvpid", "invvpid", &BX_CPU_C::INVVPID, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
#endif
bx_define_opcode(BX_IA_VMFUNC, "vmfunc", "vmfunc", &BX_CPU_C::BxError, &BX_CPU_C::VMFUNC, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// VMX

// SMX
bx_define_opcode(BX_IA_GETSEC, "getsec", "getsec", &BX_CPU_C::GETSEC, &BX_CPU_C::GETSEC, BX_ISA_SMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// SMX

// SVM
#if BX_SUPPORT_SVM
bx_define_opcode(BX_IA_VMRUN, "vmrun", "vmrun", &BX_CPU_C::BxError, &BX_CPU_C::VMRUN, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMMCALL, "vmmcall", "vmmcall", &BX_CPU_C::BxError, &BX_CPU_C::VMMCALL, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMLOAD, "vmload", "vmload", &BX_CPU_C::BxError, &BX_CPU_C::VMLOAD, BX_ISA_SVM, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMSAVE, "vmsave", "vmsave", &BX_CPU_C::BxError, &BX_CPU_C::VMSAVE, BX_ISA_SVM, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STGI, "stgi", "stgi", &BX_CPU_C::BxError, &BX_CPU_C::STGI, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLGI, "clgi", "clgi", &BX_CPU_C::BxError, &BX_CPU_C::CLGI, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SKINIT, "skinit", "skinit", &BX_CPU_C::BxError, &BX_CPU_C::SKINIT, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INVLPGA, "invlpga", "invlpga", &BX_CPU_C::BxError, &BX_CPU_C::INVLPGA, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif
// SVM

// CET
#if BX_SUPPORT_CET
bx_define_opcode(BX_IA_INCSSPD, "incsspd", "incsspd", &BX_CPU_C::BxError, &BX_CPU_C::INCSSPD, BX_ISA_CET, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_INCSSPQ, "incsspq", "incsspq", &BX_CPU_C::BxError, &BX_CPU_C::INCSSPQ, BX_ISA_CET, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSSPD, "rdsspd", "rdsspd", &BX_CPU_C::BxError, &BX_CPU_C::RDSSPD, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSSPQ, "rdsspq", "rdsspq", &BX_CPU_C::BxError, &BX_CPU_C::RDSSPQ, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAVEPREVSSP, "saveprevssp", "saveprevssp", &BX_CPU_C::BxError, &BX_CPU_C::SAVEPREVSSP, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RSTORSSP, "rstorssp", "rstorssp", &BX_CPU_C::RSTORSSP, &BX_CPU_C::BxError, BX_ISA_CET, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRSSD, "wrssd", "wrssd", &BX_CPU_C::WRSSD, &BX_CPU_C::BxError, BX_ISA_CET, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRUSSD, "wrussd", "wrussd", &BX_CPU_C::WRUSSD, &BX_CPU_C::BxError, BX_ISA_CET, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRSSQ, "wrssq", "wrssq", &BX_CPU_C::WRSSQ, &BX_CPU_C::BxError, BX_ISA_CET, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRUSSQ, "wrussq", "wrussq", &BX_CPU_C::WRUSSQ, &BX_CPU_C::BxError, BX_ISA_CET, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETSSBSY, "setssbsy", "setssbsy", &BX_CPU_C::BxError, &BX_CPU_C::SETSSBSY, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLRSSBSY, "clrssbsy", "clrssbsy", &BX_CPU_C::CLRSSBSY, &BX_CPU_C::BxError, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENDBRANCH32, "endbranch32", "endbranch32", &BX_CPU_C::BxError, &BX_CPU_C::ENDBRANCH32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENDBRANCH64, "endbranch64", "endbranch64", &BX_CPU_C::BxError, &BX_CPU_C::ENDBRANCH64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#endif
// CET

#if BX_CPU_LEVEL >= 6
bx_define_opcode(BX_IA_INVPCID, "invpcid", "invpcid", &BX_CPU_C::INVPCID, &BX_CPU_C::BxError, BX_ISA_INVPCID, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_PKEYS
bx_define_opcode(BX_IA_RDPKRU, "rdpkru", "rdpkru", &BX_CPU_C::BxError, &BX_CPU_C::RDPKRU, BX_ISA_PKU, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRPKRU, "wrpkru", "wrpkru", &BX_CPU_C::BxError, &BX_CPU_C::WRPKRU, BX_ISA_PKU, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_UINTR && BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_CLUI, "clui", "clui", NULL, &BX_CPU_C::CLUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STUI, "stui", "stui", NULL, &BX_CPU_C::STUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_TESTUI, "testui", "testui", NULL, &BX_CPU_C::TESTUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UIRET, "uiret", "uiret", NULL, &BX_CPU_C::UIRET, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SENDUIPI_Gq, "senduipi", "senduipi", NULL, &BX_CPU_C::SENDUIPI_Gq, BX_ISA_UINTR, OP_Gq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

bx_define_opcode(BX_IA_RDPID_Ed, "rdpid", "rdpid", NULL, &BX_CPU_C::RDPID_Ed, BX_ISA_RDPID, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SERIALIZE, "serialize", "serialize", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SERIALIZE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRMSRNS, "wrmsrns", "wrmsrns", NULL, &BX_CPU_C::WRMSR, BX_ISA_WRMSRNS, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDMSRLIST, "rdmsrlist", "rdmsrlist", NULL, &BX_CPU_C::RDMSRLIST, BX_ISA_MSRLIST, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_WRMSRLIST, "wrmsrlist", "wrmsrlist", NULL, &BX_CPU_C::WRMSRLIST, BX_ISA_MSRLIST, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
// AVX1/AVX2
bx_define_opcode(BX_IA_VZEROUPPER, "vzeroupper", "vzeroupper", NULL, &BX_CPU_C::VZEROUPPER, BX_ISA_AVX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VZEROALL, "vzeroall", "vzeroall", NULL, &BX_CPU_C::VZEROALL, BX_ISA_AVX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VLDMXCSR, "vldmxcsr", "vldmxcsr", &BX_CPU_C::LDMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSTMXCSR, "vstmxcsr", "vstmxcsr", &BX_CPU_C::STMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVDQA_VdqWdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVDQU_VdqWdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVSD_VsdHpdWsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_VssHpsWss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSD_WsdHpdVsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Wsd, OP_Hpd, OP_Vsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_WssHpsVss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX, OP_Wss, OP_Hps, OP_Vss, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVSD_VsdWsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_VsdWsdM, NULL, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_VssWss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_VssWssM, NULL, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSD_WsdVsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_WsdVsdM, NULL, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_WssVss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_WssVssM, NULL, BX_ISA_AVX, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVLPS_VpsHpsMq, "vmovlps", "vmovlps", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHLPS_VpsHpsWps, "vmovhlps", "vmovhlps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVHLPS_VpsHpsWps, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPS_VpsHpsMq, "vmovhps", "vmovhps", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLHPS_VpsHpsWps, "vmovlhps", "vmovlhps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVLHPS_VpsHpsWps, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPS_MqVps, "vmovlps", "vmovlps", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPS_MqVps, "vmovhps", "vmovhps", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPD_MqVsd, "vmovlpd", "vmovlpd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPD_MqVsd, "vmovhpd", "vmovhpd", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPD_VpdHpdMq, "vmovlpd", "vmovlpd", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPD_VpdHpdMq, "vmovhpd", "vmovhpd", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVDDUP_VpdWpd, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMOVDDUP_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDDUP_VpdWpd, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVDDUP_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVSLDUP_VpsWps, "vmovsldup", "vmovsldup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSLDUP_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVSHDUP_VpsWps, "vmovshdup", "vmovshdup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSHDUP_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VLDDQU_VdqMdq, "vlddqu", "vlddqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVNTDQA_VdqMdq, "vmovntdqa", "vmovntdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTDQA_VdqMdq, "vmovntdqa", "vmovntdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVNTPS_MpsVps, "vmovntps", "vmovntps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTPS_MpsVps, "vmovntps", "vmovntps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVNTPD_MpdVpd, "vmovntpd", "vmovntpd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTPD_MpdVpd, "vmovntpd", "vmovntpd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVNTDQ_MdqVdq, "vmovntdq", "vmovntdq", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTDQ_MdqVdq, "vmovntdq", "vmovntdq", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VUCOMISS_VssWss, "vucomiss", "vucomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::UCOMISS_VssWssR, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCOMISS_VssWss, "vcomiss", "vcomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::COMISS_VssWssR, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUCOMISD_VsdWsd, "vucomisd", "vucomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::UCOMISD_VsdWsdR, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCOMISD_VsdWsd, "vcomisd", "vcomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::COMISD_VsdWsdR, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRSQRTSS_VssHpsWss, "vrsqrtss", "vrsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VRSQRTSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRSQRTPS_VpsWps, "vrsqrtps", "vrsqrtps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VRSQRTPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRCPSS_VssHpsWss, "vrcpss", "vrcpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VRCPSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRCPPS_VpsWps, "vrcpps", "vrcpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VRCPPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDPS_VpsHpsWps, "vandps", "vandps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDPD_VpdHpdWpd, "vandpd", "vandpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDNPS_VpsHpsWps, "vandnps", "vandnps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDNPD_VpdHpdWpd, "vandnpd", "vandnpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VORPS_VpsHpsWps, "vorps", "vorps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VORPD_VpdHpdWpd, "vorpd", "vorpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VXORPS_VpsHpsWps, "vxorps", "vxorps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VXORPD_VpdHpdWpd, "vxorpd", "vxorpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSHUFD_VdqWdqIb, "vpshufd", "vpshufd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFD_VdqWdqIb, "vpshufd", "vpshufd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSHUFHW_VdqWdqIb, "vpshufhw", "vpshufhw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHUFHW_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFHW_VdqWdqIb, "vpshufhw", "vpshufhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFHW_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSHUFLW_VdqWdqIb, "vpshuflw", "vpshuflw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHUFLW_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFLW_VdqWdqIb, "vpshuflw", "vpshuflw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFLW_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VHADDPD_VpdHpdWpd, "vhaddpd", "vhaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_haddpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHADDPS_VpsHpsWps, "vhaddps", "vhaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_haddps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHSUBPD_VpdHpdWpd, "vhsubpd", "vhsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_hsubpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHSUBPS_VpsHpsWps, "vhsubps", "vhsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_hsubps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHUFPS_VpsHpsWpsIb, "vshufps", "vshufps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSHUFPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHUFPD_VpdHpdWpdIb, "vshufpd", "vshufpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSHUFPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSUBPD_VpdHpdWpd, "vaddsubpd", "vaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addsubpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSUBPS_VpsHpsWps, "vaddsubps", "vaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addsubps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDPS_VpsWpsIb, "vroundps", "vroundps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VROUNDPS_VpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDPD_VpdWpdIb, "vroundpd", "vroundpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VROUNDPD_VpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDSD_VsdHpdWsdIb, "vroundsd", "vroundsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VROUNDSD_VsdHpdWsdIbR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDSS_VssHpsWssIb, "vroundss", "vroundss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VROUNDSS_VssHpsWssIbR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDPPS_VpsHpsWpsIb, "vdpps", "vdpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VDPPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDPPD_VpdHpdWpdIb, "vdppd", "vdppd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::DPPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VADDPS_VpsHpsWps, "vaddps", "vaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDPD_VpdHpdWpd, "vaddpd", "vaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSS_VssHpsWss, "vaddss", "vaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VADDSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSD_VsdHpdWsd, "vaddsd", "vaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VADDSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMULPS_VpsHpsWps, "vmulps", "vmulps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULPD_VpdHpdWpd, "vmulpd", "vmulpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULSS_VssHpsWss, "vmulss", "vmulss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMULSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULSD_VsdHpdWsd, "vmulsd", "vmulsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMULSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VSUBPS_VpsHpsWps, "vsubps", "vsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBPD_VpdHpdWpd, "vsubpd", "vsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBSS_VssHpsWss, "vsubss", "vsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSUBSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBSD_VsdHpdWsd, "vsubsd", "vsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSUBSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VDIVPS_VpsHpsWps, "vdivps", "vdivps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVPD_VpdHpdWpd, "vdivpd", "vdivpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVSS_VssHpsWss, "vdivss", "vdivss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VDIVSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVSD_VsdHpdWsd, "vdivsd", "vdivsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VDIVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMAXPS_VpsHpsWps, "vmaxps", "vmaxps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXPD_VpdHpdWpd, "vmaxpd", "vmaxpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXSS_VssHpsWss, "vmaxss", "vmaxss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMAXSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXSD_VsdHpdWsd, "vmaxsd", "vmaxsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMAXSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMINPS_VpsHpsWps, "vminps", "vminps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINPD_VpdHpdWpd, "vminpd", "vminpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINSS_VssHpsWss, "vminss", "vminss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMINSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINSD_VsdHpdWsd, "vminsd", "vminsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMINSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VSQRTPS_VpsWps, "vsqrtps", "vsqrtps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtps>, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTPD_VpdWpd, "vsqrtpd", "vsqrtpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtpd>, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTSS_VssHpsWss, "vsqrtss", "vsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSQRTSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTSD_VsdHpdWsd, "vsqrtsd", "vsqrtsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSQRTSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCMPPS_VpsHpsWpsIb, "vcmpps", "vcmpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCMPPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPPD_VpdHpdWpdIb, "vcmppd", "vcmppd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCMPPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPSS_VssHpsWssIb, "vcmpss", "vcmpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCMPSS_VssHpsWssIbR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPSD_VsdHpdWsdIb, "vcmpsd", "vcmpsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCMPSD_VsdHpdWsdIbR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSRLW_VdqHdqWdq, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLW_VdqHdqWdq, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLD_VdqHdqWdq, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLD_VdqHdqWdq, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLQ_VdqHdqWdq, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLQ_VdqHdqWdq, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAW_VdqHdqWdq, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAW_VdqHdqWdq, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAD_VdqHdqWdq, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrad>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAD_VdqHdqWdq, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrad>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLW_VdqHdqWdq, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLW_VdqHdqWdq, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLD_VdqHdqWdq, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_pslld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLD_VdqHdqWdq, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_pslld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLQ_VdqHdqWdq, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLQ_VdqHdqWdq, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSRLW_UdqIb, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLW_UdqIb, "vpsrlw", "vpsrlw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAW_UdqIb, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAW_UdqIb, "vpsraw", "vpsraw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLW_UdqIb, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLW_UdqIb, "vpsllw", "vpsllw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLD_UdqIb, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrld>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLD_UdqIb, "vpsrld", "vpsrld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrld>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAD_UdqIb, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrad>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAD_UdqIb, "vpsrad", "vpsrad", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrad>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLD_UdqIb, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslld>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLD_UdqIb, "vpslld", "vpslld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslld>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLQ_UdqIb, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLQ_UdqIb, "vpsrlq", "vpsrlq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLQ_UdqIb, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLQ_UdqIb, "vpsllq", "vpsllq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLDQ_UdqIb, "vpsrldq", "vpsrldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrldq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLDQ_UdqIb, "vpsrldq", "vpsrldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrldq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLDQ_UdqIb, "vpslldq", "vpslldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslldq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLDQ_UdqIb, "vpslldq", "vpslldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslldq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMOVMSKB_GdUdq, "vpmovmskb", "vpmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVMSKB_GdUdq, BX_ISA_AVX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVMSKB_GdUdq, "vpmovmskb", "vpmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVMSKB_GdUdq, BX_ISA_AVX2, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVMSKPS_GdUps, "vmovmskps", "vmovmskps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVMSKPS_GdUps, BX_ISA_AVX, OP_Gd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVMSKPD_GdUpd, "vmovmskpd", "vmovmskpd", &BX_CPU_C::BxError, &BX_CPU_C::VMOVMSKPD_GdUpd, BX_ISA_AVX, OP_Gd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKLPD_VpdHpdWpd, "vunpcklpd", "vunpcklpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKHPD_VpdHpdWpd, "vunpckhpd", "vunpckhpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKLPS_VpsHpsWps, "vunpcklps", "vunpcklps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKHPS_VpsHpsWps, "vunpckhps", "vunpckhps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPUNPCKHDQ_VdqHdqWdq, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHDQ_VdqHdqWdq, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLDQ_VdqHdqWdq, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLDQ_VdqHdqWdq, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLBW_VdqHdqWdq, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLBW_VdqHdqWdq, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLWD_VdqHdqWdq, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLWD_VdqHdqWdq, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHBW_VdqHdqWdq, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHBW_VdqHdqWdq, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHWD_VdqHdqWdq, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHWD_VdqHdqWdq, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLQDQ_VdqHdqWdq, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLQDQ_VdqHdqWdq, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHQDQ_VdqHdqWdq, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHQDQ_VdqHdqWdq, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPCMPEQB_VdqHdqWdq, "vpcmpeqb", "vpcmpeqb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQB_VdqHdqWdq, "vpcmpeqb", "vpcmpeqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQW_VdqHdqWdq, "vpcmpeqw", "vpcmpeqw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQW_VdqHdqWdq, "vpcmpeqw", "vpcmpeqw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQD_VdqHdqWdq, "vpcmpeqd", "vpcmpeqd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQD_VdqHdqWdq, "vpcmpeqd", "vpcmpeqd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQQ_VdqHdqWdq, "vpcmpeqq", "vpcmpeqq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQQ_VdqHdqWdq, "vpcmpeqq", "vpcmpeqq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTB_VdqHdqWdq, "vpcmpgtb", "vpcmpgtb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTB_VdqHdqWdq, "vpcmpgtb", "vpcmpgtb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTW_VdqHdqWdq, "vpcmpgtw", "vpcmpgtw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTW_VdqHdqWdq, "vpcmpgtw", "vpcmpgtw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTD_VdqHdqWdq, "vpcmpgtd", "vpcmpgtd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTD_VdqHdqWdq, "vpcmpgtd", "vpcmpgtd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTQ_VdqHdqWdq, "vpcmpgtq", "vpcmpgtq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTQ_VdqHdqWdq, "vpcmpgtq", "vpcmpgtq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSUBSB_VdqHdqWdq, "vpsubsb", "vpsubsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBSB_VdqHdqWdq, "vpsubsb", "vpsubsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBSW_VdqHdqWdq, "vpsubsw", "vpsubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBSW_VdqHdqWdq, "vpsubsw", "vpsubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDSB_VdqHdqWdq, "vpaddsb", "vpaddsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDSB_VdqHdqWdq, "vpaddsb", "vpaddsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDSW_VdqHdqWdq, "vpaddsw", "vpaddsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDSW_VdqHdqWdq, "vpaddsw", "vpaddsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBUSB_VdqHdqWdq, "vpsubusb", "vpsubusb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBUSB_VdqHdqWdq, "vpsubusb", "vpsubusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBUSW_VdqHdqWdq, "vpsubusw", "vpsubusw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBUSW_VdqHdqWdq, "vpsubusw", "vpsubusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDUSB_VdqHdqWdq, "vpaddusb", "vpaddusb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDUSB_VdqHdqWdq, "vpaddusb", "vpaddusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDUSW_VdqHdqWdq, "vpaddusw", "vpaddusw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDUSW_VdqHdqWdq, "vpaddusw", "vpaddusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPAVGB_VdqWdq, "vpavgb", "vpavgb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAVGB_VdqWdq, "vpavgb", "vpavgb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPAVGW_VdqWdq, "vpavgw", "vpavgw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAVGW_VdqWdq, "vpavgw", "vpavgw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPANDN_VdqHdqWdq, "vpandn", "vpandn", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPANDN_VdqHdqWdq, "vpandn", "vpandn", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPAND_VdqHdqWdq, "vpand", "vpand", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAND_VdqHdqWdq, "vpand", "vpand", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPOR_VdqHdqWdq, "vpor", "vpor", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPOR_VdqHdqWdq, "vpor", "vpor", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPXOR_VdqHdqWdq, "vpxor", "vpxor", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPXOR_VdqHdqWdq, "vpxor", "vpxor", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMULHRSW_VdqHdqWdq, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhrsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHRSW_VdqHdqWdq, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhrsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULDQ_VdqHdqWdq, "vpmuldq", "vpmuldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuldq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULDQ_VdqHdqWdq, "vpmuldq", "vpmuldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuldq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULUDQ_VdqHdqWdq, "vpmuludq", "vpmuludq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuludq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULUDQ_VdqHdqWdq, "vpmuludq", "vpmuludq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuludq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULLD_VdqHdqWdq, "vpmulld", "vpmulld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULLD_VdqHdqWdq, "vpmulld", "vpmulld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULLW_VdqHdqWdq, "vpmullw", "vpmullw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULLW_VdqHdqWdq, "vpmullw", "vpmullw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULHW_VdqHdqWdq, "vpmulhw", "vpmulhw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHW_VdqHdqWdq, "vpmulhw", "vpmulhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULHUW_VdqHdqWdq, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHUW_VdqHdqWdq, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSADBW_VdqHdqWdq, "vpsadbw", "vpsadbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psadbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSADBW_VdqHdqWdq, "vpsadbw", "vpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psadbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMASKMOVDQU_VdqUdq, "vmaskmovdqu", "vmaskmovdqu", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVDQU_VdqUdq, BX_ISA_AVX, OP_NONE, OP_Vdq, OP_Wdq, OP_sYdq, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSUBB_VdqHdqWdq, "vpsubb", "vpsubb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBB_VdqHdqWdq, "vpsubb", "vpsubb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBW_VdqHdqWdq, "vpsubw", "vpsubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBW_VdqHdqWdq, "vpsubw", "vpsubw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBD_VdqHdqWdq, "vpsubd", "vpsubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBD_VdqHdqWdq, "vpsubd", "vpsubd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBQ_VdqHdqWdq, "vpsubq", "vpsubq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBQ_VdqHdqWdq, "vpsubq", "vpsubq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDB_VdqHdqWdq, "vpaddb", "vpaddb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDB_VdqHdqWdq, "vpaddb", "vpaddb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDW_VdqHdqWdq, "vpaddw", "vpaddw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDW_VdqHdqWdq, "vpaddw", "vpaddw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDD_VdqHdqWdq, "vpaddd", "vpaddd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDD_VdqHdqWdq, "vpaddd", "vpaddd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDQ_VdqHdqWdq, "vpaddq", "vpaddq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDQ_VdqHdqWdq, "vpaddq", "vpaddq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSHUFB_VdqHdqWdq, "vpshufb", "vpshufb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pshufb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFB_VdqHdqWdq, "vpshufb", "vpshufb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pshufb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPHADDW_VdqHdqWdq, "vphaddw", "vphaddw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDW_VdqHdqWdq, "vphaddw", "vphaddw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHADDD_VdqHdqWdq, "vphaddd", "vphaddd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDD_VdqHdqWdq, "vphaddd", "vphaddd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBW_VdqHdqWdq, "vphsubw", "vphsubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBW_VdqHdqWdq, "vphsubw", "vphsubw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBD_VdqHdqWdq, "vphsubd", "vphsubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBD_VdqHdqWdq, "vphsubd", "vphsubd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHADDSW_VdqHdqWdq, "vphaddsw", "vphaddsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDSW_VdqHdqWdq, "vphaddsw", "vphaddsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBSW_VdqHdqWdq, "vphsubsw", "vphsubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBSW_VdqHdqWdq, "vphsubsw", "vphsubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMADDWD_VdqHdqWdq, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMADDWD_VdqHdqWdq, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMADDUBSW_VdqHdqWdq, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMADDUBSW_VdqHdqWdq, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSIGNB_VdqHdqWdq, "vpsignb", "vpsignb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGNB_VdqHdqWdq, "vpsignb", "vpsignb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSIGNW_VdqHdqWdq, "vpsignw", "vpsignw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGNW_VdqHdqWdq, "vpsignw", "vpsignw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSIGND_VdqHdqWdq, "vpsignd", "vpsignd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGND_VdqHdqWdq, "vpsignd", "vpsignd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VTESTPS_VpsWps, "vtestps", "vtestps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VTESTPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VTESTPD_VpdWpd, "vtestpd", "vtestpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VTESTPD_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPTEST_VdqWdq, "vptest", "vptest", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPTEST_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBROADCASTSS_VpsMss, "vbroadcastss", "vbroadcastss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX, OP_Vps, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTSD_VpdMsd, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX, OP_Vpd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTF128_VdqMdq, "vbroadcastf128", "vbroadcastf128", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPABSB_VdqWdq, "vpabsb", "vpabsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsb>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSB_VdqWdq, "vpabsb", "vpabsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsb>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPABSW_VdqWdq, "vpabsw", "vpabsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsw>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSW_VdqWdq, "vpabsw", "vpabsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsw>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPABSD_VdqWdq, "vpabsd", "vpabsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsd>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSD_VdqWdq, "vpabsd", "vpabsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsd>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPACKSSWB_VdqHdqWdq, "vpacksswb", "vpacksswb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packsswb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKSSWB_VdqHdqWdq, "vpacksswb", "vpacksswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packsswb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKUSWB_VdqHdqWdq, "vpackuswb", "vpackuswb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packuswb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKUSWB_VdqHdqWdq, "vpackuswb", "vpackuswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packuswb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKUSDW_VdqHdqWdq, "vpackusdw", "vpackusdw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packusdw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKUSDW_VdqHdqWdq, "vpackusdw", "vpackusdw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packusdw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKSSDW_VdqHdqWdq, "vpackssdw", "vpackssdw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packssdw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKSSDW_VdqHdqWdq, "vpackssdw", "vpackssdw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packssdw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMASKMOVPS_VpsHpsMps, "vmaskmovps", "vmaskmovps", &BX_CPU_C::VMASKMOVPS_VpsHpsMps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPD_VpdHpdMpd, "vmaskmovpd", "vmaskmovpd", &BX_CPU_C::VMASKMOVPD_VpdHpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPS_MpsHpsVps, "vmaskmovps", "vmaskmovps", &BX_CPU_C::VMASKMOVPS_MpsHpsVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Hps, OP_Vps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPD_MpdHpdVpd, "vmaskmovpd", "vmaskmovpd", &BX_CPU_C::VMASKMOVPD_MpdHpdVpd, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Hpd, OP_Vpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMOVSXBW_VdqWq, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXBW_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXBD_VdqWd, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXBD_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXBQ_VdqWw, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVSXBQ_VdqWwR, BX_ISA_AVX, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXWD_VdqWq, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXWD_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXWQ_VdqWd, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXWQ_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXDQ_VdqWq, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXDQ_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBW_VdqWq, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXBW_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBD_VdqWd, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXBD_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBQ_VdqWw, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVZXBQ_VdqWwR, BX_ISA_AVX, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXWD_VdqWq, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXWD_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXWQ_VdqWd, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXWQ_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXDQ_VdqWq, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXDQ_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMINSB_VdqHdqWdq, "vpminsb", "vpminsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSB_VdqHdqWdq, "vpminsb", "vpminsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINSW_VdqHdqWdq, "vpminsw", "vpminsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSW_VdqHdqWdq, "vpminsw", "vpminsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINSD_VdqHdqWdq, "vpminsd", "vpminsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSD_VdqHdqWdq, "vpminsd", "vpminsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUB_VdqHdqWdq, "vpminub", "vpminub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminub>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUB_VdqHdqWdq, "vpminub", "vpminub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminub>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUW_VdqHdqWdq, "vpminuw", "vpminuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUW_VdqHdqWdq, "vpminuw", "vpminuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUD_VdqHdqWdq, "vpminud", "vpminud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminud>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUD_VdqHdqWdq, "vpminud", "vpminud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminud>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSB_VdqHdqWdq, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSB_VdqHdqWdq, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSW_VdqHdqWdq, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSW_VdqHdqWdq, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSD_VdqHdqWdq, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSD_VdqHdqWdq, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUB_VdqHdqWdq, "vpmaxub", "vpmaxub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxub>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUB_VdqHdqWdq, "vpmaxub", "vpmaxub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxub>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUW_VdqHdqWdq, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUW_VdqHdqWdq, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUD_VdqHdqWdq, "vpmaxud", "vpmaxud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxud>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUD_VdqHdqWdq, "vpmaxud", "vpmaxud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxud>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPHMINPOSUW_VdqWdq, "vphminposuw", "vphminposuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PHMINPOSUW_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPERMILPS_VpsHpsWps, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPD_VpdHpdWpd, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPS_VpsWpsIb, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPD_VpdWpdIb, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPD_VpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDPS_VpsHpsWpsIb, "vblendps", "vblendps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDPD_VpdHpdWpdIb, "vblendpd", "vblendpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPBLENDW_VdqHdqWdqIb, "vpblendw", "vpblendw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPBLENDW_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPBLENDW_VdqHdqWdqIb, "vpblendw", "vpblendw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPBLENDW_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPALIGNR_VdqHdqWdqIb, "vpalignr", "vpalignr", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPALIGNR_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPALIGNR_VdqHdqWdqIb, "vpalignr", "vpalignr", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPALIGNR_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VINSERTPS_VpsWssIb, "vinsertps", "vinsertps", &BX_CPU_C::VINSERTPS_VpsHpsWssIbM, &BX_CPU_C::VINSERTPS_VpsHpsWssIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VEXTRACTPS_EdVpsIb, "vextractps", "vextractps", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERM2F128_VdqHdqWdqIb, "vperm2f128", "vperm2f128", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERM2F128_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VINSERTF128_VdqHdqWdqIb, "vinsertf128", "vinsertf128", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VEXTRACTF128_WdqVdqIb, "vextractf128", "vextractf128", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VBLENDVPS_VpsHpsWpsIb, "vblendvps", "vblendvps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDVPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDVPD_VpdHpdWpdIb, "vblendvpd", "vblendvpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDVPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPBLENDVB_VdqHdqWdqIb, "vpblendvb", "vpblendvb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPBLENDVB_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPBLENDVB_VdqHdqWdqIb, "vpblendvb", "vpblendvb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPBLENDVB_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMPSADBW_VdqHdqWdqIb, "vmpsadbw", "vmpsadbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VMPSADBW_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMPSADBW_VdqHdqWdqIb, "vmpsadbw", "vmpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMPSADBW_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPCMPESTRM_VdqWdqIb, "vpcmpestrm", "vpcmpestrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRM_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPESTRI_VdqWdqIb, "vpcmpestri", "vpcmpestri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRI_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPISTRM_VdqWdqIb, "vpcmpistrm", "vpcmpistrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRM_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPISTRI_VdqWdqIb, "vpcmpistri", "vpcmpistri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRI_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VAESIMC_VdqWdq, "vaesimc", "vaesimc", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::AESIMC_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESKEYGENASSIST_VdqWdqIb, "vaeskeygenassist", "vaeskeygenassist", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESENC_VdqHdqWdq, "vaesenc", "vaesenc", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESENC_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESENCLAST_VdqHdqWdq, "vaesenclast", "vaesenclast", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESENCLAST_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESDEC_VdqHdqWdq, "vaesdec", "vaesdec", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESDEC_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESDECLAST_VdqHdqWdq, "vaesdeclast", "vaesdeclast", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESDECLAST_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCLMULQDQ_VdqHdqWdqIb, "vpclmulqdq", "vpclmulqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCLMULQDQ_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// VAES extensions
bx_define_opcode(BX_IA_V256_VAESENC_VdqHdqWdq, "vaesenc", "vaesenc", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESENCLAST_VdqHdqWdq, "vaesenclast", "vaesenclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENCLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESDEC_VdqHdqWdq, "vaesdec", "vaesdec", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDEC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESDECLAST_VdqHdqWdq, "vaesdeclast", "vaesdeclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDECLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCLMULQDQ_VdqHdqWdqIb, "vpclmulqdq", "vpclmulqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCLMULQDQ_VdqHdqWdqIbR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// VEX form of GFNI instructions
bx_define_opcode(BX_IA_VGF2P8AFFINEQB_VdqHdqWdqIb, "vgf2p8affineqb", "vgf2p8affineqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8AFFINEQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGF2P8AFFINEINVQB_VdqHdqWdqIb, "vgf2p8affineinvqb", "vgf2p8affineinvqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8AFFINEINVQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGF2P8MULB_VdqHdqWdq, "vgf2p8mulb", "vgf2p8mulb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8MULB_VdqHdqWdqR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

// SM3 instructions
bx_define_opcode(BX_IA_VSM3MSG1_VdqHdqWdq, "vsm3msg1", "vsm3msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3MSG1_VdqHdqWdqR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM3MSG2_VdqHdqWdq, "vsm3msg2", "vsm3msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3MSG2_VdqHdqWdqR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM3RNDS2_VdqHdqWdqIb, "vsm3rnds2", "vsm3rnds2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3RNDS2_VdqHdqWdqIbR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// SM4 instructions
bx_define_opcode(BX_IA_VSM4KEY4_VdqHdqWdq, "vsm4key4", "vsm4key4", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSM4KEY4_VdqHdqWdqR, BX_ISA_SM4, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM4RNDS4_VdqHdqWdq, "vsm4rnds4", "vsm4rnds4", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSM4RNDS4_VdqHdqWdqR, BX_ISA_SM4, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

// SHA512 instructions
bx_define_opcode(BX_IA_VSHA512MSG1_VdqWdq, "vsha512msg1", "vsha512msg1", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512MSG1_VdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHA512MSG2_VdqWdq, "vsha512msg2", "vsha512msg2", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512MSG2_VdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHA512RNDS2_VdqHdqWdq, "vsha512rnds2", "vsha512rnds2", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512RNDS2_VdqHdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVD_VdqEd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVD_VdqEdR, BX_ISA_AVX, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVQ_VdqEq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VdqEqR, BX_ISA_AVX, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVD_EdVd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVD_EdVdR, BX_ISA_AVX, OP_Ed, OP_Vd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVQ_EqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_EqVqR, BX_ISA_AVX, OP_Eq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPINSRB_VdqEbIb, "vpinsrb", "vpinsrb", &BX_CPU_C::VPINSRB_VdqHdqEbIbM, &BX_CPU_C::VPINSRB_VdqHdqEbIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPINSRW_VdqEwIb, "vpinsrw", "vpinsrw", &BX_CPU_C::VPINSRW_VdqHdqEwIbM, &BX_CPU_C::VPINSRW_VdqHdqEwIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_GdUdqIb, "vpextrw", "vpextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdUdqIb, BX_ISA_AVX, OP_Gd, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRB_EdVdqIbR, "vpextrb", "vpextrb", NULL, &BX_CPU_C::PEXTRB_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRB_MbVdqIbM, "vpextrb", "vpextrb", &BX_CPU_C::PEXTRB_MbVdqIbM, NULL, BX_ISA_AVX, OP_Mb, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_EdVdqIbR, "vpextrw", "vpextrw", NULL, &BX_CPU_C::PEXTRW_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_MwVdqIbM, "vpextrw", "vpextrw", &BX_CPU_C::PEXTRW_MwVdqIbM, NULL, BX_ISA_AVX, OP_Mw, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPINSRD_VdqEdIb, "vpinsrd", "vpinsrd", &BX_CPU_C::VPINSRD_VdqHdqEdIbM, &BX_CPU_C::VPINSRD_VdqHdqEdIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ed, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPINSRQ_VdqEqIb, "vpinsrq", "vpinsrq", &BX_CPU_C::VPINSRQ_VdqHdqEqIbM, &BX_CPU_C::VPINSRQ_VdqHdqEqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Eq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRD_EdVdqIb, "vpextrd", "vpextrd", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRQ_EqVdqIb, "vpextrq", "vpextrq", &BX_CPU_C::PEXTRQ_EqVdqIbM, &BX_CPU_C::PEXTRQ_EqVdqIbR, BX_ISA_AVX, OP_Eq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTPS2PD_VpdWps, "vcvtps2pd", "vcvtps2pd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTPS2PD_VpdWpsR, BX_ISA_AVX, OP_Vpd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTPD2DQ_VdqWpd, "vcvttpd2dq", "vcvttpd2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTTPD2DQ_VdqWpdR, BX_ISA_AVX, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPD2DQ_VdqWpd, "vcvtpd2dq", "vcvtpd2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPD2DQ_VdqWpdR, BX_ISA_AVX, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTDQ2PD_VpdWdq, "vcvtdq2pd", "vcvtdq2pd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTDQ2PD_VpdWdqR, BX_ISA_AVX, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPD2PS_VpsWpd, "vcvtpd2ps", "vcvtpd2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPD2PS_VpsWpdR, BX_ISA_AVX, OP_Vps, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SS_VssWsd, "vcvtsd2ss", "vcvtsd2ss", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTSD2SS_VssWsdR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSS2SD_VsdWss, "vcvtss2sd", "vcvtss2sd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTSS2SD_VsdWssR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTDQ2PS_VpsWdq, "vcvtdq2ps", "vcvtdq2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTDQ2PS_VpsWdqR, BX_ISA_AVX, OP_Vps, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPS2DQ_VdqWps, "vcvtps2dq", "vcvtps2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPS2DQ_VdqWpsR, BX_ISA_AVX, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTPS2DQ_VdqWps, "vcvttps2dq", "vcvttps2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTTPS2DQ_VdqWpsR, BX_ISA_AVX, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTSS2SI_GdWss, "vcvtss2si", "vcvtss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GdWssR, BX_ISA_AVX, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSS2SI_GqWss, "vcvtss2si", "vcvtss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GqWssR, BX_ISA_AVX, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SI_GdWsd, "vcvtsd2si", "vcvtsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GdWsdR, BX_ISA_AVX, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SI_GqWsd, "vcvtsd2si", "vcvtsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GqWsdR, BX_ISA_AVX, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTTSS2SI_GdWss, "vcvttss2si", "vcvttss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GdWssR, BX_ISA_AVX, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSS2SI_GqWss, "vcvttss2si", "vcvttss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GqWssR, BX_ISA_AVX, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSD2SI_GdWsd, "vcvttsd2si", "vcvttsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GdWsdR, BX_ISA_AVX, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSD2SI_GqWsd, "vcvttsd2si", "vcvttsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GqWsdR, BX_ISA_AVX, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTSI2SS_VssEd, "vcvtsi2ss", "vcvtsi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SS_VssEdR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Ed, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SS_VssEq, "vcvtsi2ss", "vcvtsi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SS_VssEqR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Eq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SD_VsdEd, "vcvtsi2sd", "vcvtsi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SD_VsdEdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Ed, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SD_VsdEq, "vcvtsi2sd", "vcvtsi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SD_VsdEqR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Eq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVQ_WqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX, OP_Wq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVQ_VqWq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX, OP_Vq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTPH2PS_VpsWps, "vcvtph2ps", "vcvtph2ps", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTPH2PS_VpsWpsR, BX_ISA_AVX_F16C, OP_Vps, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPS2PH_WpsVpsIb, "vcvtps2ph", "vcvtps2ph", &BX_CPU_C::VCVTPS2PH_WpsVpsIb, &BX_CPU_C::VCVTPS2PH_WpsVpsIb, BX_ISA_AVX_F16C, OP_mVHV, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPMOVSXBW_VdqWdq, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXBW_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXBD_VdqWq, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVSXBD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXBQ_VdqWd, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPMOVSXBQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXWD_VdqWdq, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXWD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXWQ_VdqWq, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVSXWQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXDQ_VdqWdq, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXDQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPMOVZXBW_VdqWdq, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXBW_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXBD_VdqWq, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVZXBD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXBQ_VdqWd, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPMOVZXBQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXWD_VdqWdq, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXWD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXWQ_VdqWq, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVZXWQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXDQ_VdqWdq, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXDQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPERM2I128_VdqHdqWdqIb, "vperm2i128", "vperm2i128", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERM2F128_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VINSERTI128_VdqHdqWdqIb, "vinserti128", "vinserti128", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VEXTRACTI128_WdqVdqIb, "vextracti128", "vextracti128", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX2, OP_Wdq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTI128_VdqMdq, "vbroadcasti128", "vbroadcasti128", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTB_VdqWb, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::LOAD_Wb, &BX_CPU_C::VPBROADCASTB_VdqWbR, BX_ISA_AVX2, OP_Vdq, OP_Wb, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTW_VdqWw, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::VPBROADCASTW_VdqWwR, BX_ISA_AVX2, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTD_VdqWd, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTQ_VdqWq, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBROADCASTSS_VpsWss, "vbroadcastss", "vbroadcastss", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX2, OP_Vps, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTSD_VpdWsd, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX2, OP_Vpd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBLENDD_VdqHdqWdqIb, "vpblendd", "vpblendd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPS_VpsHpsWpsIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMASKMOVD_VdqHdqMdq, "vmaskmovd", "vmaskmovd", &BX_CPU_C::VMASKMOVPS_VpsHpsMps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVQ_VdqHdqMdq, "vmaskmovq", "vmaskmovq", &BX_CPU_C::VMASKMOVPD_VpdHpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVD_MdqHdqVdq, "vmaskmovd", "vmaskmovd", &BX_CPU_C::VMASKMOVPS_MpsHpsVps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Wps, OP_Hps, OP_Vps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVQ_MdqHdqVdq, "vmaskmovq", "vmaskmovq", &BX_CPU_C::VMASKMOVPD_MpdHpdVpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Wpd, OP_Hpd, OP_Vpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VGATHERDPS_VpsHps, "vgatherdps", "vgatherdps", &BX_CPU_C::VGATHERDPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_VSib, OP_Hps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERDPD_VpdHpd, "vgatherdpd", "vgatherdpd", &BX_CPU_C::VGATHERDPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_VSib, OP_Hpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQPS_VpsHps, "vgatherqps", "vgatherqps", &BX_CPU_C::VGATHERQPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_VSib, OP_Hps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQPD_VpdHpd, "vgatherqpd", "vgatherqpd", &BX_CPU_C::VGATHERQPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_VSib, OP_Hpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VGATHERDD_VdqHdq, "vgatherdd", "vgatherdd", &BX_CPU_C::VGATHERDPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERDQ_VdqHdq, "vgatherdq", "vgatherdq", &BX_CPU_C::VGATHERDPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQD_VdqHdq, "vgatherqd", "vgatherqd", &BX_CPU_C::VGATHERQPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQQ_VdqHdq, "vgatherqq", "vgatherqq", &BX_CPU_C::VGATHERQPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPSRLVD_VdqHdqWdq, "vpsrlvd", "vpsrlvd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSRLVQ_VdqHdqWdq, "vpsrlvq", "vpsrlvq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSLLVD_VdqHdqWdq, "vpsllvd", "vpsllvd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSLLVQ_VdqHdqWdq, "vpsllvq", "vpsllvq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPERMQ_VdqWdqIb, "vpermq", "vpermq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMQ_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMD_VdqHdqWdq, "vpermd", "vpermd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMD_VdqHdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMPS_VpsHpsWps, "vpermps", "vpermps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMD_VdqHdqWdqR, BX_ISA_AVX2, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMPD_VpdWpdIb, "vpermpd", "vpermpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMQ_VdqWdqIbR, BX_ISA_AVX2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSRAVD_VdqHdqWdq, "vpsravd", "vpsravd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psravd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX1/AVX2

// AVX2 FMA
bx_define_opcode(BX_IA_VFMADD132PS_VpsHpsWps, "vfmadd132ps", "vfmadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD132PD_VpdHpdWpd, "vfmadd132pd", "vfmadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213PS_VpsHpsWps, "vfmadd213ps", "vfmadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213PD_VpdHpdWpd, "vfmadd213pd", "vfmadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231PS_VpsHpsWps, "vfmadd231ps", "vfmadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231PD_VpdHpdWpd, "vfmadd231pd", "vfmadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMADD132SS_VpsHssWss, "vfmadd132ss", "vfmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD132SD_VpdHsdWsd, "vfmadd132sd", "vfmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213SS_VpsHssWss, "vfmadd213ss", "vfmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213SD_VpdHsdWsd, "vfmadd213sd", "vfmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231SS_VpsHssWss, "vfmadd231ss", "vfmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231SD_VpdHsdWsd, "vfmadd231sd", "vfmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMADDSUB132PS_VpsHpsWps, "vfmaddsub132ps", "vfmaddsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB132PD_VpdHpdWpd, "vfmaddsub132pd", "vfmaddsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB213PS_VpsHpsWps, "vfmaddsub213ps", "vfmaddsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB213PD_VpdHpdWpd, "vfmaddsub213pd", "vfmaddsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB231PS_VpsHpsWps, "vfmaddsub231ps", "vfmaddsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB231PD_VpdHpdWpd, "vfmaddsub231pd", "vfmaddsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUBADD132PS_VpsHpsWps, "vfmsubadd132ps", "vfmsubadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD132PD_VpdHpdWpd, "vfmsubadd132pd", "vfmsubadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD213PS_VpsHpsWps, "vfmsubadd213ps", "vfmsubadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD213PD_VpdHpdWpd, "vfmsubadd213pd", "vfmsubadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD231PS_VpsHpsWps, "vfmsubadd231ps", "vfmsubadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD231PD_VpdHpdWpd, "vfmsubadd231pd", "vfmsubadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUB132PS_VpsHpsWps, "vfmsub132ps", "vfmsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB132PD_VpdHpdWpd, "vfmsub132pd", "vfmsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213PS_VpsHpsWps, "vfmsub213ps", "vfmsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213PD_VpdHpdWpd, "vfmsub213pd", "vfmsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231PS_VpsHpsWps, "vfmsub231ps", "vfmsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231PD_VpdHpdWpd, "vfmsub231pd", "vfmsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUB132SS_VpsHssWss, "vfmsub132ss", "vfmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB132SD_VpdHsdWsd, "vfmsub132sd", "vfmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213SS_VpsHssWss, "vfmsub213ss", "vfmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213SD_VpdHsdWsd, "vfmsub213sd", "vfmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231SS_VpsHssWss, "vfmsub231ss", "vfmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231SD_VpdHsdWsd, "vfmsub231sd", "vfmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMADD132PS_VpsHpsWps, "vfnmadd132ps", "vfnmadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD132PD_VpdHpdWpd, "vfnmadd132pd", "vfnmadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213PS_VpsHpsWps, "vfnmadd213ps", "vfnmadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213PD_VpdHpdWpd, "vfnmadd213pd", "vfnmadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231PS_VpsHpsWps, "vfnmadd231ps", "vfnmadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231PD_VpdHpdWpd, "vfnmadd231pd", "vfnmadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMADD132SS_VpsHssWss, "vfnmadd132ss", "vfnmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD132SD_VpdHsdWsd, "vfnmadd132sd", "vfnmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213SS_VpsHssWss, "vfnmadd213ss", "vfnmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213SD_VpdHsdWsd, "vfnmadd213sd", "vfnmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231SS_VpsHssWss, "vfnmadd231ss", "vfnmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231SD_VpdHsdWsd, "vfnmadd231sd", "vfnmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMSUB132PS_VpsHpsWps, "vfnmsub132ps", "vfnmsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB132PD_VpdHpdWpd, "vfnmsub132pd", "vfnmsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213PS_VpsHpsWps, "vfnmsub213ps", "vfnmsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213PD_VpdHpdWpd, "vfnmsub213pd", "vfnmsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231PS_VpsHpsWps, "vfnmsub231ps", "vfnmsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231PD_VpdHpdWpd, "vfnmsub231pd", "vfnmsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMSUB132SS_VpsHssWss, "vfnmsub132ss", "vfnmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB132SD_VpdHsdWsd, "vfnmsub132sd", "vfnmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213SS_VpsHssWss, "vfnmsub213ss", "vfnmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213SD_VpdHsdWsd, "vfnmsub213sd", "vfnmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231SS_VpsHssWss, "vfnmsub231ss", "vfnmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231SD_VpdHsdWsd, "vfnmsub231sd", "vfnmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)
// AVX2 FMA

// AVX VNNI
bx_define_opcode(BX_IA_VPDPBUSD_VdqHdqWdq, "vpdpbusd", "vpdpbusd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusd>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUSDS_VdqHdqWdq, "vpdpbusds", "vpdpbusds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusds>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSSD_VdqHdqWdq, "vpdpwssd", "vpdpwssd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssd>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSSDS_VdqHdqWdq, "vpdpwssds", "vpdpwssds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssds>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI

// AVX IFMA
bx_define_opcode(BX_IA_VPMADD52LUQ_VdqHdqWdq, "vpmadd52luq", "vpmadd52luq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPMADD52LUQ_VdqHdqWdqR, BX_ISA_AVX_IFMA, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADD52HUQ_VdqHdqWdq, "vpmadd52huq", "vpmadd52huq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPMADD52HUQ_VdqHdqWdqR, BX_ISA_AVX_IFMA, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX IFMA

// AVX VNNI INT8
bx_define_opcode(BX_IA_VPDPBSSD_VdqHdqWdq, "vpdpbssd", "vpdpbssd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbssd>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSSDS_VdqHdqWdq, "vpdpbssds", "vpdpbssds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbssds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSUD_VdqHdqWdq, "vpdpbsud", "vpdpbsud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbsud>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSUDS_VdqHdqWdq, "vpdpbsuds", "vpdpbsuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbsuds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUUD_VdqHdqWdq, "vpdpbuud", "vpdpbuud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbuud>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUUDS_VdqHdqWdq, "vpdpbuuds", "vpdpbuuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbuuds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI INT8

// AVX VNNI INT16
bx_define_opcode(BX_IA_VPDPWSUD_VdqHdqWdq, "vpdpwsud", "vpdpwsud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwsud>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSUDS_VdqHdqWdq, "vpdpwsuds", "vpdpwsuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwsuds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUSD_VdqHdqWdq, "vpdpwusd", "vpdpwusd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwusd>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUSDS_VdqHdqWdq, "vpdpwusds", "vpdpwusds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwusds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUUD_VdqHdqWdq, "vpdpwuud", "vpdpwuud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwuud>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUUDS_VdqHdqWdq, "vpdpwuuds", "vpdpwuuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwuuds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI INT16

// AVX-NE-CONVERT
bx_define_opcode(BX_IA_VBCSTNEBF162PS_VpsWw, "vbcstnebf162ps", "vbcstnebf162ps", &BX_CPU_C::VBCSTNEBF162PS_VpsWwM, &BX_CPU_C::BxError, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBCSTNESH2PS_VpsWsh, "vbcstnesh2ps", "vbcstneshps", &BX_CPU_C::VBCSTNESH2PS_VpsWshM, &BX_CPU_C::BxError, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wsh, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEEPH2PS_VpsWph, "vcvtneeph2ps", "vcvtneeph2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEEPH2PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEOPH2PS_VpsWph, "vcvtneoph2ps", "vcvtneoph2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEOPH2PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEEBF162PS_VpsWbf16, "vcvtneebf162ps", "vcvtneebf162ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEEBF162PS_VpsWbf16R, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wbf16, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEOBF162PS_VpsWbf16, "vcvtneobf162ps", "vcvtneobf162ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEOBF162PS_VpsWbf16R, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wbf16, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEPS2BF16_Vbf16Wps, "vcvtneps2bf16", "vcvtneps2bf16", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEPS2BF16_Vbf16WpsR, BX_ISA_AVX_NE_CONVERT, OP_Vbf16, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
// AVX-NE-CONVERT

// BMI1
bx_define_opcode(BX_IA_ANDN_GdBdEd, "andn", "andnl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ANDN_GdBdEdR, BX_ISA_BMI1, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_ANDN_GqBqEq, "andn", "andnq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ANDN_GqBqEqR, BX_ISA_BMI1, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSI_BdEd, "blsi", "blsil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSI_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSI_BqEq, "blsi", "blsiq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSI_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSMSK_BdEd, "blsmsk", "blsmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSMSK_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSMSK_BqEq, "blsmsk", "blsmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSMSK_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSR_BdEd, "blsr", "blsrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSR_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSR_BqEq, "blsr", "blsrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSR_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GdEdBd, "bextr", "bextrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BEXTR_GdEdBdR, BX_ISA_BMI1, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GqEqBq, "bextr", "bextrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BEXTR_GqEqBqR, BX_ISA_BMI1, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
// BMI1

// BMI2
bx_define_opcode(BX_IA_MULX_GdBdEd, "mulx", "mulxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MULX_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_MULX_GqBqEq, "mulx", "mulxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MULX_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_RORX_GdEdIb, "rorx", "rorxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::RORX_GdEdIbR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_RORX_GqEqIb, "rorx", "rorxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::RORX_GqEqIbR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLX_GdEdBd, "shlx", "shlxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SHLX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLX_GqEqBq, "shlx", "shlxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SHLX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRX_GdEdBd, "shrx", "shrxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SHRX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRX_GqEqBq, "shrx", "shrxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SHRX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_SARX_GdEdBd, "sarx", "sarxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SARX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SARX_GqEqBq, "sarx", "sarxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SARX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_BZHI_GdBdEd, "bzhi", "bzhil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BZHI_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_BZHI_GqBqEq, "bzhi", "bzhiq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BZHI_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_PEXT_GdBdEd, "pext", "pextl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::PEXT_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_PEXT_GqBqEq, "pext", "pextq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::PEXT_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_PDEP_GdBdEd, "pdep", "pdepl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::PDEP_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_PDEP_GqBqEq, "pdep", "pdepq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::PDEP_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
// BMI2

// CMPccXADD
bx_define_opcode(BX_IA_CMPBEXADD_EdGdBd, "cmpbexadd", "cmpbexaddl", &BX_CPU_C::CMPBEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBEXADD_EqGqBq, "cmpbexadd", "cmpbexaddq", &BX_CPU_C::CMPBEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBXADD_EdGdBd, "cmpbxadd", "cmpbxaddl", &BX_CPU_C::CMPBXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBXADD_EqGqBq, "cmpbxadd", "cmpbxaddq", &BX_CPU_C::CMPBXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLEXADD_EdGdBd, "cmplexadd", "cmplexaddl", &BX_CPU_C::CMPLEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLEXADD_EqGqBq, "cmplexadd", "cmplexaddq", &BX_CPU_C::CMPLEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLXADD_EdGdBd, "cmplxadd", "cmplxaddl", &BX_CPU_C::CMPLXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLXADD_EqGqBq, "cmplxadd", "cmplxaddq", &BX_CPU_C::CMPLXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBEXADD_EdGdBd, "cmpnbexadd", "cmpnbexaddl", &BX_CPU_C::CMPNBEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBEXADD_EqGqBq, "cmpnbexadd", "cmpnbexaddq", &BX_CPU_C::CMPNBEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBXADD_EdGdBd, "cmpnbxadd", "cmpnbxaddl", &BX_CPU_C::CMPNBXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBXADD_EqGqBq, "cmpnbxadd", "cmpnbxaddq", &BX_CPU_C::CMPNBXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLEXADD_EdGdBd, "cmpnlexadd", "cmpnlexaddl", &BX_CPU_C::CMPNLEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLEXADD_EqGqBq, "cmpnlexadd", "cmpnlexaddq", &BX_CPU_C::CMPNLEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLXADD_EdGdBd, "cmpnlxadd", "cmpnlxaddl", &BX_CPU_C::CMPNLXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLXADD_EqGqBq, "cmpnlxadd", "cmpnlxaddq", &BX_CPU_C::CMPNLXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNOXADD_EdGdBd, "cmpnoxadd", "cmpnoxaddl", &BX_CPU_C::CMPNOXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNOXADD_EqGqBq, "cmpnoxadd", "cmpnoxaddq", &BX_CPU_C::CMPNOXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNPXADD_EdGdBd, "cmpnpxadd", "cmpnpxaddl", &BX_CPU_C::CMPNPXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNPXADD_EqGqBq, "cmpnpxadd", "cmpnpxaddq", &BX_CPU_C::CMPNPXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNSXADD_EdGdBd, "cmpnsxadd", "cmpnsxaddl", &BX_CPU_C::CMPNSXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNSXADD_EqGqBq, "cmpnsxadd", "cmpnsxaddq", &BX_CPU_C::CMPNSXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNZXADD_EdGdBd, "cmpnzxadd", "cmpnzxaddl", &BX_CPU_C::CMPNZXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNZXADD_EqGqBq, "cmpnzxadd", "cmpnzxaddq", &BX_CPU_C::CMPNZXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPOXADD_EdGdBd, "cmpoxadd", "cmpoxaddl", &BX_CPU_C::CMPOXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPOXADD_EqGqBq, "cmpoxadd", "cmpoxaddq", &BX_CPU_C::CMPOXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPPXADD_EdGdBd, "cmppxadd", "cmppxaddl", &BX_CPU_C::CMPPXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPPXADD_EqGqBq, "cmppxadd", "cmppxaddq", &BX_CPU_C::CMPPXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPSXADD_EdGdBd, "cmpsxadd", "cmpsxaddl", &BX_CPU_C::CMPSXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPSXADD_EqGqBq, "cmpsxadd", "cmpsxaddq", &BX_CPU_C::CMPSXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPZXADD_EdGdBd, "cmpzxadd", "cmpzxaddl", &BX_CPU_C::CMPZXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPZXADD_EqGqBq, "cmpzxadd", "cmpzxaddq", &BX_CPU_C::CMPZXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
// CMPccXADD

// FMA4 (AMD)
bx_define_opcode(BX_IA_VFMADDSUBPS_VpsHpsVIbWps, "vfmaddsubps", "vfmaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPS_VpsHpsWpsVIb, "vfmaddsubps", "vfmaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPD_VpdHpdVIbWpd, "vfmaddsubpd", "vfmaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPD_VpdHpdWpdVIb, "vfmaddsubpd", "vfmaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPS_VpsHpsVIbWps, "vfmsubaddps", "vfmsubaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPS_VpsHpsWpsVIb, "vfmsubaddps", "vfmsubaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPD_VpdHpdVIbWpd, "vfmsubaddpd", "vfmsubaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPD_VpdHpdWpdVIb, "vfmsubaddpd", "vfmsubaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPS_VpsHpsVIbWps, "vfmaddps", "vfmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPS_VpsHpsWpsVIb, "vfmaddps", "vfmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPD_VpdHpdVIbWpd, "vfmaddpd", "vfmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPD_VpdHpdWpdVIb, "vfmaddpd", "vfmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSS_VssHssVIbWss, "vfmaddss", "vfmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSS_VssHssWssVIb, "vfmaddss", "vfmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSD_VsdHsdVIbWsd, "vfmaddsd", "vfmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSD_VsdHsdWsdVIb, "vfmaddsd", "vfmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPS_VpsHpsVIbWps, "vfmsubps", "vfmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPS_VpsHpsWpsVIb, "vfmsubps", "vfmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPD_VpdHpdVIbWpd, "vfmsubpd", "vfmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPD_VpdHpdWpdVIb, "vfmsubpd", "vfmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSS_VssHssVIbWss, "vfmsubss", "vfmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSS_VssHssWssVIb, "vfmsubss", "vfmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSD_VsdHsdVIbWsd, "vfmsubsd", "vfmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSD_VsdHsdWsdVIb, "vfmsubsd", "vfmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPS_VpsHpsVIbWps, "vfnmaddps", "vfnmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPS_VpsHpsWpsVIb, "vfnmaddps", "vfnmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPD_VpdHpdVIbWpd, "vfnmaddpd", "vfnmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPD_VpdHpdWpdVIb, "vfnmaddpd", "vfnmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSS_VssHssVIbWss, "vfnmaddss", "vfnmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSS_VssHssWssVIb, "vfnmaddss", "vfnmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSD_VsdHsdVIbWsd, "vfnmaddsd", "vfnmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSD_VsdHsdWsdVIb, "vfnmaddsd", "vfnmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPS_VpsHpsVIbWps, "vfnmsubps", "vfnmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPS_VpsHpsWpsVIb, "vfnmsubps", "vfnmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPD_VpdHpdVIbWpd, "vfnmsubpd", "vfnmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPD_VpdHpdWpdVIb, "vfnmsubpd", "vfnmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSS_VssHssVIbWss, "vfnmsubss", "vfnmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSS_VssHssWssVIb, "vfnmsubss", "vfnmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSD_VsdHsdVIbWsd, "vfnmsubsd", "vfnmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSD_VsdHsdWsdVIb, "vfnmsubsd", "vfnmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
// FMA4 (AMD)

// XOP (AMD)
bx_define_opcode(BX_IA_VPCMOV_VdqHdqVIbWdq, "vpcmov", "vpcmov", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCMOV_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_VIb, OP_Wdq, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCMOV_VdqHdqWdqVIb, "vpcmov", "vpcmov", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCMOV_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPPERM_VdqHdqVIbWdq, "vpperm", "vpperm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPPERM_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_VIb, OP_Wdq, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPPERM_VdqHdqWdqVIb, "vpperm", "vpperm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPPERM_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PS_VdqHdqVIbWdq, "vpermil2ps", "vpermil2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PS_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PS_VdqHdqWdqVIb, "vpermil2ps", "vpermil2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PS_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PD_VdqHdqVIbWdq, "vpermil2pd", "vpermil2pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PD_VdqHdqWdqVIb, "vpermil2pd", "vpermil2pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPSHAB_VdqHdqWdq, "vpshab", "vpshab", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAB_VdqWdqHdq, "vpshab", "vpshab", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAW_VdqHdqWdq, "vpshaw", "vpshaw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAW_VdqWdqHdq, "vpshaw", "vpshaw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAD_VdqHdqWdq, "vpshad", "vpshad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAD_VdqWdqHdq, "vpshad", "vpshad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAQ_VdqHdqWdq, "vpshaq", "vpshaq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAQ_VdqWdqHdq, "vpshaq", "vpshaq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqHdqWdq, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqWdqHdq, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqHdqWdq, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqWdqHdq, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqHdqWdq, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqWdqHdq, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqHdqWdq, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqWdqHdq, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLB_VdqHdqWdq, "vpshlb", "vpshlb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLB_VdqWdqHdq, "vpshlb", "vpshlb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLW_VdqHdqWdq, "vpshlw", "vpshlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLW_VdqWdqHdq, "vpshlw", "vpshlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLD_VdqHdqWdq, "vpshld", "vpshld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLD_VdqWdqHdq, "vpshld", "vpshld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLQ_VdqHdqWdq, "vpshlq", "vpshlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLQ_VdqWdqHdq, "vpshlq", "vpshlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPMACSSWW_VdqHdqWdqVIb, "vpmacssww", "vpmacssww", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSWW_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSWD_VdqHdqWdqVIb, "vpmacsswd", "vpmacsswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDQL_VdqHdqWdqVIb, "vpmacssdql", "vpmacssdql", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDQL_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDD_VdqHdqWdqVIb, "vpmacssdd", "vpmacssdd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDQH_VdqHdqWdqVIb, "vpmacssdqh", "vpmacssdqh", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDQH_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSWW_VdqHdqWdqVIb, "vpmacsww", "vpmacsww", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSWW_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSWD_VdqHdqWdqVIb, "vpmacswd", "vpmacswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDQL_VdqHdqWdqVIb, "vpmacsdql", "vpmacsdql", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDQL_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDD_VdqHdqWdqVIb, "vpmacsdd", "vpmacsdd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDQH_VdqHdqWdqVIb, "vpmacsdqh", "vpmacsdqh", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDQH_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADCSSWD_VdqHdqWdqVIb, "vpmadcsswd", "vpmadcsswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMADCSSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADCSWD_VdqHdqWdqVIb, "vpmadcswd", "vpmadcswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMADCSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqWdqIb, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqWdqIb, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqWdqIb, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqWdqIb, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMB_VdqHdqWdqIb, "vpcomb", "vpcomb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMB_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMW_VdqHdqWdqIb, "vpcomw", "vpcomw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMW_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMD_VdqHdqWdqIb, "vpcomd", "vpcomd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMQ_VdqHdqWdqIb, "vpcomq", "vpcomq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMQ_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUB_VdqHdqWdqIb, "vpcomub", "vpcomub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUB_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUW_VdqHdqWdqIb, "vpcomuw", "vpcomuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUW_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUD_VdqHdqWdqIb, "vpcomud", "vpcomud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUQ_VdqHdqWdqIb, "vpcomuq", "vpcomuq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUQ_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZPS_VpsWps, "vfrczps", "vfrczps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VFRCZPS_VpsWpsR, BX_ISA_XOP, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZPD_VpdWpd, "vfrczpd", "vfrczpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VFRCZPD_VpdWpdR, BX_ISA_XOP, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZSS_VssWss, "vfrczss", "vfrczss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFRCZSS_VssWssR, BX_ISA_XOP, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZSD_VsdWsd, "vfrczsd", "vfrczsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFRCZSD_VsdWsdR, BX_ISA_XOP, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBW_VdqWdq, "vphaddbw", "vphaddbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBD_VdqWdq, "vphaddbd", "vphaddbd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBQ_VdqWdq, "vphaddbq", "vphaddbq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDWD_VdqWdq, "vphaddwd", "vphaddwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDWQ_VdqWdq, "vphaddwq", "vphaddwq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDWQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDDQ_VdqWdq, "vphadddq", "vphadddq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBW_VdqWdq, "vphaddubw", "vphaddubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBD_VdqWdq, "vphaddubd", "vphaddubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBQ_VdqWdq, "vphaddubq", "vphaddubq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUWD_VdqWdq, "vphadduwd", "vphadduwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUWQ_VdqWdq, "vphadduwq", "vphadduwq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUWQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUDQ_VdqWdq, "vphaddudq", "vphaddudq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBBW_VdqWdq, "vphsubbw", "vphsubbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBWD_VdqWdq, "vphsubwd", "vphsubwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBDQ_VdqWdq, "vphsubdq", "vphsubdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
// XOP (AMD)

// TBM (AMD)
bx_define_opcode(BX_IA_BEXTR_GdEdId, "bextr", "bextrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BEXTR_GdEdIdR, BX_ISA_TBM, OP_Gd, OP_Ed, OP_Id, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GqEqId, "bextr", "bextrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BEXTR_GqEqIdR, BX_ISA_TBM, OP_Gq, OP_Eq, OP_sId, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCFILL_BdEd, "blcfill", "blcfilll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCFILL_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCFILL_BqEq, "blcfill", "blcfillq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCFILL_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCI_BdEd, "blci", "blcil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCI_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCI_BqEq, "blci", "blciq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCI_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCIC_BdEd, "blcic", "blcicl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCIC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCIC_BqEq, "blcic", "blcicq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCIC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCMSK_BdEd, "blcmsk", "blcmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCMSK_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCMSK_BqEq, "blcmsk", "blcmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCMSK_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCS_BdEd, "blcs", "blcsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCS_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCS_BqEq, "blcs", "blcsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCS_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSFILL_BdEd, "blsfill", "blsfilll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSFILL_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSFILL_BqEq, "blsfill", "blsfillq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSFILL_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSIC_BdEd, "blsic", "blsicl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSIC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSIC_BqEq, "blsic", "blsicq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSIC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_T1MSKC_BdEd, "t1mskc", "t1mskcl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::T1MSKC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_T1MSKC_BqEq, "t1mskc", "t1mskcq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::T1MSKC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZMSK_BdEd, "tzmsk", "tzmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TZMSK_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZMSK_BqEq, "tzmsk", "tzmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TZMSK_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
// TBM (AMD)

#endif /* BX_SUPPORT_AVX */

bx_define_opcode(BX_IA_TZCNT_GwEw, "tzcnt", "tzcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TZCNT_GwEwR, BX_ISA_BMI1, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZCNT_GdEd, "tzcnt", "tzcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TZCNT_GdEdR, BX_ISA_BMI1, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_TZCNT_GqEq, "tzcnt", "tzcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TZCNT_GqEqR, BX_ISA_BMI1, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_LZCNT_GwEw, "lzcnt", "lzcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::LZCNT_GwEwR, BX_ISA_LZCNT, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LZCNT_GdEd, "lzcnt", "lzcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::LZCNT_GdEdR, BX_ISA_LZCNT, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_LZCNT_GqEq, "lzcnt", "lzcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::LZCNT_GqEqR, BX_ISA_LZCNT, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

// SSE4A
bx_define_opcode(BX_IA_MOVNTSS_MssVss, "movntss", "movntss", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::BxError, BX_ISA_SSE4A, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTSD_MsdVsd, "movntsd", "movntsd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE4A, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_EXTRQ_UdqIbIb, "extrq", "extrq", &BX_CPU_C::BxError, &BX_CPU_C::EXTRQ_UdqIbIb, BX_ISA_SSE4A, OP_Wdq, OP_Ib, OP_Ib2, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_EXTRQ_VdqUq, "extrq", "extrq", &BX_CPU_C::BxError, &BX_CPU_C::EXTRQ_VdqUq, BX_ISA_SSE4A, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTQ_VdqUqIbIb, "insertq", "insertq", &BX_CPU_C::BxError, &BX_CPU_C::INSERTQ_VdqUqIbIb, BX_ISA_SSE4A, OP_Vdq, OP_Wq, OP_Ib, OP_Ib2, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTQ_VdqUdq, "insertq", "insertq", &BX_CPU_C::BxError, &BX_CPU_C::INSERTQ_VdqUdq, BX_ISA_SSE4A, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE4A

// ADCX/ADOX
bx_define_opcode(BX_IA_ADCX_GdEd, "adcx", "adcxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADCX_GdEdR, BX_ISA_ADX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADOX_GdEd, "adox", "adoxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADOX_GdEdR, BX_ISA_ADX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_ADCX_GqEq, "adcx", "adcxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADCX_GqEqR, BX_ISA_ADX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADOX_GqEq, "adox", "adoxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADOX_GqEqR, BX_ISA_ADX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

// SMAP
bx_define_opcode(BX_IA_STAC, "stac", "stac", NULL, &BX_CPU_C::STAC, BX_ISA_SMAP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLAC, "clac", "clac", NULL, &BX_CPU_C::CLAC, BX_ISA_SMAP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

// RDRAND
bx_define_opcode(BX_IA_RDRAND_Ew, "rdrand", "rdrandw", NULL, &BX_CPU_C::RDRAND_Ew, BX_ISA_RDRAND, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDRAND_Ed, "rdrand", "rdrandl", NULL, &BX_CPU_C::RDRAND_Ed, BX_ISA_RDRAND, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDRAND_Eq, "rdrand", "rdrandq", NULL, &BX_CPU_C::RDRAND_Eq, BX_ISA_RDRAND, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

// RDSEED
bx_define_opcode(BX_IA_RDSEED_Ew, "rdseed", "rdseedw", NULL, &BX_CPU_C::RDSEED_Ew, BX_ISA_RDSEED, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSEED_Ed, "rdseed", "rdseedl", NULL, &BX_CPU_C::RDSEED_Ed, BX_ISA_RDSEED, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDSEED_Eq, "rdseed", "rdseedq", NULL, &BX_CPU_C::RDSEED_Eq, BX_ISA_RDSEED, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

// MOVDIRI
bx_define_opcode(BX_IA_MOVDIRI_MdGd, "movdiri", "movdiril", &BX_CPU_C::MOV32_EdGdM, NULL, BX_ISA_MOVDIRI, OP_Md, OP_Gd, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVDIRI_MqGq, "movdiri", "movdiriq", &BX_CPU_C::MOV_EqGqM, NULL, BX_ISA_MOVDIRI, OP_Mq, OP_Gq, OP_NONE, OP_NONE, 0)
#endif

// MOVDIR64B
bx_define_opcode(BX_IA_MOVDIR64B_GdMdq, "movdir64b", "movdir64b", &BX_CPU_C::MOVDIR64B, NULL, BX_ISA_MOVDIR64B, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVDIR64B_GqMdq, "movdir64b", "movdir64b", &BX_CPU_C::MOVDIR64B, NULL, BX_ISA_MOVDIR64B, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
#endif

#if BX_SUPPORT_AMX
bx_define_opcode(BX_IA_LDTILECFG, "ldtilecfg", "ldtilecfg", &BX_CPU_C::LDTILECFG, NULL, BX_ISA_AMX, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_STTILECFG, "sttilecfg", "sttilecfg", &BX_CPU_C::STTILECFG, NULL, BX_ISA_AMX, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADD_TnnnMdq, "tileloadd", "tileloadd", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADDT1_TnnnMdq, "tileloaddt1", "tileloaddt1", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILESTORED_MdqTnnn, "tilestored", "tilestored", &BX_CPU_C::TILESTORED_MdqTnnn, NULL, BX_ISA_AMX, OP_M, OP_Tnnn, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILERELEASE, "tilerelease", "tilerelease", NULL, &BX_CPU_C::TILERELEASE, BX_ISA_AMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILEZERO_Tnnn, "tilezero", "tilezero", NULL, &BX_CPU_C::TILEZERO_Tnnn, BX_ISA_AMX, OP_Tnnn, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBSSD_TnnnTrmTreg, "tdpbssd", "tdpbssd", NULL, &BX_CPU_C::TDPBSSD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBSUD_TnnnTrmTreg, "tdpbsud", "tdpbsud", NULL, &BX_CPU_C::TDPBSUD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBUSD_TnnnTrmTreg, "tdpbusd", "tdpbusd", NULL, &BX_CPU_C::TDPBUSD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBUUD_TnnnTrmTreg, "tdpbuud", "tdpbuud", NULL, &BX_CPU_C::TDPBUUD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBF16PS_TnnnTrmTreg, "tdpbf16ps", "tdpbf16ps", NULL, &BX_CPU_C::TDPBF16PS_TnnnTrmTreg, BX_ISA_AMX_BF16, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPFP16PS_TnnnTrmTreg, "tdpfp16ps", "tdpfp16ps", NULL, &BX_CPU_C::TDPFP16PS_TnnnTrmTreg, BX_ISA_AMX_FP16, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TCMMRLFP16PS_TnnnTrmTreg, "tcmmrlfp16ps", "tcmmrlfp16ps", NULL, &BX_CPU_C::TCMMRLFP16PS_TnnnTrmTreg, BX_ISA_AMX_COMPLEX, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TCMMIMFP16PS_TnnnTrmTreg, "tcmmimfp16ps", "tcmmimfp16ps", NULL, &BX_CPU_C::TCMMIMFP16PS_TnnnTrmTreg, BX_ISA_AMX_COMPLEX, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
#endif

#if BX_SUPPORT_AVX
bx_define_opcode(BX_IA_KADDW_KGwKHwKEw, "kaddw", "kaddw", &BX_CPU_C::BxError, &BX_CPU_C::KADDW_KGwKHwKEwR, BX_ISA_AVX512_DQ, OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDQ_KGqKHqKEq, "kaddq", "kaddq", &BX_CPU_C::BxError, &BX_CPU_C::KADDQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDB_KGbKHbKEb, "kaddb", "kaddb", &BX_CPU_C::BxError, &BX_CPU_C::KADDB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDD_KGdKHdKEd, "kaddd", "kaddd", &BX_CPU_C::BxError, &BX_CPU_C::KADDD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KANDW_KGwKHwKEw, "kandw", "kandw", &BX_CPU_C::BxError, &BX_CPU_C::KANDW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDQ_KGqKHqKEq, "kandq", "kandq", &BX_CPU_C::BxError, &BX_CPU_C::KANDQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDB_KGbKHbKEb, "kandb", "kandb", &BX_CPU_C::BxError, &BX_CPU_C::KANDB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDD_KGdKHdKEd, "kandd", "kandd", &BX_CPU_C::BxError, &BX_CPU_C::KANDD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KANDNW_KGwKHwKEw, "kandnw", "kandnw", &BX_CPU_C::BxError, &BX_CPU_C::KANDNW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDNQ_KGqKHqKEq, "kandnq", "kandnq", &BX_CPU_C::BxError, &BX_CPU_C::KANDNQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDNB_KGbKHbKEb, "kandnb", "kandnb", &BX_CPU_C::BxError, &BX_CPU_C::KANDNB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDND_KGdKHdKEd, "kandnd", "kandnd", &BX_CPU_C::BxError, &BX_CPU_C::KANDND_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVW_KGwKEw, "kmovw", "kmovw", &BX_CPU_C::KMOVW_KGwKEwM, &BX_CPU_C::KMOVW_KGwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KGqKEq, "kmovq", "kmovq", &BX_CPU_C::KMOVQ_KGqKEqM, &BX_CPU_C::KMOVQ_KGqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVB_KGbKEb, "kmovb", "kmovb", &BX_CPU_C::KMOVB_KGbKEbM, &BX_CPU_C::KMOVB_KGbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KGdKEd, "kmovd", "kmovd", &BX_CPU_C::KMOVD_KGdKEdM, &BX_CPU_C::KMOVD_KGdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVW_KEwKGw, "kmovw", "kmovw", &BX_CPU_C::KMOVW_KEwKGwM, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_KEw, OP_KGw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KEqKGq, "kmovq", "kmovq", &BX_CPU_C::KMOVQ_KEqKGqM, &BX_CPU_C::BxError, BX_ISA_AVX512_BW, OP_KEq, OP_KGq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVB_KEbKGb, "kmovb", "kmovb", &BX_CPU_C::KMOVB_KEbKGbM, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_KEb, OP_KGb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KEdKGd, "kmovd", "kmovd", &BX_CPU_C::KMOVD_KEdKGdM, &BX_CPU_C::BxError, BX_ISA_AVX512_BW, OP_KEd, OP_KGd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVB_GdKEb, "kmovb", "kmovb", &BX_CPU_C::BxError, &BX_CPU_C::KMOVB_GdKEbR, BX_ISA_AVX512_DQ, OP_Gd, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVW_GdKEw, "kmovw", "kmovw", &BX_CPU_C::BxError, &BX_CPU_C::KMOVW_GdKEwR, BX_ISA_AVX512,    OP_Gd, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_GdKEd, "kmovd", "kmovd", &BX_CPU_C::BxError, &BX_CPU_C::KMOVD_GdKEdR, BX_ISA_AVX512_BW, OP_Gd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_GqKEq, "kmovq", "kmovq", &BX_CPU_C::BxError, &BX_CPU_C::KMOVQ_GqKEqR, BX_ISA_AVX512_BW, OP_Gq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVB_KGbEb, "kmovb", "kmovb", &BX_CPU_C::BxError, &BX_CPU_C::KMOVB_KGbEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVW_KGwEw, "kmovw", "kmovw", &BX_CPU_C::BxError, &BX_CPU_C::KMOVW_KGwEwR, BX_ISA_AVX512,    OP_KGw, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KGdEd, "kmovd", "kmovd", &BX_CPU_C::BxError, &BX_CPU_C::KMOVD_KGdEdR, BX_ISA_AVX512_BW, OP_KGd, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KGqEq, "kmovq", "kmovq", &BX_CPU_C::BxError, &BX_CPU_C::KMOVQ_KGqEqR, BX_ISA_AVX512_BW, OP_KGq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KUNPCKBW_KGwKHbKEb, "kunpckbw", "kunpckbw", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKBW_KGwKHbKEbR, BX_ISA_AVX512,    OP_KGw, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KUNPCKWD_KGdKHwKEw, "kunpckwd", "kunpckwd", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKWD_KGdKHwKEwR, BX_ISA_AVX512_BW, OP_KGd, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KUNPCKDQ_KGqKHdKEd, "kunpckdq", "kunpckdq", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKDQ_KGqKHdKEdR, BX_ISA_AVX512_BW, OP_KGq, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KNOTW_KGwKEw, "knotw", "knotw", &BX_CPU_C::BxError, &BX_CPU_C::KNOTW_KGwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTQ_KGqKEq, "knotq", "knotq", &BX_CPU_C::BxError, &BX_CPU_C::KNOTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTB_KGbKEb, "knotb", "knotb", &BX_CPU_C::BxError, &BX_CPU_C::KNOTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTD_KGdKEd, "knotd", "knotd", &BX_CPU_C::BxError, &BX_CPU_C::KNOTD_KGdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KORW_KGwKHwKEw, "korw", "korw", &BX_CPU_C::BxError, &BX_CPU_C::KORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORQ_KGqKHqKEq, "korq", "korq", &BX_CPU_C::BxError, &BX_CPU_C::KORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORB_KGbKHbKEb, "korb", "korb", &BX_CPU_C::BxError, &BX_CPU_C::KORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORD_KGdKHdKEd, "kord", "kord", &BX_CPU_C::BxError, &BX_CPU_C::KORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KORTESTW_KGwKEw, "kortestw", "kortestw", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTW_KGwKEwR, BX_ISA_AVX512,    OP_NONE, OP_KGw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTQ_KGqKEq, "kortestq", "kortestq", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_NONE, OP_KGq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTB_KGbKEb, "kortestb", "kortestb", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTD_KGdKEd, "kortestd", "kortestd", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTD_KGdKEdR, BX_ISA_AVX512_BW, OP_NONE, OP_KGd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KSHIFTLB_KGbKEbIb, "kshiftlb", "kshiftlb", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLB_KGbKEbIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLW_KGwKEwIb, "kshiftlw", "kshiftlw", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLW_KGwKEwIbR, BX_ISA_AVX512, OP_KGw, OP_KEw, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLD_KGdKEdIb, "kshiftld", "kshiftld", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLD_KGdKEdIbR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLQ_KGqKEqIb, "kshiftlq", "kshiftlq", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLQ_KGqKEqIbR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KSHIFTRB_KGbKEbIb, "kshiftrb", "kshiftrb", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRB_KGbKEbIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRW_KGwKEwIb, "kshiftrw", "kshiftrw", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRW_KGwKEwIbR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRD_KGdKEdIb, "kshiftrd", "kshiftrd", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRD_KGdKEdIbR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRQ_KGqKEqIb, "kshiftrq", "kshiftrq", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRQ_KGqKEqIbR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KXNORW_KGwKHwKEw, "kxnorw", "kxnorw", &BX_CPU_C::BxError, &BX_CPU_C::KXNORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORQ_KGqKHqKEq, "kxnorq", "kxnorq", &BX_CPU_C::BxError, &BX_CPU_C::KXNORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORB_KGbKHbKEb, "kxnorb", "kxnorb", &BX_CPU_C::BxError, &BX_CPU_C::KXNORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORD_KGdKHdKEd, "kxnord", "kxnord", &BX_CPU_C::BxError, &BX_CPU_C::KXNORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KXORW_KGwKHwKEw, "kxorw", "kxorw", &BX_CPU_C::BxError, &BX_CPU_C::KXORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORQ_KGqKHqKEq, "kxorq", "kxorq", &BX_CPU_C::BxError, &BX_CPU_C::KXORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORB_KGbKHbKEb, "kxorb", "kxorb", &BX_CPU_C::BxError, &BX_CPU_C::KXORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORD_KGdKHdKEd, "kxord", "kxord", &BX_CPU_C::BxError, &BX_CPU_C::KXORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KTESTW_KGwKEw, "ktestw", "ktestw", &BX_CPU_C::BxError, &BX_CPU_C::KTESTW_KGwKEwR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTQ_KGqKEq, "ktestq", "ktestq", &BX_CPU_C::BxError, &BX_CPU_C::KTESTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_NONE, OP_KGq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTB_KGbKEb, "ktestb", "ktestb", &BX_CPU_C::BxError, &BX_CPU_C::KTESTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTD_KGdKEd, "ktestd", "ktestd", &BX_CPU_C::BxError, &BX_CPU_C::KTESTD_KGdKEdR, BX_ISA_AVX512_BW, OP_NONE, OP_KGd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)
#endif

#if BX_SUPPORT_EVEX

bx_define_opcode(BX_IA_V512_VADDPS_VpsHpsWps, "vaddps", "vaddps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VADDPD_VpdHpdWpd, "vaddpd", "vaddpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VADDSS_VssHpsWss, "vaddss", "vaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VADDSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VADDSD_VsdHpdWsd, "vaddsd", "vaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VADDSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VADDPS_VpsHpsWps_Kmask, "vaddps", "vaddps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_addps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VADDPD_VpdHpdWpd_Kmask, "vaddpd", "vaddpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_addpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VADDSS_VssHpsWss_Kmask, "vaddss", "vaddss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VADDSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VADDSD_VsdHpdWsd_Kmask, "vaddsd", "vaddsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VADDSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSUBPS_VpsHpsWps, "vsubps", "vsubps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSUBPD_VpdHpdWpd, "vsubpd", "vsubpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSUBSS_VssHpsWss, "vsubss", "vsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSUBSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSUBSD_VsdHpdWsd, "vsubsd", "vsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSUBSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSUBPS_VpsHpsWps_Kmask, "vsubps", "vsubps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_subps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSUBPD_VpdHpdWpd_Kmask, "vsubpd", "vsubpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_subpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSUBSS_VssHpsWss_Kmask, "vsubss", "vsubss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VSUBSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSUBSD_VsdHpdWsd_Kmask, "vsubsd", "vsubsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VSUBSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMULPS_VpsHpsWps, "vmulps", "vmulps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMULPD_VpdHpdWpd, "vmulpd", "vmulpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMULSS_VssHpsWss, "vmulss", "vmulss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMULSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMULSD_VsdHpdWsd, "vmulsd", "vmulsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMULSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMULPS_VpsHpsWps_Kmask, "vmulps", "vmulps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_mulps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMULPD_VpdHpdWpd_Kmask, "vmulpd", "vmulpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_mulpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMULSS_VssHpsWss_Kmask, "vmulss", "vmulss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VMULSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMULSD_VsdHpdWsd_Kmask, "vmulsd", "vmulsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VMULSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VDIVPS_VpsHpsWps, "vdivps", "vdivps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VDIVPD_VpdHpdWpd, "vdivpd", "vdivpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VDIVSS_VssHpsWss, "vdivss", "vdivss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VDIVSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VDIVSD_VsdHpdWsd, "vdivsd", "vdivsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VDIVSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VDIVPS_VpsHpsWps_Kmask, "vdivps", "vdivps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_divps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VDIVPD_VpdHpdWpd_Kmask, "vdivpd", "vdivpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_divpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VDIVSS_VssHpsWss_Kmask, "vdivss", "vdivss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VDIVSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VDIVSD_VsdHpdWsd_Kmask, "vdivsd", "vdivsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VDIVSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMINPS_VpsHpsWps, "vminps", "vminps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMINPD_VpdHpdWpd, "vminpd", "vminpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMINSS_VssHpsWss, "vminss", "vminss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMINSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMINSD_VsdHpdWsd, "vminsd", "vminsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMINSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMINPS_VpsHpsWps_Kmask, "vminps", "vminps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_minps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMINPD_VpdHpdWpd_Kmask, "vminpd", "vminpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_minpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMINSS_VssHpsWss_Kmask, "vminss", "vminss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VMINSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMINSD_VsdHpdWsd_Kmask, "vminsd", "vminsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VMINSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMAXPS_VpsHpsWps, "vmaxps", "vmaxps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMAXPD_VpdHpdWpd, "vmaxpd", "vmaxpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMAXSS_VssHpsWss, "vmaxss", "vmaxss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMAXSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMAXSD_VsdHpdWsd, "vmaxsd", "vmaxsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMAXSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMAXPS_VpsHpsWps_Kmask, "vmaxps", "vmaxps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_maxps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMAXPD_VpdHpdWpd_Kmask, "vmaxpd", "vmaxpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_maxpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VMAXSS_VssHpsWss_Kmask, "vmaxss", "vmaxss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VMAXSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMAXSD_VsdHpdWsd_Kmask, "vmaxsd", "vmaxsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VMAXSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSQRTPS_VpsWps, "vsqrtps", "vsqrtps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtps>, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSQRTPD_VpdWpd, "vsqrtpd", "vsqrtpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtpd>, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSQRTSS_VssHpsWss, "vsqrtss", "vsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSQRTSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSQRTSD_VsdHpdWsd, "vsqrtsd", "vsqrtsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSQRTSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSQRTPS_VpsWps_Kmask, "vsqrtps", "vsqrtps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_1OP_SINGLE<xmm_sqrtps_mask>, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSQRTPD_VpdWpd_Kmask, "vsqrtpd", "vsqrtpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_1OP_DOUBLE<xmm_sqrtpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSQRTSS_VssHpsWss_Kmask, "vsqrtss", "vsqrtss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VSQRTSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSQRTSD_VsdHpdWsd_Kmask, "vsqrtsd", "vsqrtsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VSQRTSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCMPPS_KGwHpsWpsIb, "vcmpps", "vcmpps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCMPPS_MASK_KGwHpsWpsIbR, BX_ISA_AVX512, OP_KGw, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCMPPD_KGbHpdWpdIb, "vcmppd", "vcmppd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCMPPD_MASK_KGbHpdWpdIbR, BX_ISA_AVX512, OP_KGb, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCMPSS_KGbHssWssIb, "vcmpss", "vcmpss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VCMPSS_MASK_KGbHssWssIbR, BX_ISA_AVX512, OP_KGb, OP_Hss, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCMPSD_KGbHsdWsdIb, "vcmpsd", "vcmpsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VCMPSD_MASK_KGbHsdWsdIbR, BX_ISA_AVX512, OP_KGb, OP_Hsd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VRNDSCALEPS_VpsWpsIb_Kmask, "vrndscaleps", "vrndscaleps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VRNDSCALEPS_MASK_VpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VRNDSCALEPD_VpdWpdIb_Kmask, "vrndscalepd", "vrndscalepd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VRNDSCALEPD_MASK_VpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VRNDSCALESS_VssHpsWssIb_Kmask, "vrndscaless", "vrndscaless", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VRNDSCALESS_MASK_VssHpsWssIbR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VRNDSCALESD_VsdHpdWsdIb_Kmask, "vrndscalesd", "vrndscalesd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VRNDSCALESD_MASK_VsdHpdWsdIbR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VUNPCKLPS_VpsHpsWps, "vunpcklps", "vunpcklps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKLPD_VpdHpdWpd, "vunpcklpd", "vunpcklpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKLPS_VpsHpsWps_Kmask, "vunpcklps", "vunpcklps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_unpcklps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKLPD_VpdHpdWpd_Kmask, "vunpcklpd", "vunpcklpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_unpcklpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VUNPCKHPS_VpsHpsWps, "vunpckhps", "vunpckhps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKHPD_VpdHpdWpd, "vunpckhpd", "vunpckhpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKHPS_VpsHpsWps_Kmask, "vunpckhps", "vunpckhps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_unpckhps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VUNPCKHPD_VpdHpdWpd_Kmask, "vunpckhpd", "vunpckhpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_unpckhpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq_Kmask, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_unpcklps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq_Kmask, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_unpcklpd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq_Kmask, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_unpckhps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq_Kmask, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_unpckhpd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMULDQ_VdqHdqWdq, "vpmuldq", "vpmuldq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuldq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULUDQ_VdqHdqWdq, "vpmuludq", "vpmuludq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuludq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULDQ_VdqHdqWdq_Kmask, "vpmuldq", "vpmuldq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pmuldq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULUDQ_VdqHdqWdq_Kmask, "vpmuludq", "vpmuludq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pmuludq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VUCOMISS_VssWss, "vucomiss", "vucomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::UCOMISS_VssWssR, BX_ISA_AVX512, OP_Vss, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCOMISS_VssWss, "vcomiss", "vcomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::COMISS_VssWssR, BX_ISA_AVX512, OP_Vss, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VUCOMISD_VsdWsd, "vucomisd", "vucomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::UCOMISD_VsdWsdR, BX_ISA_AVX512, OP_Vsd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCOMISD_VsdWsd, "vcomisd", "vcomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::COMISD_VsdWsdR, BX_ISA_AVX512, OP_Vsd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTSS2SD_VsdWss, "vcvtss2sd", "vcvtss2sd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTSS2SD_VsdWssR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2SS_VssWsd, "vcvtsd2ss", "vcvtsd2ss", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTSD2SS_VssWsdR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTPS2PD_VpdWps, "vcvtps2pd", "vcvtps2pd", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTPS2PD_VpdWpsR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2PS_VpsWpd, "vcvtpd2ps", "vcvtpd2ps", &BX_CPU_C::LOAD_BROADCAST_VectorQ,      &BX_CPU_C::VCVTPD2PS_VpsWpdR, BX_ISA_AVX512, OP_Vps, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTSS2SD_VsdWss_Kmask, "vcvtss2sd", "vcvtss2sd", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VCVTSS2SD_MASK_VsdWssR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2SS_VssWsd_Kmask, "vcvtsd2ss", "vcvtsd2ss", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VCVTSD2SS_MASK_VssWsdR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTPS2PD_VpdWps_Kmask, "vcvtps2pd", "vcvtps2pd", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTPS2PD_MASK_VpdWpsR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2PS_VpsWpd_Kmask, "vcvtpd2ps", "vcvtpd2ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ,      &BX_CPU_C::VCVTPD2PS_MASK_VpsWpdR, BX_ISA_AVX512, OP_Vps, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTPS2DQ_VdqWps, "vcvtps2dq", "vcvtps2dq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTPS2DQ_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPS2DQ_VdqWps_Kmask, "vcvtps2dq", "vcvtps2dq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTPS2DQ_MASK_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPS2DQ_VdqWps, "vcvttps2dq", "vcvttps2dq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTTPS2DQ_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPS2DQ_VdqWps_Kmask, "vcvttps2dq", "vcvttps2dq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTTPS2DQ_MASK_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTPD2DQ_VdqWpd, "vcvtpd2dq", "vcvtpd2dq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTPD2DQ_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2DQ_VdqWpd_Kmask, "vcvtpd2dq", "vcvtpd2dq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTPD2DQ_MASK_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2DQ_VdqWpd, "vcvttpd2dq", "vcvttpd2dq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTTPD2DQ_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2DQ_VdqWpd_Kmask, "vcvttpd2dq", "vcvttpd2dq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTTPD2DQ_MASK_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTPH2PS_VpsWps, "vcvtph2ps", "vcvtph2ps", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTPH2PS_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTPH2PS_VpsWps_Kmask, "vcvtph2ps", "vcvtph2ps", &BX_CPU_C::LOAD_MASK_Half_VectorW, &BX_CPU_C::VCVTPH2PS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTPS2PH_WpsVpsIb, "vcvtps2ph", "vcvtps2ph", &BX_CPU_C::VCVTPS2PH_WpsVpsIb, &BX_CPU_C::VCVTPS2PH_WpsVpsIb, BX_ISA_AVX512, OP_mVHV, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTPS2PH_WpsVpsIb_Kmask, "vcvtps2ph", "vcvtps2ph", &BX_CPU_C::VCVTPS2PH_MASK_WpsVpsIbM, &BX_CPU_C::VCVTPS2PH_MASK_WpsVpsIbR, BX_ISA_AVX512, OP_mVHV, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTNEPS2BF16_MASK_Vbf16Wps, "vcvtneps2bf16", "vcvtneps2bf16", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTNEPS2BF16_MASK_Vbf16WpsR, BX_ISA_AVX512_BF16, OP_Vbf16, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTNE2PS2BF16_MASK_Vbf16HpsWps, "vcvtne2ps2bf16", "vcvtne2ps2bf16", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTNE2PS2BF16_MASK_Vbf16HpsWpsR, BX_ISA_AVX512_BF16, OP_Vbf16, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VDPBF16PS_MASK_VpsHdqWdq, "vcvtneps2bf16", "vcvtneps2bf16", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VDPBF16PS_MASK_VpsHdqWdqR, BX_ISA_AVX512_BF16, OP_Vps, OP_Hdq, OP_mVdq32, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPS_VpsWps_Kmask, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_MASK_VpsWpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPS_WpsVps_Kmask, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_MASK_WpsVpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_mVps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPD_VpdWpd_Kmask, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPD_MASK_VpdWpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVAPD_WpdVpd_Kmask, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPD_MASK_WpdVpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_mVpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPS_VpsWps_Kmask, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_MASK_VpsWpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPS_WpsVps_Kmask, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_MASK_WpsVpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_mVps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPD_VpdWpd_Kmask, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPD_MASK_VpdWpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVUPD_WpdVpd_Kmask, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPD_MASK_WpdVpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_mVpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVSD_VsdHpdWsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSS_VssHpsWss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSD_WsdHpdVsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX512, OP_mVsd, OP_Hpd, OP_Vsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSS_WssHpsVss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX512, OP_mVss, OP_Hps, OP_Vss, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VMOVSD_VsdWsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_VsdWsdM, NULL, BX_ISA_AVX512, OP_Vsd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSS_VssWss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_VssWssM, NULL, BX_ISA_AVX512, OP_Vss, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSD_WsdVsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_WsdVsdM, NULL, BX_ISA_AVX512, OP_mVsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSS_WssVss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_WssVssM, NULL, BX_ISA_AVX512, OP_mVss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVSD_VsdHpdWsd_Kmask, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSS_VssHpsWss_Kmask, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSD_WsdHpdVsd_Kmask, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_mVsd, OP_Hpd, OP_Vsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VMOVSS_WssHpsVss_Kmask, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_mVss, OP_Hps, OP_Vss, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VMOVSD_VsdWsd_Kmask, "vmovsd", "vmovsd", &BX_CPU_C::VMOVSD_MASK_VsdWsdM, NULL, BX_ISA_AVX512, OP_Vsd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSS_VssWss_Kmask, "vmovss", "vmovss", &BX_CPU_C::VMOVSS_MASK_VssWssM, NULL, BX_ISA_AVX512, OP_Vss, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSD_WsdVsd_Kmask, "vmovsd", "vmovsd", &BX_CPU_C::VMOVSD_MASK_WsdVsdM, NULL, BX_ISA_AVX512, OP_mVsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSS_WssVss_Kmask, "vmovss", "vmovss", &BX_CPU_C::VMOVSS_MASK_WssVssM, NULL, BX_ISA_AVX512, OP_mVss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPABSB_VdqWdq, "vpabsb", "vpabsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPABSW_VdqWdq, "vpabsw", "vpabsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPABSD_VdqWdq, "vpabsd", "vpabsd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsd>, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPABSQ_VdqWdq, "vpabsq", "vpabsq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsq>, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPABSB_VdqWdq_Kmask, "vpabsb", "vpabsb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPABSB_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPABSW_VdqWdq_Kmask, "vpabsw", "vpabsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPABSW_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPABSD_VdqWdq_Kmask, "vpabsd", "vpabsd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPABSD_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPABSQ_VdqWdq_Kmask, "vpabsq", "vpabsq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPABSQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VMOVNTDQA_VdqMdq, "vmovntdqa", "vmovntdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVNTPS_MpsVps, "vmovntps", "vmovntps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVNTPD_MpdVpd, "vmovntpd", "vmovntpd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVNTDQ_MdqVdq, "vmovntdq", "vmovntdq", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCMPEQB_KGqHdqWdq, "vpcmpeqb", "vpcmpeqb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPCMPEQB_MASK_KGqHdqWdqR, BX_ISA_AVX512_BW, OP_KGq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPEQW_KGdHdqWdq, "vpcmpeqw", "vpcmpeqw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPCMPEQW_MASK_KGdHdqWdqR, BX_ISA_AVX512_BW, OP_KGd, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPGTB_KGqHdqWdq, "vpcmpgtb", "vpcmpgtb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPCMPGTB_MASK_KGqHdqWdqR, BX_ISA_AVX512_BW, OP_KGq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPGTW_KGdHdqWdq, "vpcmpgtw", "vpcmpgtw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPCMPGTW_MASK_KGdHdqWdqR, BX_ISA_AVX512_BW, OP_KGd, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCMPEQD_KGwHdqWdq, "vpcmpeqd", "vpcmpeqd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPCMPEQD_MASK_KGwHdqWdqR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPEQQ_KGbHdqWdq, "vpcmpeqq", "vpcmpeqq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPCMPEQQ_MASK_KGbHdqWdqR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPGTD_KGwHdqWdq, "vpcmpgtd", "vpcmpgtd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPCMPGTD_MASK_KGwHdqWdqR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPGTQ_KGbHdqWdq, "vpcmpgtq", "vpcmpgtq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPCMPGTQ_MASK_KGbHdqWdqR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSRLW_VdqHdqWdq, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLW_VdqHdqWdq_Kmask, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_WORD_EL_MASK<xmm_psrlw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAW_VdqHdqWdq, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAW_VdqHdqWdq_Kmask, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_WORD_EL_MASK<xmm_psraw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLW_VdqHdqWdq, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLW_VdqHdqWdq_Kmask, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_WORD_EL_MASK<xmm_psllw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRLW_UdqIb, "vpsrlw", "vpsrlw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLW_UdqIb_Kmask, "vpsrlw", "vpsrlw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_WORD_EL_MASK<xmm_psrlw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLW_UdqIb, "vpsllw", "vpsllw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLW_UdqIb_Kmask, "vpsllw", "vpsllw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_WORD_EL_MASK<xmm_psllw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAW_UdqIb, "vpsraw", "vpsraw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAW_UdqIb_Kmask, "vpsraw", "vpsraw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_WORD_EL_MASK<xmm_psraw>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRLD_VdqHdqWdq, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLQ_VdqHdqWdq, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLD_VdqHdqWdq_Kmask, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_DWORD_EL_MASK<xmm_psrld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLQ_VdqHdqWdq_Kmask, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_QWORD_EL_MASK<xmm_psrlq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSLLD_VdqHdqWdq, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_pslld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLQ_VdqHdqWdq, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLD_VdqHdqWdq_Kmask, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_DWORD_EL_MASK<xmm_pslld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLQ_VdqHdqWdq_Kmask, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_QWORD_EL_MASK<xmm_psllq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRLD_UdqIb, "vpsrld", "vpsrld", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrld>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRLD_UdqIb_Kmask, "vpsrld", "vpsrld", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_DWORD_EL_MASK<xmm_psrld>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRLQ_UdqIb, "vpsrlq", "vpsrlq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRLQ_UdqIb_Kmask, "vpsrlq", "vpsrlq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_QWORD_EL_MASK<xmm_psrlq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLD_UdqIb, "vpslld", "vpslld", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslld>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLD_UdqIb_Kmask, "vpslld", "vpslld", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_DWORD_EL_MASK<xmm_pslld>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLQ_UdqIb, "vpsllq", "vpsllq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLQ_UdqIb_Kmask, "vpsllq", "vpsllq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_QWORD_EL_MASK<xmm_psllq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHUFB_VdqHdqWdq, "vpshufb", "vpshufb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pshufb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHUFB_VdqHdqWdq_Kmask, "vpshufb", "vpshufb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFB_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPERMQ_VdqWdqIb_Kmask, "vpermq", "vpermq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMQ_MASK_VdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMPD_VpdWpdIb_Kmask, "vpermpd", "vpermpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMQ_MASK_VdqWdqIbR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VSHUFPS_VpsHpsWpsIb, "vshufps", "vshufps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VSHUFPS_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFPD_VpdHpdWpdIb, "vshufpd", "vshufpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VSHUFPD_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFPS_VpsHpsWpsIb_Kmask, "vshufps", "vshufps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VSHUFPS_MASK_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFPD_VpdHpdWpdIb_Kmask, "vshufpd", "vshufpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VSHUFPD_MASK_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPERMILPS_VpsHpsWps, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPD_VpdHpdWpd, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPS_VpsHpsWps_Kmask, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_3OP_DWORD_EL_MASK<xmm_permilps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPD_VpdHpdWpd_Kmask, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX512_3OP_QWORD_EL_MASK<xmm_permilpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPERMILPS_VpsWpsIb, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPD_VpdWpdIb, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMILPD_VpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPS_VpsWpsIb_Kmask, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMILPS_MASK_VpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMILPD_VpdWpdIb_Kmask, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMILPD_MASK_VpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHUFD_VdqWdqIb, "vpshufd", "vpshufd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHUFD_VdqWdqIb_Kmask, "vpshufd", "vpshufd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMILPS_MASK_VpsWpsIbR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHUFLW_VdqWdqIb, "vpshuflw", "vpshuflw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFLW_VdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHUFLW_VdqWdqIb_Kmask, "vpshuflw", "vpshuflw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFLW_MASK_VdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHUFHW_VdqWdqIb, "vpshufhw", "vpshufhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFHW_VdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHUFHW_VdqWdqIb_Kmask, "vpshufhw", "vpshufhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFHW_MASK_VdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPBROADCASTB_VdqEb, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTB_VdqEbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTB_VdqEb_Kmask, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTB_MASK_VdqEbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTW_VdqEw, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTW_VdqEwR, BX_ISA_AVX512_BW, OP_Vdq, OP_Ew, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTW_VdqEw_Kmask, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTW_MASK_VdqEwR, BX_ISA_AVX512_BW, OP_Vdq, OP_Ew, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTD_VdqEd, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTD_VdqEdR, BX_ISA_AVX512, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTD_VdqEd_Kmask, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTD_MASK_VdqEdR, BX_ISA_AVX512, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTQ_VdqEq, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTQ_VdqEqR, BX_ISA_AVX512, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTQ_VdqEq_Kmask, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTQ_MASK_VdqEqR, BX_ISA_AVX512, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPBROADCASTB_VdqWb, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::LOAD_Wb,  &BX_CPU_C::VPBROADCASTB_VdqWbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq8,  OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTB_VdqWb_Kmask, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::VPBROADCASTB_MASK_VdqWbM,  &BX_CPU_C::VPBROADCASTB_MASK_VdqWbR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq8,  OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTW_VdqWw, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::LOAD_Ww,  &BX_CPU_C::VPBROADCASTW_VdqWwR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq16, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTW_VdqWw_Kmask, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::VPBROADCASTW_MASK_VdqWwM,  &BX_CPU_C::VPBROADCASTW_MASK_VdqWwR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq16, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTD_VdqWd, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX512,    OP_Vdq, OP_mVdq32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTD_VdqWd_Kmask, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::VPBROADCASTD_MASK_VdqWdM, &BX_CPU_C::VPBROADCASTD_MASK_VdqWdR, BX_ISA_AVX512,    OP_Vdq, OP_mVdq32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTQ_VdqWq, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX512, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTQ_VdqWq_Kmask, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::VPBROADCASTQ_MASK_VdqWqM, &BX_CPU_C::VPBROADCASTQ_MASK_VdqWqR, BX_ISA_AVX512, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTSS_VpsWss, "vbroadcastss", "vbroadcastss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX512, OP_Vps, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTSS_VpsWss_Kmask, "vbroadcastss", "vbroadcastss", &BX_CPU_C::VPBROADCASTD_MASK_VdqWdM, &BX_CPU_C::VPBROADCASTD_MASK_VdqWdR, BX_ISA_AVX512, OP_Vps, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTSD_VpdWsd, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX512, OP_Vpd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTSD_VpdWsd_Kmask, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::VPBROADCASTQ_MASK_VdqWqM, &BX_CPU_C::VPBROADCASTQ_MASK_VdqWqR, BX_ISA_AVX512, OP_Vpd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVQ_WqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX512, OP_mVpd64, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVQ_VqWq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX512, OP_Vq, OP_mVpd64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VINSERTPS_VpsWssIb, "vinsertps", "vinsertps", &BX_CPU_C::VINSERTPS_VpsHpsWssIbM, &BX_CPU_C::VINSERTPS_VpsHpsWssIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTPS_EdVpsIb, "vextractps", "vextractps", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX512, OP_Ed, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVLPS_VpsHpsMq, "vmovlps", "vmovlps", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVHV, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVHLPS_VpsHpsWps, "vmovhlps", "vmovhlps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVHLPS_VpsHpsWps, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVHPS_VpsHpsMq, "vmovhps", "vmovhps", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVHV, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVLHPS_VpsHpsWps, "vmovlhps", "vmovlhps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVLHPS_VpsHpsWps, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVLPS_MqVps, "vmovlps", "vmovlps", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVHV, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVHPS_MqVps, "vmovhps", "vmovhps", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVHV, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVLPD_MqVsd, "vmovlpd", "vmovlpd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVHPD_MqVsd, "vmovhpd", "vmovhpd", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_mVsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVLPD_VpdHpdMq, "vmovlpd", "vmovlpd", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVHPD_VpdHpdMq, "vmovhpd", "vmovhpd", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDDUP_VpdWpd, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVDDUP_VpdWpdR,  BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSLDUP_VpsWps, "vmovsldup", "vmovsldup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSLDUP_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSHDUP_VpsWps, "vmovshdup", "vmovshdup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSHDUP_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDDUP_VpdWpd_Kmask, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVDDUP_MASK_VpdWpdR,  BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSLDUP_VpsWps_Kmask, "vmovsldup", "vmovsldup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSLDUP_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVSHDUP_VpsWps_Kmask, "vmovshdup", "vmovshdup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSHDUP_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVQB_WdqVdq, "vpmovqb", "vpmovqb", &BX_CPU_C::VPMOVQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVQB_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVDB_WdqVdq, "vpmovdb", "vpmovdb", &BX_CPU_C::VPMOVDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVDB_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVWB_WdqVdq, "vpmovwb", "vpmovwb", &BX_CPU_C::VPMOVWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVWB_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVDW_WdqVdq, "vpmovdw", "vpmovdw", &BX_CPU_C::VPMOVDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVDW_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVQW_WdqVdq, "vpmovqw", "vpmovqw", &BX_CPU_C::VPMOVQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVQW_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVQD_WdqVdq, "vpmovqd", "vpmovqd", &BX_CPU_C::VPMOVQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVQD_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVQB_WdqVdq_Kmask, "vpmovqb", "vpmovqb", &BX_CPU_C::VPMOVQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVQB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVDB_WdqVdq_Kmask, "vpmovdb", "vpmovdb", &BX_CPU_C::VPMOVDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVDB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVWB_WdqVdq_Kmask, "vpmovwb", "vpmovwb", &BX_CPU_C::VPMOVWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVWB_MASK_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVDW_WdqVdq_Kmask, "vpmovdw", "vpmovdw", &BX_CPU_C::VPMOVDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVDW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVQW_WdqVdq_Kmask, "vpmovqw", "vpmovqw", &BX_CPU_C::VPMOVQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVQW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVQD_WdqVdq_Kmask, "vpmovqd", "vpmovqd", &BX_CPU_C::VPMOVQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVQD_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVUSQB_WdqVdq, "vpmovusqb", "vpmovusqb", &BX_CPU_C::VPMOVUSQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQB_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSDB_WdqVdq, "vpmovusdb", "vpmovusdb", &BX_CPU_C::VPMOVUSDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSDB_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSWB_WdqVdq, "vpmovuswb", "vpmovuswb", &BX_CPU_C::VPMOVUSWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSWB_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSDW_WdqVdq, "vpmovusdw", "vpmovusdw", &BX_CPU_C::VPMOVUSDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSDW_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSQW_WdqVdq, "vpmovusqw", "vpmovusqw", &BX_CPU_C::VPMOVUSQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQW_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSQD_WdqVdq, "vpmovusqd", "vpmovusqd", &BX_CPU_C::VPMOVUSQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQD_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVUSQB_WdqVdq_Kmask, "vpmovusqb", "vpmovusqb", &BX_CPU_C::VPMOVUSQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSDB_WdqVdq_Kmask, "vpmovusdb", "vpmovusdb", &BX_CPU_C::VPMOVUSDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSDB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSWB_WdqVdq_Kmask, "vpmovuswb", "vpmovuswb", &BX_CPU_C::VPMOVUSWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSWB_MASK_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSDW_WdqVdq_Kmask, "vpmovusdw", "vpmovusdw", &BX_CPU_C::VPMOVUSDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSDW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSQW_WdqVdq_Kmask, "vpmovusqw", "vpmovusqw", &BX_CPU_C::VPMOVUSQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVUSQD_WdqVdq_Kmask, "vpmovusqd", "vpmovusqd", &BX_CPU_C::VPMOVUSQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVUSQD_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVSQB_WdqVdq, "vpmovsqb", "vpmovsqb", &BX_CPU_C::VPMOVSQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQB_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSDB_WdqVdq, "vpmovsdb", "vpmovsdb", &BX_CPU_C::VPMOVSDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSDB_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSWB_WdqVdq, "vpmovswb", "vpmovswb", &BX_CPU_C::VPMOVSWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSWB_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSDW_WdqVdq, "vpmovsdw", "vpmovsdw", &BX_CPU_C::VPMOVSDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVSDW_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSQW_WdqVdq, "vpmovsqw", "vpmovsqw", &BX_CPU_C::VPMOVSQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQW_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSQD_WdqVdq, "vpmovsqd", "vpmovsqd", &BX_CPU_C::VPMOVSQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQD_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVSQB_WdqVdq_Kmask, "vpmovsqb", "vpmovsqb", &BX_CPU_C::VPMOVSQB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVOV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSDB_WdqVdq_Kmask, "vpmovsdb", "vpmovsdb", &BX_CPU_C::VPMOVSDB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSDB_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSWB_WdqVdq_Kmask, "vpmovswb", "vpmovswb", &BX_CPU_C::VPMOVSWB_MASK_WdqVdqM, &BX_CPU_C::VPMOVSWB_MASK_WdqVdqR, BX_ISA_AVX512_BW, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSDW_WdqVdq_Kmask, "vpmovsdw", "vpmovsdw", &BX_CPU_C::VPMOVSDW_MASK_WdqVdqM, &BX_CPU_C::VPMOVSDW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSQW_WdqVdq_Kmask, "vpmovsqw", "vpmovsqw", &BX_CPU_C::VPMOVSQW_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQW_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVQV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSQD_WdqVdq_Kmask, "vpmovsqd", "vpmovsqd", &BX_CPU_C::VPMOVSQD_MASK_WdqVdqM, &BX_CPU_C::VPMOVSQD_MASK_WdqVdqR, BX_ISA_AVX512, OP_mVHV, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVSXBW_VdqWdq, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVSXBW_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXBD_VdqWdq, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_Quarter_Vector, &BX_CPU_C::VPMOVSXBD_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXBQ_VdqWdq, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_Eighth_Vector, &BX_CPU_C::VPMOVSXBQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVOV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXWD_VdqWdq, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVSXWD_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXWQ_VdqWdq, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_Quarter_Vector, &BX_CPU_C::VPMOVSXWQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXDQ_VdqWdq, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVSXDQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVSXBW_VdqWdq_Kmask, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOAD_MASK_Half_VectorB, &BX_CPU_C::VPMOVSXBW_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXBD_VdqWdq_Kmask, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_MASK_Quarter_VectorB, &BX_CPU_C::VPMOVSXBD_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXBQ_VdqWdq_Kmask, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_MASK_Eighth_VectorB, &BX_CPU_C::VPMOVSXBQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVOV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXWD_VdqWdq_Kmask, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOAD_MASK_Half_VectorW, &BX_CPU_C::VPMOVSXWD_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXWQ_VdqWdq_Kmask, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_MASK_Quarter_VectorW, &BX_CPU_C::VPMOVSXWQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVSXDQ_VdqWdq_Kmask, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOAD_MASK_Half_VectorD, &BX_CPU_C::VPMOVSXDQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVZXBW_VdqWdq, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVZXBW_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXBD_VdqWdq, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_Quarter_Vector, &BX_CPU_C::VPMOVZXBD_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXBQ_VdqWdq, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_Eighth_Vector, &BX_CPU_C::VPMOVZXBQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVOV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXWD_VdqWdq, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVZXWD_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXWQ_VdqWdq, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_Quarter_Vector, &BX_CPU_C::VPMOVZXWQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXDQ_VdqWdq, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VPMOVZXDQ_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVZXBW_VdqWdq_Kmask, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOAD_MASK_Half_VectorB, &BX_CPU_C::VPMOVZXBW_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXBD_VdqWdq_Kmask, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_MASK_Quarter_VectorB, &BX_CPU_C::VPMOVZXBD_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXBQ_VdqWdq_Kmask, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_MASK_Eighth_VectorB, &BX_CPU_C::VPMOVZXBQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVOV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXWD_VdqWdq_Kmask, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOAD_MASK_Half_VectorW, &BX_CPU_C::VPMOVZXWD_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXWQ_VdqWdq_Kmask, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_MASK_Quarter_VectorW, &BX_CPU_C::VPMOVZXWQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVQV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVZXDQ_VdqWdq_Kmask, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOAD_MASK_Half_VectorD, &BX_CPU_C::VPMOVZXDQ_MASK_VdqWdqR, BX_ISA_AVX512, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSUBB_VdqHdqWdq, "vpsubb", "vpsubb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBSB_VdqHdqWdq, "vpsubsb", "vpsubsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBUSB_VdqHdqWdq, "vpsubusb", "vpsubusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBW_VdqHdqWdq, "vpsubw", "vpsubw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBSW_VdqHdqWdq, "vpsubsw", "vpsubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBUSW_VdqHdqWdq, "vpsubusw", "vpsubusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDB_VdqHdqWdq, "vpaddb", "vpaddb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDSB_VdqHdqWdq, "vpaddsb", "vpaddsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDUSB_VdqHdqWdq, "vpaddusb", "vpaddusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDW_VdqHdqWdq, "vpaddw", "vpaddw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDSW_VdqHdqWdq, "vpaddsw", "vpaddsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDUSW_VdqHdqWdq, "vpaddusw", "vpaddusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSUBB_VdqHdqWdq_Kmask, "vpsubb", "vpsubb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_psubb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBSB_VdqHdqWdq_Kmask, "vpsubsb", "vpsubsb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_psubsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBUSB_VdqHdqWdq_Kmask, "vpsubusb", "vpsubusb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_psubusb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBW_VdqHdqWdq_Kmask, "vpsubw", "vpsubw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psubw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBSW_VdqHdqWdq_Kmask, "vpsubsw", "vpsubsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psubsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSUBUSW_VdqHdqWdq_Kmask, "vpsubusw", "vpsubusw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psubusw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDB_VdqHdqWdq_Kmask, "vpaddb", "vpaddb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_paddb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDSB_VdqHdqWdq_Kmask, "vpaddsb", "vpaddsb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_paddsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDUSB_VdqHdqWdq_Kmask, "vpaddusb", "vpaddusb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_paddusb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDW_VdqHdqWdq_Kmask, "vpaddw", "vpaddw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_paddw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDSW_VdqHdqWdq_Kmask, "vpaddsw", "vpaddsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_paddsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPADDUSW_VdqHdqWdq_Kmask, "vpaddusw", "vpaddusw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_paddusw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMINSB_VdqHdqWdq, "vpminsb", "vpminsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINUB_VdqHdqWdq, "vpminub", "vpminub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminub>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXUB_VdqHdqWdq, "vpmaxub", "vpmaxub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxub>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXSB_VdqHdqWdq, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINSW_VdqHdqWdq, "vpminsw", "vpminsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINUW_VdqHdqWdq, "vpminuw", "vpminuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXSW_VdqHdqWdq, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXUW_VdqHdqWdq, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMINSB_VdqHdqWdq_Kmask, "vpminsb", "vpminsb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_pminsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINUB_VdqHdqWdq_Kmask, "vpminub", "vpminub", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_pminub>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXUB_VdqHdqWdq_Kmask, "vpmaxub", "vpmaxub", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_pmaxub>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXSB_VdqHdqWdq_Kmask, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_pmaxsb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINSW_VdqHdqWdq_Kmask, "vpminsw", "vpminsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pminsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMINUW_VdqHdqWdq_Kmask, "vpminuw", "vpminuw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pminuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXSW_VdqHdqWdq_Kmask, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmaxsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMAXUW_VdqHdqWdq_Kmask, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmaxuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPACKSSWB_VdqHdqWdq, "vpacksswb", "vpacksswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packsswb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPACKSSWB_VdqHdqWdq_Kmask, "vpacksswb", "vpacksswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_packsswb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPACKUSWB_VdqHdqWdq, "vpackuswb", "vpackuswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packuswb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPACKUSWB_VdqHdqWdq_Kmask, "vpackuswb", "vpackuswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_packuswb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPACKSSDW_VdqHdqWdq, "vpackssdw", "vpackssdw", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packssdw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPACKSSDW_VdqHdqWdq_Kmask, "vpackssdw", "vpackssdw", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_packssdw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPACKUSDW_VdqHdqWdq, "vpackusdw", "vpackusdw", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packusdw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPACKUSDW_VdqHdqWdq_Kmask, "vpackusdw", "vpackusdw", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_packusdw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPUNPCKLBW_VdqHdqWdq, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklbw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKHBW_VdqHdqWdq, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhbw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKLBW_VdqHdqWdq_Kmask, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_punpcklbw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKHBW_VdqHdqWdq_Kmask, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_punpckhbw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPUNPCKLWD_VdqHdqWdq, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKHWD_VdqHdqWdq, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKLWD_VdqHdqWdq_Kmask, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_punpcklwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPUNPCKHWD_VdqHdqWdq_Kmask, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_punpckhwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPAVGB_VdqHdqWdq, "vpavgb", "vpavgb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPAVGW_VdqHdqWdq, "vpavgw", "vpavgw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPAVGB_VdqHdqWdq_Kmask, "vpavgb", "vpavgb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::HANDLE_AVX512_2OP_BYTE_EL_MASK<xmm_pavgb>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPAVGW_VdqHdqWdq_Kmask, "vpavgw", "vpavgw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pavgw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMADDUBSW_VdqHdqWdq, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddubsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMADDUBSW_VdqHdqWdq_Kmask, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmaddubsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMULLW_VdqHdqWdq, "vpmullw", "vpmullw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHW_VdqHdqWdq, "vpmulhw", "vpmulhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHUW_VdqHdqWdq, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHRSW_VdqHdqWdq, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhrsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMULLW_VdqHdqWdq_Kmask, "vpmullw", "vpmullw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmullw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHW_VdqHdqWdq_Kmask, "vpmulhw", "vpmulhw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmulhw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHUW_VdqHdqWdq_Kmask, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmulhuw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMULHRSW_VdqHdqWdq_Kmask, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_pmulhrsw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRLDQ_UdqIb, "vpsrldq", "vpsrldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrldq>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLDQ_UdqIb, "vpslldq", "vpslldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslldq>, BX_ISA_AVX512_BW, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSADBW_VdqHdqWdq, "vpsadbw", "vpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psadbw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMADDWD_VdqHdqWdq, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMADDWD_VdqHdqWdq_Kmask, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pmaddwd>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMADD52LUQ_VdqHdqWdq, "vpmadd52luq", "vpmadd52luq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPMADD52LUQ_VdqHdqWdqR, BX_ISA_AVX512_IFMA52, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMADD52LUQ_VdqHdqWdq_Kmask, "vpmadd52luq", "vpmadd52luq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPMADD52LUQ_MASK_VdqHdqWdqR, BX_ISA_AVX512_IFMA52, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMADD52HUQ_VdqHdqWdq, "vpmadd52huq", "vpmadd52huq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPMADD52HUQ_VdqHdqWdqR, BX_ISA_AVX512_IFMA52, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMADD52HUQ_VdqHdqWdq_Kmask, "vpmadd52huq", "vpmadd52huq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPMADD52HUQ_MASK_VdqHdqWdqR, BX_ISA_AVX512_IFMA52, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMULTISHIFTQB_VdqHdqWdq, "vpmultishiftqb", "vpmultishiftqb", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPMULTISHIFTQB_VdqHdqWdqR, BX_ISA_AVX512_VBMI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULTISHIFTQB_VdqHdqWdq_Kmask, "vpmultishiftqb", "vpmultishiftqb", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPMULTISHIFTQB_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPERMB_VdqHdqWdq_Kmask, "vpermb", "vpermb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMB_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPERMW_VdqHdqWdq_Kmask, "vpermw", "vpermw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMW_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW,   OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPERMT2B_VdqHdqWdq_Kmask, "vpermt2b", "vpermt2b", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMT2B_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPERMT2W_VdqHdqWdq_Kmask, "vpermt2w", "vpermt2w", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMT2W_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW,   OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPERMI2B_VdqHdqWdq_Kmask, "vpermi2b", "vpermi2b", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMI2B_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPERMI2W_VdqHdqWdq_Kmask, "vpermi2w", "vpermi2w", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMI2W_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW,   OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb, "vinsertf32x4", "vinsertf32x4", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX512,    OP_Vps, OP_Hps, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF64x2_VpdHpdWpdIb, "vinsertf64x2", "vinsertf64x2", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb_Kmask, "vinsertf32x4", "vinsertf32x4", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF32x4_MASK_VpsHpsWpsIbR, BX_ISA_AVX512,    OP_Vps, OP_Hps, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF64x2_VpdHpdWpdIb_Kmask, "vinsertf64x2", "vinsertf64x2", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF64x2_MASK_VpdHpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VINSERTF32x8_VpsHpsWpsIb, "vinsertf32x8", "vinsertf32x8", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_VpdHpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb, "vinsertf64x4", "vinsertf64x4", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_VpdHpdWpdIbR, BX_ISA_AVX512,    OP_Vpd, OP_Hpd, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF32x8_VpsHpsWpsIb_Kmask, "vinsertf32x8", "vinsertf32x8", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF32x8_MASK_VpsHpsWpsIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb_Kmask, "vinsertf64x4", "vinsertf64x4", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_MASK_VpdHpdWpdIbR, BX_ISA_AVX512,    OP_Vpd, OP_Hpd, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb, "vinserti32x4", "vinserti32x4", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX512,    OP_Vps, OP_Hps, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI64x2_VdqHdqWdqIb, "vinserti64x2", "vinserti64x2", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb_Kmask, "vinserti32x4", "vinserti32x4", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF32x4_MASK_VpsHpsWpsIbR, BX_ISA_AVX512,    OP_Vdq, OP_Hdq, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI64x2_VdqHdqWdqIb_Kmask, "vinserti64x2", "vinserti64x2", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF64x2_MASK_VpdHpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vdq, OP_Hdq, OP_mVdq128, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VINSERTI32x8_VdqHdqWdqIb, "vinserti32x8", "vinserti32x8", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_VpdHpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb, "vinserti64x4", "vinserti64x4", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_VpdHpdWpdIbR, BX_ISA_AVX512,    OP_Vdq, OP_Hdq, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI32x8_VdqHdqWdqIb_Kmask, "vinserti32x8", "vinserti32x8", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF32x8_MASK_VpsHpsWpsIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb_Kmask, "vinserti64x4", "vinserti64x4", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VINSERTF64x4_MASK_VpdHpdWpdIbR, BX_ISA_AVX512,    OP_Vdq, OP_Hdq, OP_mVdq256, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VEXTRACTF32x4_WpsVpsIb, "vextractf32x4", "vextractf32x4", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX512,    OP_mVdq128, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF64x2_WpdVpdIb, "vextractf64x2", "vextractf64x2", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX512_DQ, OP_mVdq128, OP_Vpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF32x4_WpsVpsIb_Kmask, "vextractf32x4", "vextractf32x4", &BX_CPU_C::VEXTRACTF32x4_MASK_WpsVpsIbM, &BX_CPU_C::VEXTRACTF32x4_MASK_WpsVpsIbR, BX_ISA_AVX512,    OP_mVdq128, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF64x2_WpdVpdIb_Kmask, "vextractf64x2", "vextractf64x2", &BX_CPU_C::VEXTRACTF64x2_MASK_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x2_MASK_WpdVpdIbR, BX_ISA_AVX512_DQ, OP_mVdq128, OP_Vpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VEXTRACTF32x8_WpsVpsIb, "vextractf32x8", "vextractf32x8", &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbR, BX_ISA_AVX512_DQ, OP_mVdq256, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF64x4_WpdVpdIb, "vextractf64x4", "vextractf64x4", &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbR, BX_ISA_AVX512,    OP_mVdq256, OP_Vpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF32x8_WpsVpsIb_Kmask, "vextractf32x8", "vextractf32x8", &BX_CPU_C::VEXTRACTF32x8_MASK_WpsVpsIbM, &BX_CPU_C::VEXTRACTF32x8_MASK_WpsVpsIbR, BX_ISA_AVX512_DQ, OP_mVdq256, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTF64x4_WpdVpdIb_Kmask, "vextractf64x4", "vextractf64x4", &BX_CPU_C::VEXTRACTF64x4_MASK_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_MASK_WpdVpdIbR, BX_ISA_AVX512,    OP_mVdq256, OP_Vpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VEXTRACTI32x4_WdqVdqIb, "vextracti32x4", "vextracti32x4", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX512,    OP_mVdq128, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI64x2_WdqVdqIb, "vextracti64x2", "vextracti64x2", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX512_DQ, OP_mVdq128, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI32x4_WdqVdqIb_Kmask, "vextracti32x4", "vextracti32x4", &BX_CPU_C::VEXTRACTF32x4_MASK_WpsVpsIbM, &BX_CPU_C::VEXTRACTF32x4_MASK_WpsVpsIbR, BX_ISA_AVX512,    OP_mVdq128, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI64x2_WdqVdqIb_Kmask, "vextracti64x2", "vextracti64x2", &BX_CPU_C::VEXTRACTF64x2_MASK_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x2_MASK_WpdVpdIbR, BX_ISA_AVX512_DQ, OP_mVdq128, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VEXTRACTI32x8_WdqVdqIb, "vextracti32x8", "vextracti32x8", &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbR, BX_ISA_AVX512_DQ, OP_mVdq256, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI64x4_WdqVdqIb, "vextracti64x4", "vextracti64x4", &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_WpdVpdIbR, BX_ISA_AVX512,    OP_mVdq256, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI32x8_WdqVdqIb_Kmask, "vextracti32x8", "vextracti32x8", &BX_CPU_C::VEXTRACTF32x8_MASK_WpsVpsIbM, &BX_CPU_C::VEXTRACTF32x8_MASK_WpsVpsIbR, BX_ISA_AVX512_DQ, OP_mVdq256, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXTRACTI64x4_WdqVdqIb_Kmask, "vextracti64x4", "vextracti64x4", &BX_CPU_C::VEXTRACTF64x4_MASK_WpdVpdIbM, &BX_CPU_C::VEXTRACTF64x4_MASK_WpdVpdIbR, BX_ISA_AVX512,    OP_mVdq256, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTF32x2_VpsWq, "vbroadcastf32x2", "vbroadcastf32x2", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF32x2_VpsWq_Kmask, "vbroadcastf32x2", "vbroadcastf32x2", &BX_CPU_C::VBROADCASTF32x2_MASK_VpsWqM, &BX_CPU_C::VBROADCASTF32x2_MASK_VpsWqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI32x2_VdqWq, "vbroadcasti32x2", "vbroadcasti32x2", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI32x2_VdqWq_Kmask, "vbroadcasti32x2", "vbroadcasti32x2", &BX_CPU_C::VBROADCASTF32x2_MASK_VpsWqM, &BX_CPU_C::VBROADCASTF32x2_MASK_VpsWqR, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTF32x4_VpsWps, "vbroadcastf32x4", "vbroadcastf32x4", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vps, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF64x2_VpdWpd, "vbroadcastf64x2", "vbroadcastf64x2", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF32x4_VpsWps_Kmask, "vbroadcastf32x4", "vbroadcastf32x4", &BX_CPU_C::VBROADCASTF32x4_MASK_VpsMps, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vps, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF64x2_VpdWpd_Kmask, "vbroadcastf64x2", "vbroadcastf64x2", &BX_CPU_C::VBROADCASTF64x2_MASK_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTF32x8_VpsWps, "vbroadcastf32x8", "vbroadcastf32x8", &BX_CPU_C::VBROADCASTF64x4_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vps, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF64x4_VpdWpd, "vbroadcastf64x4", "vbroadcastf64x4", &BX_CPU_C::VBROADCASTF64x4_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vpd, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF32x8_VpsWps_Kmask, "vbroadcastf32x8", "vbroadcastf32x8", &BX_CPU_C::VBROADCASTF32x8_MASK_VpsMps, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vps, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTF64x4_VpdWpd_Kmask, "vbroadcastf64x4", "vbroadcastf64x4", &BX_CPU_C::VBROADCASTF64x4_MASK_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vpd, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTI32x4_VdqWdq, "vbroadcasti32x4", "vbroadcasti32x4", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vdq, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI64x2_VdqWdq, "vbroadcasti64x2", "vbroadcasti64x2", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI32x4_VdqWdq_Kmask, "vbroadcasti32x4", "vbroadcasti32x4", &BX_CPU_C::VBROADCASTF32x4_MASK_VpsMps, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vdq, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI64x2_VdqWdq_Kmask, "vbroadcasti64x2", "vbroadcasti64x2", &BX_CPU_C::VBROADCASTF64x2_MASK_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq128, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBROADCASTI32x8_VdqWdq, "vbroadcasti32x8", "vbroadcasti32x8", &BX_CPU_C::VBROADCASTF64x4_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI64x4_VdqWdq, "vbroadcasti64x4", "vbroadcasti64x4", &BX_CPU_C::VBROADCASTF64x4_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vdq, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI32x8_VdqWdq_Kmask, "vbroadcasti32x8", "vbroadcasti32x8", &BX_CPU_C::VBROADCASTF32x8_MASK_VpsMps, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_Vdq, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VBROADCASTI64x4_VdqWdq_Kmask, "vbroadcasti64x4", "vbroadcasti64x4", &BX_CPU_C::VBROADCASTF64x4_MASK_VpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_Vdq, OP_mVdq256, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMULLD_VdqHdqWdq, "vpmulld", "vpmulld", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULLQ_VdqHdqWdq, "vpmullq", "vpmullq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullq>, BX_ISA_AVX512_DQ, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULLD_VdqHdqWdq_Kmask, "vpmulld", "vpmulld", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pmulld>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMULLQ_VdqHdqWdq_Kmask, "vpmullq", "vpmullq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pmullq>, BX_ISA_AVX512_DQ, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPADDD_VdqHdqWdq, "vpaddd", "vpaddd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPADDQ_VdqHdqWdq, "vpaddq", "vpaddq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPADDD_VdqHdqWdq_Kmask, "vpaddd", "vpaddd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_paddd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPADDQ_VdqHdqWdq_Kmask, "vpaddq", "vpaddq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_paddq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSUBD_VdqHdqWdq, "vpsubd", "vpsubd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSUBQ_VdqHdqWdq, "vpsubq", "vpsubq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSUBD_VdqHdqWdq_Kmask, "vpsubd", "vpsubd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_psubd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSUBQ_VdqHdqWdq_Kmask, "vpsubq", "vpsubq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_psubq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPANDD_VdqHdqWdq, "vpandd", "vpandd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDQ_VdqHdqWdq, "vpandq", "vpandq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDD_VdqHdqWdq_Kmask, "vpandd", "vpandd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_andps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDQ_VdqHdqWdq_Kmask, "vpandq", "vpandq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_andps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPANDND_VdqHdqWdq, "vpandnd", "vpandnd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDNQ_VdqHdqWdq, "vpandnq", "vpandnq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDND_VdqHdqWdq_Kmask, "vpandnd", "vpandnd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_andnps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPANDNQ_VdqHdqWdq_Kmask, "vpandnq", "vpandnq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_andnps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPORD_VdqHdqWdq, "vpord", "vpord", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPORQ_VdqHdqWdq, "vporq", "vporq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPORD_VdqHdqWdq_Kmask, "vpord", "vpord", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_orps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPORQ_VdqHdqWdq_Kmask, "vporq", "vporq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_orps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPXORD_VdqHdqWdq, "vpxord", "vpxord", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPXORQ_VdqHdqWdq, "vpxorq", "vpxorq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPXORD_VdqHdqWdq_Kmask, "vpxord", "vpxord", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_xorps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPXORQ_VdqHdqWdq_Kmask, "vpxorq", "vpxorq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_xorps>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VANDPS_VpsHpsWps, "vandps", "vandps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDPD_VpdHpdWpd, "vandpd", "vandpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDPS_VpsHpsWps_Kmask, "vandps", "vandps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_andps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDPD_VpdHpdWpd_Kmask, "vandpd", "vandpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_andps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VANDNPS_VpsHpsWps, "vandnps", "vandnps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDNPD_VpdHpdWpd, "vandnpd", "vandnpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDNPS_VpsHpsWps_Kmask, "vandnps", "vandnps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_andnps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VANDNPD_VpdHpdWpd_Kmask, "vandnpd", "vandnpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_andnps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VORPS_VpsHpsWps, "vorps", "vorps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VORPD_VpdHpdWpd, "vorpd", "vorpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VORPS_VpsHpsWps_Kmask, "vorps", "vorps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_orps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VORPD_VpdHpdWpd_Kmask, "vorpd", "vorpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_orps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VXORPS_VpsHpsWps, "vxorps", "vxorps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VXORPD_VpdHpdWpd, "vxorpd", "vxorpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VXORPS_VpsHpsWps_Kmask, "vxorps", "vxorps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_xorps>, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VXORPD_VpdHpdWpd_Kmask, "vxorpd", "vxorpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_xorps>, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMAXSD_VdqHdqWdq, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXSQ_VdqHdqWdq, "vpmaxsq", "vpmaxsq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXSD_VdqHdqWdq_Kmask, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pmaxsd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXSQ_VdqHdqWdq_Kmask, "vpmaxsq", "vpmaxsq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pmaxsq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMAXUD_VdqHdqWdq, "vpmaxud", "vpmaxud", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxud>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXUQ_VdqHdqWdq, "vpmaxuq", "vpmaxuq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXUD_VdqHdqWdq_Kmask, "vpmaxud", "vpmaxud", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pmaxud>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMAXUQ_VdqHdqWdq_Kmask, "vpmaxuq", "vpmaxuq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pmaxuq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMINSD_VdqHdqWdq, "vpminsd", "vpminsd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINSQ_VdqHdqWdq, "vpminsq", "vpminsq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINSD_VdqHdqWdq_Kmask, "vpminsd", "vpminsd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pminsd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINSQ_VdqHdqWdq_Kmask, "vpminsq", "vpminsq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pminsq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMINUD_VdqHdqWdq, "vpminud", "vpminud", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminud>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINUQ_VdqHdqWdq, "vpminuq", "vpminuq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINUD_VdqHdqWdq_Kmask, "vpminud", "vpminud", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_pminud>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPMINUQ_VdqHdqWdq_Kmask, "vpminuq", "vpminuq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_pminuq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VALIGND_VdqHdqWdqIb_Kmask, "valignd", "valignd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VALIGND_MASK_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VALIGNQ_VdqHdqWdqIb_Kmask, "valignq", "valignq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VALIGNQ_MASK_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPALIGNR_VdqHdqWdqIb, "vpalignr", "vpalignr", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPALIGNR_VdqHdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPALIGNR_VdqHdqWdqIb_Kmask, "vpalignr", "vpalignr", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPALIGNR_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VDBPSADBW_VdqHdqWdqIb_Kmask, "vdbpsadbw", "vdbpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VDBPSADBW_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRLVW_VdqHdqWdq, "vpsrlvw", "vpsrlvw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLVD_VdqHdqWdq, "vpsrlvd", "vpsrlvd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRLVQ_VdqHdqWdq, "vpsrlvq", "vpsrlvq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAVW_VdqHdqWdq, "vpsravw", "vpsravw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psravw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAVD_VdqHdqWdq, "vpsravd", "vpsravd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psravd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAVQ_VdqHdqWdq, "vpsravq", "vpsravq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psravq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLVW_VdqHdqWdq, "vpsllvw", "vpsllvw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLVD_VdqHdqWdq, "vpsllvd", "vpsllvd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLVQ_VdqHdqWdq, "vpsllvq", "vpsllvq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLVD_VdqHdqWdq, "vprolvd", "vprolvd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_prolvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLVQ_VdqHdqWdq, "vprolvq", "vprolvq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_prolvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORVD_VdqHdqWdq, "vprorvd", "vprorvd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_2OP<xmm_prorvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORVQ_VdqHdqWdq, "vprorvq", "vprorvq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_2OP<xmm_prorvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSRLVW_VdqHdqWdq_Kmask, "vpsrlvw", "vpsrlvw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psrlvw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRLVD_VdqHdqWdq_Kmask, "vpsrlvd", "vpsrlvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_psrlvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRLVQ_VdqHdqWdq_Kmask, "vpsrlvq", "vpsrlvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_psrlvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAVW_VdqHdqWdq_Kmask, "vpsravw", "vpsravw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psravw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAVD_VdqHdqWdq_Kmask, "vpsravd", "vpsravd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_psravd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAVQ_VdqHdqWdq_Kmask, "vpsravq", "vpsravq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_psravq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLVW_VdqHdqWdq_Kmask, "vpsllvw", "vpsllvw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::HANDLE_AVX512_2OP_WORD_EL_MASK<xmm_psllvw>, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSLLVD_VdqHdqWdq_Kmask, "vpsllvd", "vpsllvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_psllvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSLLVQ_VdqHdqWdq_Kmask, "vpsllvq", "vpsllvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_psllvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLVD_VdqHdqWdq_Kmask, "vprolvd", "vprolvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_prolvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLVQ_VdqHdqWdq_Kmask, "vprolvq", "vprolvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_prolvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORVD_VdqHdqWdq_Kmask, "vprorvd", "vprorvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_2OP_DWORD_EL_MASK<xmm_prorvd>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORVQ_VdqHdqWdq_Kmask, "vprorvq", "vprorvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_2OP_QWORD_EL_MASK<xmm_prorvq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSRAD_VdqHdqWdq, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrad>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAQ_VdqHdqWdq, "vpsraq", "vpsraq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAD_VdqHdqWdq_Kmask, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_DWORD_EL_MASK<xmm_psrad>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSRAQ_VdqHdqWdq_Kmask, "vpsraq", "vpsraq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX512_PSHIFT_QWORD_EL_MASK<xmm_psraq>, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq128, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPSRAD_UdqIb, "vpsrad", "vpsrad", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrad>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAQ_UdqIb, "vpsraq", "vpsraq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORD_UdqIb, "vprord", "vprord", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_prord>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORQ_UdqIb, "vprorq", "vprorq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_prorq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLD_UdqIb, "vprold", "vprold", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_prold>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLQ_UdqIb, "vprolq", "vprolq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_prolq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSRAD_UdqIb_Kmask, "vpsrad", "vpsrad", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_DWORD_EL_MASK<xmm_psrad>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSRAQ_UdqIb_Kmask, "vpsraq", "vpsraq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_QWORD_EL_MASK<xmm_psraq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORD_UdqIb_Kmask, "vprord", "vprord", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_DWORD_EL_MASK<xmm_prord>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPRORQ_UdqIb_Kmask, "vprorq", "vprorq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_QWORD_EL_MASK<xmm_prorq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLD_UdqIb_Kmask, "vprold", "vprold", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_DWORD_EL_MASK<xmm_prold>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPROLQ_UdqIb_Kmask, "vprolq", "vprolq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_SHIFT_IMM_QWORD_EL_MASK<xmm_prolq>, BX_ISA_AVX512, OP_Hdq, OP_mVdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VMOVDQU8_VdqWdq, "vmovdqu8", "vmovdqu8", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU16_VdqWdq, "vmovdqu16", "vmovdqu16", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU8_VdqWdq_Kmask, "vmovdqu8", "vmovdqu8", &BX_CPU_C::VMOVDQU8_MASK_VdqWdqM, &BX_CPU_C::VMOVDQU8_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU16_VdqWdq_Kmask, "vmovdqu16", "vmovdqu16", &BX_CPU_C::VMOVDQU16_MASK_VdqWdqM, &BX_CPU_C::VMOVDQU16_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDQU8_WdqVdq, "vmovdqu8", "vmovdqu8", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_BW, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU16_WdqVdq, "vmovdqu16", "vmovdqu16", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_BW, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU8_WdqVdq_Kmask, "vmovdqu8", "vmovdqu8", &BX_CPU_C::VMOVDQU8_MASK_WdqVdqM, &BX_CPU_C::VMOVDQU8_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU16_WdqVdq_Kmask, "vmovdqu16", "vmovdqu16", &BX_CPU_C::VMOVDQU16_MASK_WdqVdqM, &BX_CPU_C::VMOVDQU16_MASK_VdqWdqR, BX_ISA_AVX512_BW, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDQU32_VdqWdq, "vmovdqu32", "vmovdqu32", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU64_VdqWdq, "vmovdqu64", "vmovdqu64", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU32_VdqWdq_Kmask, "vmovdqu32", "vmovdqu32", &BX_CPU_C::VMOVUPS_MASK_VpsWpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU64_VdqWdq_Kmask, "vmovdqu64", "vmovdqu64", &BX_CPU_C::VMOVUPD_MASK_VpdWpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDQU32_WdqVdq, "vmovdqu32", "vmovdqu32", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU64_WdqVdq, "vmovdqu64", "vmovdqu64", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU32_WdqVdq_Kmask, "vmovdqu32", "vmovdqu32", &BX_CPU_C::VMOVUPS_MASK_WpsVpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQU64_WdqVdq_Kmask, "vmovdqu64", "vmovdqu64", &BX_CPU_C::VMOVUPD_MASK_WpdVpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDQA32_VdqWdq, "vmovdqa32", "vmovdqa32", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA64_VdqWdq, "vmovdqa64", "vmovdqa64", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA32_VdqWdq_Kmask, "vmovdqa32", "vmovdqa32", &BX_CPU_C::VMOVAPS_MASK_VpsWpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA64_VdqWdq_Kmask, "vmovdqa64", "vmovdqa64", &BX_CPU_C::VMOVAPD_MASK_VpdWpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVDQA32_WdqVdq, "vmovdqa32", "vmovdqa32", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA64_WdqVdq, "vmovdqa64", "vmovdqa64", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA32_WdqVdq_Kmask, "vmovdqa32", "vmovdqa32", &BX_CPU_C::VMOVAPS_MASK_WpsVpsM, &BX_CPU_C::VMOVAPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVDQA64_WdqVdq_Kmask, "vmovdqa64", "vmovdqa64", &BX_CPU_C::VMOVAPD_MASK_WpdVpdM, &BX_CPU_C::VMOVAPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_mVdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VRANGEPS_VpsHpsWpsIb_Kmask, "vrangeps", "vrangeps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VRANGEPS_MASK_VpsHpsWpsIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VRANGEPD_VpdHpdWpdIb_Kmask, "vrangepd", "vrangepd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VRANGEPD_MASK_VpdHpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VRANGESS_VssHpsWssIb_Kmask, "vrangess", "vrangess", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VRANGESS_MASK_VssHpsWssIbR, BX_ISA_AVX512_DQ, OP_Vss, OP_Hps, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VRANGESD_VsdHpdWsdIb_Kmask, "vrangesd", "vrangesd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VRANGESD_MASK_VsdHpdWsdIbR, BX_ISA_AVX512_DQ, OP_Vsd, OP_Hpd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VGETEXPPS_VpsWps, "vgetexpps", "vgetexpps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_getexpps>, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETEXPPD_VpdWpd, "vgetexppd", "vgetexppd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_getexppd>, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETEXPSS_VssHpsWss, "vgetexpss", "vgetexpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VGETEXPSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGETEXPSD_VsdHpdWsd, "vgetexpsd", "vgetexpsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VGETEXPSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VGETEXPPS_VpsWps_Kmask, "vgetexpps", "vgetexpps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_1OP_SINGLE<xmm_getexpps_mask>, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETEXPPD_VpdWpd_Kmask, "vgetexppd", "vgetexppd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_1OP_DOUBLE<xmm_getexppd_mask>, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETEXPSS_VssHpsWss_Kmask, "vgetexpss", "vgetexpss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VGETEXPSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGETEXPSD_VsdHpdWsd_Kmask, "vgetexpsd", "vgetexpsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VGETEXPSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VGETMANTPS_VpsWpsIb_Kmask, "vgetmantps", "vgetmantps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VGETMANTPS_MASK_VpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETMANTPD_VpdWpdIb_Kmask, "vgetmantpd", "vgetmantpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VGETMANTPD_MASK_VpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VGETMANTSS_VssHpsWssIb_Kmask, "vgetmantss", "vgetmantss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VGETMANTSS_MASK_VssHpsWssIbR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGETMANTSD_VsdHpdWsdIb_Kmask, "vgetmantsd", "vgetmantsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VGETMANTSD_MASK_VsdHpdWsdIbR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSCALEFPS_VpsHpsWps, "vscalefps", "vscalefps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_scalefps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSCALEFPD_VpdHpdWpd, "vscalefpd", "vscalefpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_scalefpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSCALEFSS_VssHpsWss, "vscalefss", "vscalefss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSCALEFSS_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCALEFSD_VsdHpdWsd, "vscalefsd", "vscalefsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSCALEFSD_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSCALEFPS_VpsHpsWps_Kmask, "vscalefps", "vscalefps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_SINGLE<xmm_scalefps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSCALEFPD_VpdHpdWpd_Kmask, "vscalefpd", "vscalefpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_2OP_DOUBLE<xmm_scalefpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VSCALEFSS_VssHpsWss_Kmask, "vscalefss", "vscalefss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VSCALEFSS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCALEFSD_VsdHpdWsd_Kmask, "vscalefsd", "vscalefsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VSCALEFSD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VRCP14PS_VpsWps_Kmask, "vrcp14ps", "vrcp14ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VRCP14PS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VRCP14PD_VpdWpd_Kmask, "vrcp14pd", "vrcp14pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VRCP14PD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VRCP14SS_VssHpsWss_Kmask, "vrcp14ss", "vrcp14ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VRCP14SS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VRCP14SD_VsdHpdWsd_Kmask, "vrcp14sd", "vrcp14sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VRCP14SD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VRSQRT14PS_VpsWps_Kmask, "vrsqrt14ps", "vrsqrt14ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VRSQRT14PS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VRSQRT14PD_VpdWpd_Kmask, "vrsqrt14pd", "vrsqrt14pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VRSQRT14PD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VRSQRT14SS_VssHpsWss_Kmask, "vrsqrt14ss", "vrsqrt14ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VRSQRT14SS_MASK_VssHpsWssR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_mVss, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VRSQRT14SD_VsdHpdWsd_Kmask, "vrsqrt14sd", "vrsqrt14sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VRSQRT14SD_MASK_VsdHpdWsdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_mVsd, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTPS2UQQ_VdqWps, "vcvtps2uqq", "vcvtps2uqq", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTPS2UQQ_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2UQQ_VdqWpd, "vcvtpd2uqq", "vcvtpd2uqq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTPD2UQQ_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPS2UQQ_VdqWps_Kmask, "vcvtps2uqq", "vcvtps2uqq", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTPS2UQQ_MASK_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2UQQ_VdqWpd_Kmask, "vcvtpd2uqq", "vcvtpd2uqq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTPD2UQQ_MASK_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTTPS2UQQ_VdqWps, "vcvttps2uqq", "vcvttps2uqq", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTTPS2UQQ_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPS2UQQ_VdqWps_Kmask, "vcvttps2uqq", "vcvttps2uqq", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTTPS2UQQ_MASK_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2UQQ_VdqWpd, "vcvttpd2uqq", "vcvttpd2uqq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTTPD2UQQ_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2UQQ_VdqWpd_Kmask, "vcvttpd2uqq", "vcvttpd2uqq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTTPD2UQQ_MASK_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTPS2QQ_VdqWps, "vcvtps2qq", "vcvtps2qq", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTPS2QQ_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPS2QQ_VdqWps_Kmask, "vcvtps2qq", "vcvtps2qq", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTPS2QQ_MASK_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2QQ_VdqWpd, "vcvtpd2qq", "vcvtpd2qq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTPD2QQ_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2QQ_VdqWpd_Kmask, "vcvtpd2qq", "vcvtpd2qq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTPD2QQ_MASK_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTTPS2QQ_VdqWps, "vcvttps2qq", "vcvttps2qq", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTTPS2QQ_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPS2QQ_VdqWps_Kmask, "vcvttps2qq", "vcvttps2qq", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTTPS2QQ_MASK_VdqWpsR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2QQ_VdqWpd, "vcvttpd2qq", "vcvttpd2qq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTTPD2QQ_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2QQ_VdqWpd_Kmask, "vcvttpd2qq", "vcvttpd2qq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTTPD2QQ_MASK_VdqWpdR, BX_ISA_AVX512_DQ, OP_Vqq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTTPS2UDQ_VdqWps, "vcvttps2udq", "vcvttps2udq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTTPS2UDQ_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2UDQ_VdqWpd, "vcvttpd2udq", "vcvttpd2udq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTTPD2UDQ_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPS2UDQ_VdqWps_Kmask, "vcvttps2udq", "vcvttps2udq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTTPS2UDQ_MASK_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTTPD2UDQ_VdqWpd_Kmask, "vcvttpd2udq", "vcvttpd2udq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTTPD2UDQ_MASK_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTPS2UDQ_VdqWps, "vcvtps2udq", "vcvtps2udq", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTPS2UDQ_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2UDQ_VdqWpd, "vcvtpd2udq", "vcvtpd2udq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTPD2UDQ_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPS2UDQ_VdqWps_Kmask, "vcvtps2udq", "vcvtps2udq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTPS2UDQ_MASK_VdqWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVps, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTPD2UDQ_VdqWpd_Kmask, "vcvtpd2udq", "vcvtpd2udq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTPD2UDQ_MASK_VdqWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTUDQ2PD_VpdWdq, "vcvtudq2pd", "vcvtudq2pd", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTUDQ2PD_VpdWdqR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTUDQ2PD_VpdWdq_Kmask, "vcvtudq2pd", "vcvtudq2pd", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTUDQ2PD_MASK_VpdWdqR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTUQQ2PD_VpdWdq, "vcvtuqq2pd", "vcvtuqq2pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTUQQ2PD_VpdWdqR, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTUQQ2PD_VpdWdq_Kmask, "vcvtuqq2pd", "vcvtuqq2pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTUQQ2PD_MASK_VpdWdqR, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTUDQ2PS_VpsWdq, "vcvtudq2ps", "vcvtudq2ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTUDQ2PS_VpsWdqR, BX_ISA_AVX512, OP_Vps, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTUDQ2PS_VpsWdq_Kmask, "vcvtudq2ps", "vcvtudq2ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTUDQ2PS_MASK_VpsWdqR, BX_ISA_AVX512, OP_Vps, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTUQQ2PS_VpsWdq, "vcvtuqq2ps", "vcvtuqq2ps", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTUQQ2PS_VpsWdqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTUQQ2PS_VpsWdq_Kmask, "vcvtuqq2ps", "vcvtuqq2ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTUQQ2PS_MASK_VpsWdqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTDQ2PD_VpdWdq, "vcvtdq2pd", "vcvtdq2pd", &BX_CPU_C::LOAD_BROADCAST_Half_VectorD, &BX_CPU_C::VCVTDQ2PD_VpdWdqR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTDQ2PD_VpdWdq_Kmask, "vcvtdq2pd", "vcvtdq2pd", &BX_CPU_C::LOAD_BROADCAST_MASK_Half_VectorD, &BX_CPU_C::VCVTDQ2PD_MASK_VpdWdqR, BX_ISA_AVX512, OP_Vpd, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_EVEX) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTQQ2PD_VpdWdq, "vcvtqq2pd", "vcvtqq2pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTQQ2PD_VpdWdqR, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTQQ2PD_VpdWdq_Kmask, "vcvtqq2pd", "vcvtqq2pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTQQ2PD_MASK_VpdWdqR, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VCVTDQ2PS_VpsWdq, "vcvtdq2ps", "vcvtdq2ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VCVTDQ2PS_VpsWdqR, BX_ISA_AVX512, OP_Vps, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTDQ2PS_VpsWdq_Kmask, "vcvtdq2ps", "vcvtdq2ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VCVTDQ2PS_MASK_VpsWdqR, BX_ISA_AVX512, OP_Vps, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTQQ2PS_VpsWdq, "vcvtqq2ps", "vcvtqq2ps", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VCVTQQ2PS_VpsWdqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VCVTQQ2PS_VpsWdq_Kmask, "vcvtqq2ps", "vcvtqq2ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VCVTQQ2PS_MASK_VpsWdqR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVqq, OP_NONE, OP_NONE, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMADD132PS_VpsHpsWps, "vfmadd132ps", "vfmadd132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD132PD_VpdHpdWpd, "vfmadd132pd", "vfmadd132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD213PS_VpsHpsWps, "vfmadd213ps", "vfmadd213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD213PD_VpdHpdWpd, "vfmadd213pd", "vfmadd213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD231PS_VpsHpsWps, "vfmadd231ps", "vfmadd231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD231PD_VpdHpdWpd, "vfmadd231pd", "vfmadd231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMADD132PS_VpsHpsWps_Kmask, "vfmadd132ps", "vfmadd132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD132PD_VpdHpdWpd_Kmask, "vfmadd132pd", "vfmadd132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD213PS_VpsHpsWps_Kmask, "vfmadd213ps", "vfmadd213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD213PD_VpdHpdWpd_Kmask, "vfmadd213pd", "vfmadd213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD231PS_VpsHpsWps_Kmask, "vfmadd231ps", "vfmadd231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADD231PD_VpdHpdWpd_Kmask, "vfmadd231pd", "vfmadd231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMADD132SS_VpsHssWss, "vfmadd132ss", "vfmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD132SD_VpdHsdWsd, "vfmadd132sd", "vfmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD213SS_VpsHssWss, "vfmadd213ss", "vfmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD213SD_VpdHsdWsd, "vfmadd213sd", "vfmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD231SS_VpsHssWss, "vfmadd231ss", "vfmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD231SD_VpdHsdWsd, "vfmadd231sd", "vfmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFMADD132SS_VpsHssWss_Kmask, "vfmadd132ss", "vfmadd132ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD132SD_VpdHsdWsd_Kmask, "vfmadd132sd", "vfmadd132sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD213SS_VpsHssWss_Kmask, "vfmadd213ss", "vfmadd213ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD213SD_VpdHsdWsd_Kmask, "vfmadd213sd", "vfmadd213sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD231SS_VpsHssWss_Kmask, "vfmadd231ss", "vfmadd231ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMADD231SD_VpdHsdWsd_Kmask, "vfmadd231sd", "vfmadd231sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFMADDSUB132PS_VpsHpsWps, "vfmaddsub132ps", "vfmaddsub132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB132PD_VpdHpdWpd, "vfmaddsub132pd", "vfmaddsub132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB213PS_VpsHpsWps, "vfmaddsub213ps", "vfmaddsub213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB213PD_VpdHpdWpd, "vfmaddsub213pd", "vfmaddsub213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB231PS_VpsHpsWps, "vfmaddsub231ps", "vfmaddsub231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB231PD_VpdHpdWpd, "vfmaddsub231pd", "vfmaddsub231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMADDSUB132PS_VpsHpsWps_Kmask, "vfmaddsub132ps", "vfmaddsub132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB132PD_VpdHpdWpd_Kmask, "vfmaddsub132pd", "vfmaddsub132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB213PS_VpsHpsWps_Kmask, "vfmaddsub213ps", "vfmaddsub213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB213PD_VpdHpdWpd_Kmask, "vfmaddsub213pd", "vfmaddsub213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB231PS_VpsHpsWps_Kmask, "vfmaddsub231ps", "vfmaddsub231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmaddsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMADDSUB231PD_VpdHpdWpd_Kmask, "vfmaddsub231pd", "vfmaddsub231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmaddsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMSUBADD132PS_VpsHpsWps, "vfmsubadd132ps", "vfmsubadd132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD132PD_VpdHpdWpd, "vfmsubadd132pd", "vfmsubadd132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD213PS_VpsHpsWps, "vfmsubadd213ps", "vfmsubadd213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD213PD_VpdHpdWpd, "vfmsubadd213pd", "vfmsubadd213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD231PS_VpsHpsWps, "vfmsubadd231ps", "vfmsubadd231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD231PD_VpdHpdWpd, "vfmsubadd231pd", "vfmsubadd231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMSUBADD132PS_VpsHpsWps_Kmask, "vfmsubadd132ps", "vfmsubadd132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD132PD_VpdHpdWpd_Kmask, "vfmsubadd132pd", "vfmsubadd132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD213PS_VpsHpsWps_Kmask, "vfmsubadd213ps", "vfmsubadd213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD213PD_VpdHpdWpd_Kmask, "vfmsubadd213pd", "vfmsubadd213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD231PS_VpsHpsWps_Kmask, "vfmsubadd231ps", "vfmsubadd231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUBADD231PD_VpdHpdWpd_Kmask, "vfmsubadd231pd", "vfmsubadd231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMSUB132PS_VpsHpsWps, "vfmsub132ps", "vfmsub132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB132PD_VpdHpdWpd, "vfmsub132pd", "vfmsub132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB213PS_VpsHpsWps, "vfmsub213ps", "vfmsub213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB213PD_VpdHpdWpd, "vfmsub213pd", "vfmsub213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB231PS_VpsHpsWps, "vfmsub231ps", "vfmsub231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB231PD_VpdHpdWpd, "vfmsub231pd", "vfmsub231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMSUB132PS_VpsHpsWps_Kmask, "vfmsub132ps", "vfmsub132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB132PD_VpdHpdWpd_Kmask, "vfmsub132pd", "vfmsub132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB213PS_VpsHpsWps_Kmask, "vfmsub213ps", "vfmsub213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB213PD_VpdHpdWpd_Kmask, "vfmsub213pd", "vfmsub213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB231PS_VpsHpsWps_Kmask, "vfmsub231ps", "vfmsub231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFMSUB231PD_VpdHpdWpd_Kmask, "vfmsub231pd", "vfmsub231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFMSUB132SS_VpsHssWss, "vfmsub132ss", "vfmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB132SD_VpdHsdWsd, "vfmsub132sd", "vfmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB213SS_VpsHssWss, "vfmsub213ss", "vfmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB213SD_VpdHsdWsd, "vfmsub213sd", "vfmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB231SS_VpsHssWss, "vfmsub231ss", "vfmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB231SD_VpdHsdWsd, "vfmsub231sd", "vfmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFMSUB132SS_VpsHssWss_Kmask, "vfmsub132ss", "vfmsub132ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB132SD_VpdHsdWsd_Kmask, "vfmsub132sd", "vfmsub132sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB213SS_VpsHssWss_Kmask, "vfmsub213ss", "vfmsub213ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB213SD_VpdHsdWsd_Kmask, "vfmsub213sd", "vfmsub213sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB231SS_VpsHssWss_Kmask, "vfmsub231ss", "vfmsub231ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFMSUB231SD_VpdHsdWsd_Kmask, "vfmsub231sd", "vfmsub231sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFNMADD132PS_VpsHpsWps, "vfnmadd132ps", "vfnmadd132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD132PD_VpdHpdWpd, "vfnmadd132pd", "vfnmadd132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD213PS_VpsHpsWps, "vfnmadd213ps", "vfnmadd213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD213PD_VpdHpdWpd, "vfnmadd213pd", "vfnmadd213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD231PS_VpsHpsWps, "vfnmadd231ps", "vfnmadd231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD231PD_VpdHpdWpd, "vfnmadd231pd", "vfnmadd231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFNMADD132PS_VpsHpsWps_Kmask, "vfnmadd132ps", "vfnmadd132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD132PD_VpdHpdWpd_Kmask, "vfnmadd132pd", "vfnmadd132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD213PS_VpsHpsWps_Kmask, "vfnmadd213ps", "vfnmadd213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD213PD_VpdHpdWpd_Kmask, "vfnmadd213pd", "vfnmadd213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD231PS_VpsHpsWps_Kmask, "vfnmadd231ps", "vfnmadd231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmaddps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMADD231PD_VpdHpdWpd_Kmask, "vfnmadd231pd", "vfnmadd231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmaddpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFNMADD132SS_VpsHssWss, "vfnmadd132ss", "vfnmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD132SD_VpdHsdWsd, "vfnmadd132sd", "vfnmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD213SS_VpsHssWss, "vfnmadd213ss", "vfnmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD213SD_VpdHsdWsd, "vfnmadd213sd", "vfnmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD231SS_VpsHssWss, "vfnmadd231ss", "vfnmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD231SD_VpdHsdWsd, "vfnmadd231sd", "vfnmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFNMADD132SS_VpsHssWss_Kmask, "vfnmadd132ss", "vfnmadd132ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD132SD_VpdHsdWsd_Kmask, "vfnmadd132sd", "vfnmadd132sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD213SS_VpsHssWss_Kmask, "vfnmadd213ss", "vfnmadd213ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD213SD_VpdHsdWsd_Kmask, "vfnmadd213sd", "vfnmadd213sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD231SS_VpsHssWss_Kmask, "vfnmadd231ss", "vfnmadd231ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMADDSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMADD231SD_VpdHsdWsd_Kmask, "vfnmadd231sd", "vfnmadd231sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMADDSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFNMSUB132PS_VpsHpsWps, "vfnmsub132ps", "vfnmsub132ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB132PD_VpdHpdWpd, "vfnmsub132pd", "vfnmsub132pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB213PS_VpsHpsWps, "vfnmsub213ps", "vfnmsub213ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB213PD_VpdHpdWpd, "vfnmsub213pd", "vfnmsub213pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB231PS_VpsHpsWps, "vfnmsub231ps", "vfnmsub231ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB231PD_VpdHpdWpd, "vfnmsub231pd", "vfnmsub231pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFNMSUB132PS_VpsHpsWps_Kmask, "vfnmsub132ps", "vfnmsub132ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Vps, OP_mVps, OP_Hps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB132PD_VpdHpdWpd_Kmask, "vfnmsub132pd", "vfnmsub132pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Vpd, OP_mVpd, OP_Hpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB213PS_VpsHpsWps_Kmask, "vfnmsub213ps", "vfnmsub213ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_Vps, OP_mVps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB213PD_VpdHpdWpd_Kmask, "vfnmsub213pd", "vfnmsub213pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_Vpd, OP_mVpd, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB231PS_VpsHpsWps_Kmask, "vfnmsub231ps", "vfnmsub231ps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_SINGLE<xmm_fnmsubps_mask>, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Vps, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFNMSUB231PD_VpdHpdWpd_Kmask, "vfnmsub231pd", "vfnmsub231pd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::HANDLE_AVX512_MASK_PFP_3OP_DOUBLE<xmm_fnmsubpd_mask>, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Vpd, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFNMSUB132SS_VpsHssWss, "vfnmsub132ss", "vfnmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB132SD_VpdHsdWsd, "vfnmsub132sd", "vfnmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB213SS_VpsHssWss, "vfnmsub213ss", "vfnmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB213SD_VpdHsdWsd, "vfnmsub213sd", "vfnmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB231SS_VpsHssWss, "vfnmsub231ss", "vfnmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB231SD_VpdHsdWsd, "vfnmsub231sd", "vfnmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFNMSUB132SS_VpsHssWss_Kmask, "vfnmsub132ss", "vfnmsub132ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Vss, OP_mVss, OP_Hss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB132SD_VpdHsdWsd_Kmask, "vfnmsub132sd", "vfnmsub132sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Vsd, OP_mVsd, OP_Hsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB213SS_VpsHssWss_Kmask, "vfnmsub213ss", "vfnmsub213ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_Vss, OP_mVss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB213SD_VpdHsdWsd_Kmask, "vfnmsub213sd", "vfnmsub213sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_Vsd, OP_mVsd, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB231SS_VpsHssWss_Kmask, "vfnmsub231ss", "vfnmsub231ss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFNMSUBSS_MASK_VpsHssWssR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Vss, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFNMSUB231SD_VpdHsdWsd_Kmask, "vfnmsub231sd", "vfnmsub231sd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFNMSUBSD_MASK_VpdHsdWsdR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Vsd, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCMPB_KGqHdqWdqIb, "vpcmpb", "vpcmpb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPCMPB_MASK_KGqHdqWdqIbR, BX_ISA_AVX512, OP_KGq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPW_KGdHdqWdqIb, "vpcmpw", "vpcmpw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPCMPW_MASK_KGdHdqWdqIbR, BX_ISA_AVX512, OP_KGd, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPUB_KGqHdqWdqIb, "vpcmpub", "vpcmpub", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPCMPUB_MASK_KGqHdqWdqIbR, BX_ISA_AVX512, OP_KGq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCMPUW_KGdHdqWdqIb, "vpcmpuw", "vpcmpuw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPCMPUW_MASK_KGdHdqWdqIbR, BX_ISA_AVX512, OP_KGd, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCMPD_KGwHdqWdqIb, "vpcmpd", "vpcmpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPCMPD_MASK_KGwHdqWdqIbR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPQ_KGbHdqWdqIb, "vpcmpq", "vpcmpq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPCMPQ_MASK_KGbHdqWdqIbR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPUD_KGwHdqWdqIb, "vpcmpud", "vpcmpud", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPCMPUD_MASK_KGwHdqWdqIbR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCMPUQ_KGbHdqWdqIb, "vpcmpuq", "vpcmpuq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPCMPUQ_MASK_KGbHdqWdqIbR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPTESTMB_KGqHdqWdq, "vptestmb", "vptestmb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPTESTMB_MASK_KGqHdqWdqR, BX_ISA_AVX512_BW, OP_KGq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPTESTMW_KGdHdqWdq, "vptestmw", "vptestmw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPTESTMW_MASK_KGdHdqWdqR, BX_ISA_AVX512_BW, OP_KGd, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPTESTNMB_KGqHdqWdq, "vptestnmb", "vptestnmb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPTESTNMB_MASK_KGqHdqWdqR, BX_ISA_AVX512_BW, OP_KGq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPTESTNMW_KGdHdqWdq, "vptestnmw", "vptestnmw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPTESTNMW_MASK_KGdHdqWdqR, BX_ISA_AVX512_BW, OP_KGd, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPTESTMD_KGwHdqWdq, "vptestmd", "vptestmd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPTESTMD_MASK_KGwHdqWdqR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTESTMQ_KGbHdqWdq, "vptestmq", "vptestmq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPTESTMQ_MASK_KGbHdqWdqR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTESTNMD_KGwHdqWdq, "vptestnmd", "vptestnmd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPTESTNMD_MASK_KGwHdqWdqR, BX_ISA_AVX512, OP_KGw, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTESTNMQ_KGbHdqWdq, "vptestnmq", "vptestnmq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPTESTNMQ_MASK_KGbHdqWdqR, BX_ISA_AVX512, OP_KGb, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb, "vpternlogd", "vpternlogd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPTERNLOGD_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTERNLOGQ_VdqHdqWdqIb, "vpternlogq", "vpternlogq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPTERNLOGQ_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb_Kmask, "vpternlogd", "vpternlogd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPTERNLOGD_MASK_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPTERNLOGQ_VdqHdqWdqIb_Kmask, "vpternlogq", "vpternlogq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPTERNLOGQ_MASK_VdqHdqWdqIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VGATHERDPS_VpsVSib, "vgatherdps", "vgatherdps", &BX_CPU_C::VGATHERDPS_MASK_VpsVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vps, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERDPD_VpdVSib, "vgatherdpd", "vgatherdpd", &BX_CPU_C::VGATHERDPD_MASK_VpdVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vpd, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERQPS_VpsVSib, "vgatherqps", "vgatherqps", &BX_CPU_C::VGATHERQPS_MASK_VpsVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vps, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERQPD_VpdVSib, "vgatherqpd", "vgatherqpd", &BX_CPU_C::VGATHERQPD_MASK_VpdVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vpd, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VGATHERDD_VdqVSib, "vgatherdd", "vgatherdd", &BX_CPU_C::VGATHERDPS_MASK_VpsVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vdq, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERDQ_VdqVSib, "vgatherdq", "vgatherdq", &BX_CPU_C::VGATHERDPD_MASK_VpdVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vdq, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERQD_VdqVSib, "vgatherqd", "vgatherqd", &BX_CPU_C::VGATHERQPS_MASK_VpsVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vdq, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VGATHERQQ_VdqVSib, "vgatherqq", "vgatherqq", &BX_CPU_C::VGATHERQPD_MASK_VpdVSib, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_Vdq, OP_VSib, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSCATTERDPS_VSibVps, "vscatterdps", "vscatterdps", &BX_CPU_C::VSCATTERDPS_MASK_VSibVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERDPD_VSibVpd, "vscatterdpd", "vscatterdpd", &BX_CPU_C::VSCATTERDPD_MASK_VSibVpd, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERQPS_VSibVps, "vscatterqps", "vscatterqps", &BX_CPU_C::VSCATTERQPS_MASK_VSibVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERQPD_VSibVpd, "vscatterqpd", "vscatterqpd", &BX_CPU_C::VSCATTERQPD_MASK_VSibVpd, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSCATTERDD_VSibVdq, "vscatterdd", "vscatterdd", &BX_CPU_C::VSCATTERDPS_MASK_VSibVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERDQ_VSibVdq, "vscatterdq", "vscatterdq", &BX_CPU_C::VSCATTERDPD_MASK_VSibVpd, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERQD_VSibVdq, "vscatterqd", "vscatterqd", &BX_CPU_C::VSCATTERQPS_MASK_VSibVps, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VSCATTERQQ_VSibVdq, "vscatterqq", "vscatterqq", &BX_CPU_C::VSCATTERQPD_MASK_VSibVpd, &BX_CPU_C::BxError, BX_ISA_AVX512, OP_VSib, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VBLENDMPS_VpsHpsWps, "vblendmps", "vblendmps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VBLENDMPS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VBLENDMPD_VpdHpdWpd, "vblendmpd", "vblendmpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VBLENDMPD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPBLENDMD_VdqHdqWdq, "vpblendmd", "vpblendmd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VBLENDMPS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPBLENDMQ_VdqHdqWdq, "vpblendmq", "vpblendmq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VBLENDMPD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPBLENDMB_VdqHdqWdq, "vpblendmb", "vpblendmb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPBLENDMB_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBLENDMW_VdqHdqWdq, "vpblendmw", "vpblendmw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPBLENDMW_MASK_VdqHdqWdqR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VSHUFI32x4_VdqHdqWdqIb_Kmask, "vshufi32x4", "vshufi32x4", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VSHUFF32x4_MASK_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFI64x2_VdqHdqWdqIb_Kmask, "vshufi64x2", "vshufi64x2", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VSHUFF64x2_MASK_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFF32x4_VpsHpsWpsIb_Kmask, "vshuff32x4", "vshuff32x4", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VSHUFF32x4_MASK_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VSHUFF64x2_VpdHpdWpdIb_Kmask, "vshuff64x2", "vshuff64x2", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VSHUFF64x2_MASK_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VEXPANDPS_VpsWps, "vexpandps", "vexpandps", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXPANDPD_VpdWpd, "vexpandpd", "vexpandpd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vpd, OP_mVpd64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXPANDPS_VpsWps_Kmask, "vexpandps", "vexpandps", &BX_CPU_C::VEXPANDPS_MASK_VpsWpsM, &BX_CPU_C::VEXPANDPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vps, OP_mVps32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VEXPANDPD_VpdWpd_Kmask, "vexpandpd", "vexpandpd", &BX_CPU_C::VEXPANDPD_MASK_VpdWpdM, &BX_CPU_C::VEXPANDPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_mVpd64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCOMPRESSPS_WpsVps, "vcompressps", "vcompressps", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVps32, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCOMPRESSPD_WpdVpd, "vcompresspd", "vcompresspd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVpd64, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCOMPRESSPS_WpsVps_Kmask, "vcompressps", "vcompressps", &BX_CPU_C::VCOMPRESSPS_MASK_WpsVps, &BX_CPU_C::VCOMPRESSPS_MASK_WpsVps, BX_ISA_AVX512, OP_mVps32, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCOMPRESSPD_WpdVpd_Kmask, "vcompresspd", "vcompresspd", &BX_CPU_C::VCOMPRESSPD_MASK_WpdVpd, &BX_CPU_C::VCOMPRESSPD_MASK_WpdVpd, BX_ISA_AVX512, OP_mVpd64, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPEXPANDB_VdqWdq, "vpexpandb", "vpexpandb", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_mVdq8,  OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDW_VdqWdq, "vpexpandw", "vpexpandw", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_mVdq16, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDB_VdqWdq_Kmask, "vpexpandb", "vpexpandb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPEXPANDB_MASK_VdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_mVdq8,  OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDW_VdqWdq_Kmask, "vpexpandw", "vpexpandw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPEXPANDW_MASK_VdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_mVdq16, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPEXPANDD_VdqWdq, "vpexpandd", "vpexpandd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDQ_VdqWdq, "vpexpandq", "vpexpandq", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDD_VdqWdq_Kmask, "vpexpandd", "vpexpandd", &BX_CPU_C::VEXPANDPS_MASK_VpsWpsM, &BX_CPU_C::VEXPANDPS_MASK_VpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_mVdq32, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXPANDQ_VdqWdq_Kmask, "vpexpandq", "vpexpandq", &BX_CPU_C::VEXPANDPD_MASK_VpdWpdM, &BX_CPU_C::VEXPANDPD_MASK_VpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_mVdq64, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCOMPRESSB_WdqVdq, "vpcompressb", "vpcompressb", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_VBMI2, OP_mVdq8,  OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSW_WdqVdq, "vpcompressw", "vpcompressw", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512_VBMI2, OP_mVdq16, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSB_WdqVdq_Kmask, "vpcompressb", "vpcompressb", &BX_CPU_C::VPCOMPRESSB_MASK_WdqVdq, &BX_CPU_C::VPCOMPRESSB_MASK_WdqVdq, BX_ISA_AVX512_VBMI2, OP_mVdq8,  OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSW_WdqVdq_Kmask, "vpcompressw", "vpcompressw", &BX_CPU_C::VPCOMPRESSW_MASK_WdqVdq, &BX_CPU_C::VPCOMPRESSW_MASK_WdqVdq, BX_ISA_AVX512_VBMI2, OP_mVdq16, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPCOMPRESSD_WdqVdq, "vpcompressd", "vpcompressd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq32, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSQ_WdqVdq, "vpcompressq", "vpcompressq", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX512, OP_mVdq64, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSD_WdqVdq_Kmask, "vpcompressd", "vpcompressd", &BX_CPU_C::VCOMPRESSPS_MASK_WpsVps, &BX_CPU_C::VCOMPRESSPS_MASK_WpsVps, BX_ISA_AVX512, OP_mVdq32, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCOMPRESSQ_WdqVdq_Kmask, "vpcompressq", "vpcompressq", &BX_CPU_C::VCOMPRESSPD_MASK_WpdVpd, &BX_CPU_C::VCOMPRESSPD_MASK_WpdVpd, BX_ISA_AVX512, OP_mVdq64, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFIXUPIMMSS_VssHssWssIb_Kmask, "vfixupimmss", "vfixupimmss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFIXUPIMMSS_MASK_VssHssWssIbR, BX_ISA_AVX512, OP_Vps, OP_Hss, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFIXUPIMMSD_VsdHsdWsdIb_Kmask, "vfixupimmsd", "vfixupimmsd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFIXUPIMMSD_MASK_VsdHsdWsdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hsd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb, "vfixupimmps", "vfixupimmps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VFIXUPIMMPS_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFIXUPIMMPD_VpdHpdWpdIb, "vfixupimmpd", "vfixupimmpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VFIXUPIMMPD_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb_Kmask, "vfixupimmps", "vfixupimmps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VFIXUPIMMPS_MASK_VpsHpsWpsIbR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_Ib, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VFIXUPIMMPD_VpdHpdWpdIb_Kmask, "vfixupimmpd", "vfixupimmpd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VFIXUPIMMPD_MASK_VpdHpdWpdIbR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_Ib, BX_PREPARE_EVEX)

bx_define_opcode(BX_IA_V512_VFPCLASSPS_KGwWpsIb_Kmask, "vfpclassps", "vfpclassps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VFPCLASSPS_MASK_KGwWpsIbR, BX_ISA_AVX512_DQ, OP_KGw, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VFPCLASSPD_KGbWpdIb_Kmask, "vfpclasspd", "vfpclasspd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VFPCLASSPD_MASK_KGbWpdIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VFPCLASSSS_KGbWssIb_Kmask, "vfpclassss", "vfpclassss", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VFPCLASSSS_MASK_KGbWssIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_mVss, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VFPCLASSSD_KGbWsdIb_Kmask, "vfpclasssd", "vfpclasssd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VFPCLASSSD_MASK_KGbWsdIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_mVsd, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VREDUCEPS_VpsWpsIb_Kmask, "vreduceps", "vreduceps", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VREDUCEPS_MASK_VpsWpsIbR, BX_ISA_AVX512_DQ, OP_Vps, OP_mVps, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VREDUCEPD_VpdWpdIb_Kmask, "vreducepd", "vreducepd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VREDUCEPD_MASK_VpdWpdIbR, BX_ISA_AVX512_DQ, OP_Vpd, OP_mVpd, OP_Ib, OP_NONE, BX_PREPARE_EVEX)
bx_define_opcode(BX_IA_V512_VREDUCESS_VssHpsWssIb_Kmask, "vreducess", "vreducess", &BX_CPU_C::LOAD_MASK_Wss, &BX_CPU_C::VREDUCESS_MASK_VssHpsWssIbR, BX_ISA_AVX512_DQ, OP_Vss, OP_Hps, OP_mVss, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VREDUCESD_VsdHpdWsdIb_Kmask, "vreducesd", "vreducesd", &BX_CPU_C::LOAD_MASK_Wsd, &BX_CPU_C::VREDUCESD_MASK_VsdHpdWsdIbR, BX_ISA_AVX512_DQ, OP_Vsd, OP_Hpd, OP_mVsd, OP_Ib, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPERMT2D_VdqHdqWdq_Kmask, "vpermt2d", "vpermt2d", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMT2PS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMT2Q_VdqHdqWdq_Kmask, "vpermt2q", "vpermt2q", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMT2PD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMI2D_VdqHdqWdq_Kmask, "vpermi2d", "vpermi2d", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMI2PS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMI2Q_VdqHdqWdq_Kmask, "vpermi2q", "vpermi2q", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMI2PD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPERMT2PS_VpsHpsWps_Kmask, "vpermt2ps", "vpermt2ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMT2PS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMT2PD_VpdHpdWpd_Kmask, "vpermt2pd", "vpermt2pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMT2PD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMI2PS_VpsHpsWps_Kmask, "vpermi2ps", "vpermi2ps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMI2PS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMI2PD_VpdHpdWpd_Kmask, "vpermi2pd", "vpermi2pd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMI2PD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPERMD_VdqHdqWdq_Kmask, "vpermd", "vpermd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMPS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMQ_VdqHdqWdq_Kmask, "vpermq", "vpermq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMPD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMPS_VpsHpsWps_Kmask, "vpermps", "vpermps", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPERMPS_MASK_VpsHpsWpsR, BX_ISA_AVX512, OP_Vps, OP_Hps, OP_mVps, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPERMPD_VpdHpdWpd_Kmask, "vpermpd", "vpermpd", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPERMPD_MASK_VpdHpdWpdR, BX_ISA_AVX512, OP_Vpd, OP_Hpd, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPCONFLICTD_VdqWdq_Kmask, "vpconflictd", "vpconflictd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VPCONFLICTD_MASK_VdqWdqR, BX_ISA_AVX512_CD, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPCONFLICTQ_VdqWdq_Kmask, "vpconflictq", "vpconflictq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VPCONFLICTQ_MASK_VdqWdqR, BX_ISA_AVX512_CD, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPLZCNTD_VdqWdq_Kmask, "vplzcntd", "vplzcntd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPLZCNTD_MASK_VdqWdqR, BX_ISA_AVX512_CD, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPLZCNTQ_VdqWdq_Kmask, "vplzcntq", "vplzcntq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPLZCNTQ_MASK_VdqWdqR, BX_ISA_AVX512_CD, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPMOVM2B_VdqKEq, "vpmovm2b", "vpmovm2b", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVM2B_VdqKEqR, BX_ISA_AVX512_BW, OP_Vdq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVM2W_VdqKEd, "vpmovm2w", "vpmovm2w", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVM2W_VdqKEdR, BX_ISA_AVX512_BW, OP_Vdq, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVM2D_VdqKEw, "vpmovm2d", "vpmovm2d", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVM2D_VdqKEwR, BX_ISA_AVX512_DQ, OP_Vdq, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVM2Q_VdqKEb, "vpmovm2q", "vpmovm2q", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVM2Q_VdqKEbR, BX_ISA_AVX512_DQ, OP_Vdq, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPMOVB2M_KGqWdq, "vpmovb2m", "vpmovb2m", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVB2M_KGqWdqR, BX_ISA_AVX512_BW, OP_KGq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVW2M_KGdWdq, "vpmovw2m", "vpmovw2m", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVW2M_KGdWdqR, BX_ISA_AVX512_BW, OP_KGd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVD2M_KGwWdq, "vpmovd2m", "vpmovd2m", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVD2M_KGwWdqR, BX_ISA_AVX512_DQ, OP_KGw, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPMOVQ2M_KGbWdq, "vpmovq2m", "vpmovq2m", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVQ2M_KGbWdqR, BX_ISA_AVX512_DQ, OP_KGb, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPOPCNTB_VdqWdq_Kmask, "vpopcntb", "vpopcntb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPOPCNTB_MASK_VdqWdqR, BX_ISA_AVX512_BITALG, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPOPCNTW_VdqWdq_Kmask, "vpopcntw", "vpopcntw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPOPCNTW_MASK_VdqWdqR, BX_ISA_AVX512_BITALG, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPOPCNTD_VdqWdq_Kmask, "vpopcntd", "vpopcntd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPOPCNTD_MASK_VdqWdqR, BX_ISA_AVX512_VPOPCNTDQ, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPOPCNTQ_VdqWdq_Kmask, "vpopcntq", "vpopcntq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPOPCNTQ_MASK_VdqWdqR, BX_ISA_AVX512_VPOPCNTDQ, OP_Vdq, OP_mVdq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHRDD_VdqHdqWdqIb_Kmask, "vpshrdd", "vpshrdd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPSHRDD_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHRDQ_VdqHdqWdqIb_Kmask, "vpshrdq", "vpshrdq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPSHRDQ_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHRDVD_VdqHdqWdq_Kmask, "vpshrdvd", "vpshrdvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPSHRDVD_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHRDVQ_VdqHdqWdq_Kmask, "vpshrdvq", "vpshrdvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPSHRDVQ_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHLDD_VdqHdqWdqIb_Kmask, "vpshldd", "vpshldd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPSHLDD_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHLDQ_VdqHdqWdqIb_Kmask, "vpshldq", "vpshldq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPSHLDQ_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHLDVD_VdqHdqWdq_Kmask, "vpshldvd", "vpshldvd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::VPSHLDVD_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPSHLDVQ_VdqHdqWdq_Kmask, "vpshldvq", "vpshldvq", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorQ, &BX_CPU_C::VPSHLDVQ_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VCVTSS2SI_GdWss, "vcvtss2si", "vcvtss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GdWssR, BX_ISA_AVX512, OP_Gd, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSS2SI_GqWss, "vcvtss2si", "vcvtss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GqWssR, BX_ISA_AVX512, OP_Gq, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2SI_GdWsd, "vcvtsd2si", "vcvtsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GdWsdR, BX_ISA_AVX512, OP_Gd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2SI_GqWsd, "vcvtsd2si", "vcvtsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GqWsdR, BX_ISA_AVX512, OP_Gq, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTTSS2SI_GdWss, "vcvttss2si", "vcvttss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GdWssR, BX_ISA_AVX512, OP_Gd, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSS2SI_GqWss, "vcvttss2si", "vcvttss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GqWssR, BX_ISA_AVX512, OP_Gq, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSD2SI_GdWsd, "vcvttsd2si", "vcvttsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GdWsdR, BX_ISA_AVX512, OP_Gd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSD2SI_GqWsd, "vcvttsd2si", "vcvttsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GqWsdR, BX_ISA_AVX512, OP_Gq, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VMOVD_VdqEd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVD_VdqEdR, BX_ISA_AVX512, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVQ_VdqEq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VdqEqR, BX_ISA_AVX512, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVD_EdVd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVD_EdVdR, BX_ISA_AVX512, OP_Ed, OP_Vd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VMOVQ_EqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_EqVqR, BX_ISA_AVX512, OP_Eq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTSI2SS_VssEd, "vcvtsi2ss", "vcvtsi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SS_VssEdR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_Ed, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSI2SS_VssEq, "vcvtsi2ss", "vcvtsi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SS_VssEqR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_Eq, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSI2SD_VsdEd, "vcvtsi2sd", "vcvtsi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SD_VsdEdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_Ed, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTSI2SD_VsdEq, "vcvtsi2sd", "vcvtsi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SD_VsdEqR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_Eq, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTUSI2SS_VssEd, "vcvtusi2ss", "vcvtusi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTUSI2SS_VssEdR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_Ed, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTUSI2SS_VssEq, "vcvtusi2ss", "vcvtusi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTUSI2SS_VssEqR, BX_ISA_AVX512, OP_Vss, OP_Hps, OP_Eq, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTUSI2SD_VsdEd, "vcvtusi2sd", "vcvtusi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTUSI2SD_VsdEdR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_Ed, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST) // ignore the SAE
bx_define_opcode(BX_IA_V512_VCVTUSI2SD_VsdEq, "vcvtusi2sd", "vcvtusi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTUSI2SD_VsdEqR, BX_ISA_AVX512, OP_Vsd, OP_Hpd, OP_Eq, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTSS2USI_GdWss, "vcvtss2usi", "vcvtss2usi", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTSS2USI_GdWssR, BX_ISA_AVX512, OP_Gd, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSS2USI_GqWss, "vcvtss2usi", "vcvtss2usiq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTSS2USI_GqWssR, BX_ISA_AVX512, OP_Gq, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2USI_GdWsd, "vcvtsd2usi", "vcvtsd2usi", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTSD2USI_GdWsdR, BX_ISA_AVX512, OP_Gd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTSD2USI_GqWsd, "vcvtsd2usi", "vcvtsd2usiq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTSD2USI_GqWsdR, BX_ISA_AVX512, OP_Gq, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VCVTTSS2USI_GdWss, "vcvttss2usi", "vcvttss2usi", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTTSS2USI_GdWssR, BX_ISA_AVX512, OP_Gd, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSS2USI_GqWss, "vcvttss2usi", "vcvttss2usiq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTTSS2USI_GqWssR, BX_ISA_AVX512, OP_Gq, OP_mVss, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSD2USI_GdWsd, "vcvttsd2usi", "vcvttsd2usi", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTTSD2USI_GdWsdR, BX_ISA_AVX512, OP_Gd, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VCVTTSD2USI_GqWsd, "vcvttsd2usi", "vcvttsd2usiq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTTSD2USI_GqWsdR, BX_ISA_AVX512, OP_Gq, OP_mVsd, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPINSRB_VdqEbIb, "vpinsrb", "vpinsrb", &BX_CPU_C::VPINSRB_VdqHdqEbIbM, &BX_CPU_C::VPINSRB_VdqHdqEbIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPINSRW_VdqEwIb, "vpinsrw", "vpinsrw", &BX_CPU_C::VPINSRW_VdqHdqEwIbM, &BX_CPU_C::VPINSRW_VdqHdqEwIbR, BX_ISA_AVX512_BW, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRW_GdUdqIb, "vpextrw", "vpextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdUdqIb, BX_ISA_AVX512_BW, OP_Gd, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRB_EdVdqIbR, "vpextrb", "vpextrb", NULL, &BX_CPU_C::PEXTRB_EdVdqIbR, BX_ISA_AVX512_BW, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRB_MbVdqIbM, "vpextrb", "vpextrb", &BX_CPU_C::PEXTRB_MbVdqIbM, NULL, BX_ISA_AVX512_BW, OP_Mb, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRW_EdVdqIbR, "vpextrw", "vpextrw", NULL, &BX_CPU_C::PEXTRW_EdVdqIbR, BX_ISA_AVX512_BW, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRW_MwVdqIbM, "vpextrw", "vpextrw", &BX_CPU_C::PEXTRW_MwVdqIbM, NULL, BX_ISA_AVX512_BW, OP_Mw, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPINSRD_VdqEdIb, "vpinsrd", "vpinsrd", &BX_CPU_C::VPINSRD_VdqHdqEdIbM, &BX_CPU_C::VPINSRD_VdqHdqEdIbR, BX_ISA_AVX512_DQ, OP_Vdq, OP_Hdq, OP_Ed, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPINSRQ_VdqEqIb, "vpinsrq", "vpinsrq", &BX_CPU_C::VPINSRQ_VdqHdqEqIbM, &BX_CPU_C::VPINSRQ_VdqHdqEqIbR, BX_ISA_AVX512_DQ, OP_Vdq, OP_Hdq, OP_Eq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRD_EdVdqIb, "vpextrd", "vpextrd", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX512_DQ, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPEXTRQ_EqVdqIb, "vpextrq", "vpextrq", &BX_CPU_C::PEXTRQ_EqVdqIbM, &BX_CPU_C::PEXTRQ_EqVdqIbR, BX_ISA_AVX512_DQ, OP_Eq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPBROADCASTMB2Q_VdqKEb, "vpbroadcastmb2q", "vpbroadcastmb2q", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTMB2Q_VdqKEbR, BX_ISA_AVX512, OP_Vdq, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPBROADCASTMW2D_VdqKEw, "vpbroadcastmw2d", "vpbroadcastmw2d", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTMW2D_VdqKEwR, BX_ISA_AVX512, OP_Vdq, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VPDPBUSD_VdqHdqWdq, "vpdpbusd", "vpdpbusd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusd>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPBUSDS_VdqHdqWdq, "vpdpbusds", "vpdpbusds", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusds>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPWSSD_VdqHdqWdq, "vpdpwssd", "vpdpwssd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssd>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPWSSDS_VdqHdqWdq, "vpdpwssds", "vpdpwssds", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssds>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPDPBUSD_VdqHdqWdq_Kmask, "vpdpbusd", "vpdpbusd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_3OP_DWORD_EL_MASK<xmm_pdpbusd>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPBUSDS_VdqHdqWdq_Kmask, "vpdpbusds", "vpdpbusds", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_3OP_DWORD_EL_MASK<xmm_pdpbusds>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPWSSD_VdqHdqWdq_Kmask, "vpdpwssd", "vpdpwssd", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_3OP_DWORD_EL_MASK<xmm_pdpwssd>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VPDPWSSDS_VdqHdqWdq_Kmask, "vpdpwssds", "vpdpwssds", &BX_CPU_C::LOAD_BROADCAST_MASK_VectorD, &BX_CPU_C::HANDLE_AVX512_3OP_DWORD_EL_MASK<xmm_pdpwssds>, BX_ISA_AVX512_VNNI, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHUFBITQMB_KGqHdqWdq_Kmask, "vpshufbitqmb", "vpshufbitqmb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VPSHUFBITQMB_MASK_KGqHdqWdqR, BX_ISA_AVX512_BITALG, OP_KGq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

bx_define_opcode(BX_IA_V512_VP2INTERSECTD_KGqHdqWdq, "vp2intersectd", "vp2intersectd", &BX_CPU_C::LOAD_BROADCAST_VectorD, &BX_CPU_C::VP2INTERSECTD_KGqHdqWdqR, BX_ISA_AVX512_VP2INTERSECT, OP_KGq2, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VP2INTERSECTQ_KGqHdqWdq, "vp2intersectq", "vp2intersectq", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VP2INTERSECTQ_KGqHdqWdqR, BX_ISA_AVX512_VP2INTERSECT, OP_KGq2, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE)

bx_define_opcode(BX_IA_V512_VPSHRDW_VdqHdqWdqIb_Kmask, "vpshrdw", "vpshrdw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPSHRDW_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHRDVW_VdqHdqWdq_Kmask, "vpshrdvw", "vpshrdvw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPSHRDVW_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHLDW_VdqHdqWdqIb_Kmask, "vpshldw", "vpshldw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPSHLDW_MASK_VdqHdqWdqIbR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPSHLDVW_VdqHdqWdq_Kmask, "vpshldvw", "vpshldvw", &BX_CPU_C::LOAD_MASK_VectorW, &BX_CPU_C::VPSHLDVW_MASK_VdqHdqWdqR, BX_ISA_AVX512_VBMI2, OP_Vdq, OP_Hdq, OP_mVdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

// EVEX form of VAES instructions
bx_define_opcode(BX_IA_V512_VAESENC_VdqHdqWdq, "vaesenc", "vaesenc", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VAESENCLAST_VdqHdqWdq, "vaesenclast", "vaesenclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENCLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VAESDEC_VdqHdqWdq, "vaesdec", "vaesdec", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDEC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VAESDECLAST_VdqHdqWdq, "vaesdeclast", "vaesdeclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDECLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)
bx_define_opcode(BX_IA_V512_VPCLMULQDQ_VdqHdqWdqIb, "vpclmulqdq", "vpclmulqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCLMULQDQ_VdqHdqWdqIbR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

// EVEX form of GFNI instructions
bx_define_opcode(BX_IA_V512_VGF2P8AFFINEQB_VdqHdqWdqIb_Kmask, "vgf2p8affineqb", "vgf2p8affineqb", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VGF2P8AFFINEQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_mVpd, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VGF2P8AFFINEINVQB_VdqHdqWdqIb_Kmask, "vgf2p8affineinvqb", "vgf2p8affineinvqb", &BX_CPU_C::LOAD_BROADCAST_VectorQ, &BX_CPU_C::VGF2P8AFFINEINVQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_mVpd, OP_Ib, BX_PREPARE_EVEX_NO_SAE)
bx_define_opcode(BX_IA_V512_VGF2P8MULB_VdqHdqWdq_Kmask, "vgf2p8mulb", "vgf2p8mulb", &BX_CPU_C::LOAD_MASK_VectorB, &BX_CPU_C::VGF2P8MULB_VdqHdqWdqR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_mVpd, OP_NONE, BX_PREPARE_EVEX_NO_SAE | BX_PREPARE_EVEX_NO_BROADCAST)

#endif // BX_SUPPORT_EVEX
