<?xml version='1.0' encoding='utf-8'?>
<!--Original Source https://github.com/Maratyszcza/Opcodes-->
<InstructionSet name="x86">
  <Instruction name="AAA" summary="ASCII Adjust After Addition">
    <InstructionForm gas-name="aaa" go-name="AAA">
      <Encoding>
        <Opcode byte="37"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AAD" summary="ASCII Adjust AX Before Division">
    <InstructionForm gas-name="aad" go-name="AAD">
      <Encoding>
        <Opcode byte="D5"/>
        <Opcode byte="0A"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aad" go-name="AAD">
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="D5"/>
        <Immediate size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AAM" summary="ASCII Adjust AX After Multiply">
    <InstructionForm gas-name="aam" go-name="AAM">
      <Encoding>
        <Opcode byte="D4"/>
        <Opcode byte="0A"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aam" go-name="AAM">
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="D4"/>
        <Immediate size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AAS" summary="ASCII Adjust AL After Subtraction">
    <InstructionForm gas-name="aas" go-name="AAS">
      <Encoding>
        <Opcode byte="3F"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADC" summary="Add with Carry">
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="14"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="15"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="15"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcb" go-name="ADCB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="10"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcw" go-name="ADCW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcl" go-name="ADCL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADCX" summary="Unsigned Integer Addition of Two Operands with Carry Flag">
    <InstructionForm gas-name="adcxl">
      <ISA id="ADX"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adcxl">
      <ISA id="ADX"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADD" summary="Add">
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="04"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="05"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="03"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="05"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="03"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addb" go-name="ADDB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="00"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addw" go-name="ADDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="01"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addl" go-name="ADDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="01"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDPD" summary="Add Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="addpd" go-name="ADDPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addpd" go-name="ADDPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDPS" summary="Add Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="addps" go-name="ADDPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addps" go-name="ADDPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDSD" summary="Add Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="addsd" go-name="ADDSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addsd" go-name="ADDSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDSS" summary="Add Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="addss" go-name="ADDSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addss" go-name="ADDSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDSUBPD" summary="Packed Double-FP Add/Subtract">
    <InstructionForm gas-name="addsubpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addsubpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADDSUBPS" summary="Packed Single-FP Add/Subtract">
    <InstructionForm gas-name="addsubps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="addsubps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ADOX" summary="Unsigned Integer Addition of Two Operands with Overflow Flag">
    <InstructionForm gas-name="adoxl">
      <ISA id="ADX"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="adoxl">
      <ISA id="ADX"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESDEC" summary="Perform One Round of an AES Decryption Flow">
    <InstructionForm gas-name="aesdec" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aesdec" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESDECLAST" summary="Perform Last Round of an AES Decryption Flow">
    <InstructionForm gas-name="aesdeclast" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aesdeclast" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESENC" summary="Perform One Round of an AES Encryption Flow">
    <InstructionForm gas-name="aesenc" go-name="AESENC" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aesenc" go-name="AESENC" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESENCLAST" summary="Perform Last Round of an AES Encryption Flow">
    <InstructionForm gas-name="aesenclast" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aesenclast" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESIMC" summary="Perform the AES InvMixColumn Transformation">
    <InstructionForm gas-name="aesimc" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aesimc" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="DB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AESKEYGENASSIST" summary="AES Round Key Generation Assist">
    <InstructionForm gas-name="aeskeygenassist" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="aeskeygenassist" xmm-mode="SSE">
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="DF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="AND" summary="Logical AND">
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="24"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="25"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="25"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andb" go-name="ANDB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="20"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andw" go-name="ANDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="21"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andl" go-name="ANDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="21"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ANDN" summary="Logical AND NOT">
    <InstructionForm gas-name="andnl" cancelling-inputs="true">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andnl">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ANDNPD" summary="Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="andnpd" go-name="ANDNPD" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andnpd" go-name="ANDNPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="55"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ANDNPS" summary="Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="andnps" go-name="ANDNPS" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andnps" go-name="ANDNPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="55"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ANDPD" summary="Bitwise Logical AND of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="andpd" go-name="ANDPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andpd" go-name="ANDPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="54"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ANDPS" summary="Bitwise Logical AND of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="andps" go-name="ANDPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="andps" go-name="ANDPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="54"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BEXTR" summary="Bit Field Extract">
    <InstructionForm gas-name="bextr">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01010" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bextr">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bextr">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01010" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bextr">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bextr">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01010" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bextr">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01010" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLCFILL" summary="Fill From Lowest Clear Bit">
    <InstructionForm gas-name="blcfill">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcfill">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcfill">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcfill">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLCI" summary="Isolate Lowest Clear Bit">
    <InstructionForm gas-name="blci">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blci">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blci">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blci">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLCIC" summary="Isolate Lowest Set Bit and Complement">
    <InstructionForm gas-name="blcic">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="5" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcic">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="5" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcic">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="5" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcic">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="5" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLCMSK" summary="Mask From Lowest Clear Bit">
    <InstructionForm gas-name="blcmsk">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcmsk">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcmsk">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcmsk">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLCS" summary="Set Lowest Clear Bit">
    <InstructionForm gas-name="blcs">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcs">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcs">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blcs">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLENDPD" summary="Blend Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="blendpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blendpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLENDPS" summary=" Blend Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="blendps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blendps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLENDVPD" summary=" Variable Blend Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="blendvpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blendvpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="15"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLENDVPS" summary=" Variable Blend Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="blendvps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blendvps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="14"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLSFILL" summary="Fill From Lowest Set Bit">
    <InstructionForm gas-name="blsfill">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsfill">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsfill">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsfill">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLSI" summary="Isolate Lowest Set Bit">
    <InstructionForm gas-name="blsi">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsi">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLSIC" summary="Isolate Lowest Set Bit and Complement">
    <InstructionForm gas-name="blsic">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsic">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsic">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsic">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLSMSK" summary="Mask From Lowest Set Bit">
    <InstructionForm gas-name="blsmsk">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsmsk">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BLSR" summary="Reset Lowest Set Bit">
    <InstructionForm gas-name="blsr">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="blsr">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BSF" summary="Bit Scan Forward">
    <InstructionForm gas-name="bsfw" go-name="BSFW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsfw" go-name="BSFW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsfl" go-name="BSFL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsfl" go-name="BSFL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BSR" summary="Bit Scan Reverse">
    <InstructionForm gas-name="bsrw" go-name="BSRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsrw" go-name="BSRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsrl" go-name="BSRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bsrl" go-name="BSRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BSWAP" summary="Byte Swap">
    <InstructionForm gas-name="bswapl" go-name="BSWAPL">
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C8" addend="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BT" summary="Bit Test">
    <InstructionForm gas-name="btw" go-name="BTW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btw" go-name="BTW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A3"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btl" go-name="BTL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btl" go-name="BTL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A3"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btw" go-name="BTW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btw" go-name="BTW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btl" go-name="BTL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btl" go-name="BTL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BTC" summary="Bit Test and Complement">
    <InstructionForm gas-name="btcw" go-name="BTCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcw" go-name="BTCW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcl" go-name="BTCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcl" go-name="BTCL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcw" go-name="BTCW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcw" go-name="BTCW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BB"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcl" go-name="BTCL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btcl" go-name="BTCL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BB"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BTR" summary="Bit Test and Reset">
    <InstructionForm gas-name="btrw" go-name="BTRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrw" go-name="BTRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B3"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrl" go-name="BTRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrl" go-name="BTRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B3"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrw" go-name="BTRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrw" go-name="BTRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrl" go-name="BTRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btrl" go-name="BTRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BTS" summary="Bit Test and Set">
    <InstructionForm gas-name="btsw" go-name="BTSW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsw" go-name="BTSW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsl" go-name="BTSL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsl" go-name="BTSL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsw" go-name="BTSW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsw" go-name="BTSW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AB"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsl" go-name="BTSL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BA"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="btsl" go-name="BTSL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AB"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="BZHI" summary="Zero High Bits Starting with Specified Bit Position">
    <InstructionForm gas-name="bzhi">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="bzhi">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CALL" summary="Call Procedure">
    <InstructionForm gas-name="call" go-name="CALL">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="E8"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="calll">
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="calll">
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CBW" summary="Convert Byte to Word">
    <InstructionForm gas-name="cbtw">
      <ImplicitOperand id="ax" input="false" output="true"/>
      <ImplicitOperand id="al" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="98"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CDQ" summary="Convert Doubleword to Quadword">
    <InstructionForm gas-name="cltd">
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="99"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CLC" summary="Clear Carry Flag">
    <InstructionForm gas-name="clc" go-name="CLC">
      <Encoding>
        <Opcode byte="F8"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CLD" summary="Clear Direction Flag">
    <InstructionForm gas-name="cld" go-name="CLD">
      <Encoding>
        <Opcode byte="FC"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMC" summary="Complement Carry Flag">
    <InstructionForm gas-name="cmc" go-name="CMC">
      <Encoding>
        <Opcode byte="F5"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVA" summary="Move if above (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="cmova">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmova">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmova">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmova">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVAE" summary="Move if above or equal (CF == 0)">
    <InstructionForm gas-name="cmovae">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovae">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovae">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovae">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVB" summary="Move if below (CF == 1)">
    <InstructionForm gas-name="cmovb">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovb">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovb">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovb">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVBE" summary="Move if below or equal (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="cmovbe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovbe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovbe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovbe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVC" summary="Move if carry (CF == 1)">
    <InstructionForm gas-name="cmovc">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovc">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovc">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovc">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVE" summary="Move if equal (ZF == 1)">
    <InstructionForm gas-name="cmove">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmove">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmove">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmove">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVG" summary="Move if greater (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="cmovg">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovg">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovg">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovg">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVGE" summary="Move if greater or equal (SF == OF)">
    <InstructionForm gas-name="cmovge">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovge">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovge">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovge">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVL" summary="Move if less (SF != OF)">
    <InstructionForm gas-name="cmovl">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovl">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovl">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovl">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVLE" summary="Move if less or equal (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="cmovle">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovle">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovle">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovle">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNA" summary="Move if not above (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="cmovna">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovna">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovna">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovna">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="46"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNAE" summary="Move if not above or equal (CF == 1)">
    <InstructionForm gas-name="cmovnae">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnae">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnae">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnae">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNB" summary="Move if not below (CF == 0)">
    <InstructionForm gas-name="cmovnb">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnb">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnb">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnb">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNBE" summary="Move if not below or equal (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="cmovnbe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnbe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnbe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnbe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="47"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNC" summary="Move if not carry (CF == 0)">
    <InstructionForm gas-name="cmovnc">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnc">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnc">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnc">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="43"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNE" summary="Move if not equal (ZF == 0)">
    <InstructionForm gas-name="cmovne">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovne">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovne">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovne">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNG" summary="Move if not greater (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="cmovng">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovng">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovng">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovng">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNGE" summary="Move if not greater or equal (SF != OF)">
    <InstructionForm gas-name="cmovnge">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnge">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnge">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnge">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNL" summary="Move if not less (SF == OF)">
    <InstructionForm gas-name="cmovnl">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnl">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnl">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnl">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNLE" summary="Move if not less or equal (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="cmovnle">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnle">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnle">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnle">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNO" summary="Move if not overflow (OF == 0)">
    <InstructionForm gas-name="cmovno">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovno">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="41"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovno">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovno">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="41"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNP" summary="Move if not parity (PF == 0)">
    <InstructionForm gas-name="cmovnp">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnp">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnp">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnp">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNS" summary="Move if not sign (SF == 0)">
    <InstructionForm gas-name="cmovns">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovns">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="49"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovns">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovns">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="49"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVNZ" summary="Move if not zero (ZF == 0)">
    <InstructionForm gas-name="cmovnz">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnz">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnz">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovnz">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="45"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVO" summary="Move if overflow (OF == 1)">
    <InstructionForm gas-name="cmovo">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovo">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="40"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovo">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovo">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="40"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVP" summary="Move if parity (PF == 1)">
    <InstructionForm gas-name="cmovp">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovp">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovp">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovp">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVPE" summary="Move if parity even (PF == 1)">
    <InstructionForm gas-name="cmovpe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpe">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpe">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVPO" summary="Move if parity odd (PF == 0)">
    <InstructionForm gas-name="cmovpo">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpo">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpo">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovpo">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="4B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVS" summary="Move if sign (SF == 1)">
    <InstructionForm gas-name="cmovs">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovs">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="48"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovs">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovs">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="48"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMOVZ" summary="Move if zero (ZF == 1)">
    <InstructionForm gas-name="cmovz">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovz">
      <ISA id="CMOV"/>
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovz">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmovz">
      <ISA id="CMOV"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMP" summary="Compare Two Operands">
    <InstructionForm gas-name="cmpb" go-name="CMPB">
      <Operand type="al" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="3C"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpb" go-name="CMPB">
      <Operand type="r8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpb" go-name="CMPB" cancelling-inputs="true">
      <Operand type="r8" input="true" output="false"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpb" go-name="CMPB">
      <Operand type="r8" input="true" output="false"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="3A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="ax" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="3D"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW" cancelling-inputs="true">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="3B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="eax" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="3D"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL" cancelling-inputs="true">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="3B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpb" go-name="CMPB">
      <Operand type="m8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpb" go-name="CMPB">
      <Operand type="m8" input="true" output="false"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="38"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpw" go-name="CMPW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpl" go-name="CMPL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPPD" summary="Compare Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="cmppd" go-name="CMPPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmppd" go-name="CMPPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPPS" summary="Compare Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="cmpps" go-name="CMPPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpps" go-name="CMPPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPSD" summary="Compare Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="cmpsd" go-name="CMPSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpsd" go-name="CMPSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPSS" summary="Compare Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="cmpss" go-name="CMPSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpss" go-name="CMPSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPXCHG" summary="Compare and Exchange">
    <InstructionForm gas-name="cmpxchgb" go-name="CMPXCHGB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B0"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpxchgw" go-name="CMPXCHGW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B1"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpxchgl" go-name="CMPXCHGL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B1"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpxchgb" go-name="CMPXCHGB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpxchgw" go-name="CMPXCHGW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cmpxchgl" go-name="CMPXCHGL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CMPXCHG8B" summary="Compare and Exchange 8 Bytes">
    <InstructionForm gas-name="cmpxchg8b" go-name="CMPXCHG8B">
      <Operand type="m64" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="ebx" input="true" output="false"/>
      <ImplicitOperand id="ecx" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="COMISD" summary="Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="comisd" go-name="COMISD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="comisd" go-name="COMISD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="COMISS" summary="Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="comiss" go-name="COMISS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="comiss" go-name="COMISS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CPUID" summary="CPU Identification">
    <InstructionForm gas-name="cpuid" go-name="CPUID">
      <ISA id="CPUID"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="ebx" input="false" output="true"/>
      <ImplicitOperand id="ecx" input="true" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CRC32" summary="Accumulate CRC32 Value">
    <InstructionForm gas-name="crc32b">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="crc32w">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="crc32l">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="crc32b">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="crc32w">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="crc32l">
      <ISA id="SSE4.2"/>
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTDQ2PD" summary="Convert Packed Dword Integers to Packed Double-Precision FP Values">
    <InstructionForm gas-name="cvtdq2pd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtdq2pd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTDQ2PS" summary="Convert Packed Dword Integers to Packed Single-Precision FP Values">
    <InstructionForm gas-name="cvtdq2ps" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtdq2ps" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPD2DQ" summary="Convert Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvtpd2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtpd2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPD2PI" summary="Convert Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvtpd2pi" go-name="CVTPD2PL" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtpd2pi" go-name="CVTPD2PL" mmx-mode="MMX">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPD2PS" summary="Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values">
    <InstructionForm gas-name="cvtpd2ps" go-name="CVTPD2PS" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtpd2ps" go-name="CVTPD2PS" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPI2PD" summary="Convert Packed Dword Integers to Packed Double-Precision FP Values">
    <InstructionForm gas-name="cvtpi2pd" go-name="CVTPL2PD" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtpi2pd" go-name="CVTPL2PD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPI2PS" summary="Convert Packed Dword Integers to Packed Single-Precision FP Values">
    <InstructionForm gas-name="cvtpi2ps" go-name="CVTPL2PS" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtpi2ps" go-name="CVTPL2PS" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPS2DQ" summary="Convert Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvtps2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtps2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPS2PD" summary="Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values">
    <InstructionForm gas-name="cvtps2pd" go-name="CVTPS2PD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtps2pd" go-name="CVTPS2PD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTPS2PI" summary="Convert Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvtps2pi" go-name="CVTPS2PL" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtps2pi" go-name="CVTPS2PL" mmx-mode="MMX">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSD2SI" summary="Convert Scalar Double-Precision FP Value to Integer">
    <InstructionForm gas-name="cvtsd2si" go-name="CVTSD2SL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtsd2si" go-name="CVTSD2SL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSD2SS" summary="Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value">
    <InstructionForm gas-name="cvtsd2ss" go-name="CVTSD2SS" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtsd2ss" go-name="CVTSD2SS" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSI2SD" summary="Convert Dword Integer to Scalar Double-Precision FP Value">
    <InstructionForm gas-name="cvtsi2sd" go-name="CVTSL2SD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtsi2sd" go-name="CVTSL2SD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSI2SS" summary="Convert Dword Integer to Scalar Single-Precision FP Value">
    <InstructionForm gas-name="cvtsi2ss" go-name="CVTSL2SS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtsi2ss" go-name="CVTSL2SS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSS2SD" summary="Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value">
    <InstructionForm gas-name="cvtss2sd" go-name="CVTSS2SD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtss2sd" go-name="CVTSS2SD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTSS2SI" summary="Convert Scalar Single-Precision FP Value to Dword Integer">
    <InstructionForm gas-name="cvtss2si" go-name="CVTSS2SL" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvtss2si" go-name="CVTSS2SL" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTPD2DQ" summary="Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvttpd2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttpd2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTPD2PI" summary="Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvttpd2pi" go-name="CVTTPD2PL" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttpd2pi" go-name="CVTTPD2PL" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTPS2DQ" summary="Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvttps2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttps2dq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTPS2PI" summary="Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="cvttps2pi" go-name="CVTTPS2PL" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttps2pi" go-name="CVTTPS2PL" mmx-mode="MMX">
      <ISA id="SSE"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTSD2SI" summary="Convert with Truncation Scalar Double-Precision FP Value to Signed Integer">
    <InstructionForm gas-name="cvttsd2si" go-name="CVTTSD2SL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttsd2si" go-name="CVTTSD2SL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CVTTSS2SI" summary="Convert with Truncation Scalar Single-Precision FP Value to Dword Integer">
    <InstructionForm gas-name="cvttss2si" go-name="CVTTSS2SL" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="cvttss2si" go-name="CVTTSS2SL" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CWD" summary="Convert Word to Doubleword">
    <InstructionForm gas-name="cwtd">
      <ImplicitOperand id="ax" input="true" output="false"/>
      <ImplicitOperand id="dx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="99"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="CWDE" summary="Convert Word to Doubleword">
    <InstructionForm gas-name="cwtl">
      <ImplicitOperand id="ax" input="true" output="false"/>
      <ImplicitOperand id="eax" input="false" output="true"/>
      <Encoding>
        <Opcode byte="98"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DAA" summary="Decimal Adjust AL after Addition">
    <InstructionForm gas-name="daa" go-name="DAA">
      <Encoding>
        <Opcode byte="27"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DAS" summary="Decimal Adjust AL after Subtraction">
    <InstructionForm gas-name="das" go-name="DAS">
      <Encoding>
        <Opcode byte="2F"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DEC" summary="Decrement by 1">
    <InstructionForm gas-name="decb" go-name="DECB">
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="decw" go-name="DECW">
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="48" addend="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="decl" go-name="DECL">
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="48" addend="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="decb" go-name="DECB">
      <Operand type="m8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FE"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="decw" go-name="DECW">
      <Operand type="m16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="decl" go-name="DECL">
      <Operand type="m32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DIV" summary="Unsigned Divide">
    <InstructionForm gas-name="divb" go-name="DIVB">
      <Operand type="r8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divw" go-name="DIVW">
      <Operand type="r16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divl" go-name="DIVL">
      <Operand type="r32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divb" go-name="DIVB">
      <Operand type="m8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divw" go-name="DIVW">
      <Operand type="m16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divl" go-name="DIVL">
      <Operand type="m32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DIVPD" summary="Divide Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="divpd" go-name="DIVPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divpd" go-name="DIVPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DIVPS" summary="Divide Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="divps" go-name="DIVPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divps" go-name="DIVPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DIVSD" summary="Divide Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="divsd" go-name="DIVSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divsd" go-name="DIVSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DIVSS" summary="Divide Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="divss" go-name="DIVSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="divss" go-name="DIVSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DPPD" summary="Dot Product of Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="dppd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="dppd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="41"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="DPPS" summary="Dot Product of Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="dpps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="dpps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="40"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="EMMS" summary="Exit MMX State">
    <InstructionForm gas-name="emms" go-name="EMMS" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="77"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="EXTRACTPS" summary="Extract Packed Single Precision Floating-Point Value">
    <InstructionForm gas-name="extractps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="extractps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="EXTRQ" summary="Extract Field">
    <InstructionForm gas-name="extrq" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="extrq" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="FEMMS" summary="Fast Exit Multimedia State">
    <InstructionForm gas-name="femms">
      <ISA id="FEMMS"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0E"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="HADDPD" summary="Packed Double-FP Horizontal Add">
    <InstructionForm gas-name="haddpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="haddpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="HADDPS" summary="Packed Single-FP Horizontal Add">
    <InstructionForm gas-name="haddps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="haddps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="HSUBPD" summary="Packed Double-FP Horizontal Subtract">
    <InstructionForm gas-name="hsubpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="hsubpd" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="HSUBPS" summary="Packed Single-FP Horizontal Subtract">
    <InstructionForm gas-name="hsubps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="hsubps" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="IDIV" summary="Signed Divide">
    <InstructionForm gas-name="idivb" go-name="IDIVB">
      <Operand type="r8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="idivw" go-name="IDIVW">
      <Operand type="r16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="idivl" go-name="IDIVL">
      <Operand type="r32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="idivb" go-name="IDIVB">
      <Operand type="m8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="idivw" go-name="IDIVW">
      <Operand type="m16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="idivl" go-name="IDIVL">
      <Operand type="m32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="IMUL" summary="Signed Multiply">
    <InstructionForm gas-name="imulb" go-name="IMULB">
      <Operand type="r8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="false" output="true"/>
      <ImplicitOperand id="al" input="true" output="false"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw" go-name="IMULW">
      <Operand type="r16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull" go-name="IMULL">
      <Operand type="r32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulb" go-name="IMULB">
      <Operand type="m8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="false" output="true"/>
      <ImplicitOperand id="al" input="true" output="false"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw" go-name="IMULW">
      <Operand type="m16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull" go-name="IMULL">
      <Operand type="m32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw" go-name="IMULW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw" go-name="IMULW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull" go-name="IMULL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull" go-name="IMULL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false" extended-size="2"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="2" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false" extended-size="2"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="6B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imulw">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="69"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="2" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false" extended-size="4"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false" extended-size="4"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="6B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="imull">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="69"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="4" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="INC" summary="Increment by 1">
    <InstructionForm gas-name="incb" go-name="INCB">
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="incw" go-name="INCW">
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="40" addend="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="incl" go-name="INCL">
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="40" addend="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="incb" go-name="INCB">
      <Operand type="m8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FE"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="incw" go-name="INCW">
      <Operand type="m16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="incl" go-name="INCL">
      <Operand type="m32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="INSERTPS" summary="Insert Packed Single Precision Floating-Point Value">
    <InstructionForm gas-name="insertps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="insertps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="INSERTQ" summary="Insert Field">
    <InstructionForm gas-name="insertq" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="insertq" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="INT" summary="Call to Interrupt Procedure">
    <InstructionForm gas-name="int" go-name="INT">
      <Operand type="3"/>
      <Encoding>
        <Opcode byte="CC"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="int" go-name="INT">
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="CD"/>
        <Immediate size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="INTO" summary="Interrupt 4 If Overflow Flag is Set">
    <InstructionForm gas-name="into" go-name="INTO">
      <Encoding>
        <Opcode byte="CE"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JA" summary="Jump if above (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="ja" go-name="JHI">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="77"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="ja" go-name="JHI">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="87"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JAE" summary="Jump if above or equal (CF == 0)">
    <InstructionForm gas-name="jae" go-name="JCC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="73"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jae" go-name="JCC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="83"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JB" summary="Jump if below (CF == 1)">
    <InstructionForm gas-name="jb" go-name="JCS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="72"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jb" go-name="JCS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="82"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JBE" summary="Jump if below or equal (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="jbe" go-name="JLS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="76"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jbe" go-name="JLS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="86"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JC" summary="Jump if carry (CF == 1)">
    <InstructionForm gas-name="jc" go-name="JCS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="72"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jc" go-name="JCS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="82"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JE" summary="Jump if equal (ZF == 1)">
    <InstructionForm gas-name="je" go-name="JEQ">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="74"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="je" go-name="JEQ">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="84"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JECXZ" summary="Jump if ECX register is 0">
    <InstructionForm gas-name="jecxz" go-name="JCXZL">
      <Operand type="rel8"/>
      <ImplicitOperand id="ecx" input="true" output="false"/>
      <Encoding>
        <Opcode byte="E3"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JG" summary="Jump if greater (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="jg" go-name="JGT">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7F"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jg" go-name="JGT">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8F"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JGE" summary="Jump if greater or equal (SF == OF)">
    <InstructionForm gas-name="jge" go-name="JGE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7D"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jge" go-name="JGE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8D"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JL" summary="Jump if less (SF != OF)">
    <InstructionForm gas-name="jl" go-name="JLT">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7C"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jl" go-name="JLT">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8C"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JLE" summary="Jump if less or equal (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="jle" go-name="JLE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7E"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jle" go-name="JLE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8E"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JMP" summary="Jump Unconditionally">
    <InstructionForm gas-name="jmp" go-name="JMP">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="EB"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jmp" go-name="JMP">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="E9"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jmpl" go-name="JMP">
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jmpl" go-name="JMP">
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNA" summary="Jump if not above (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="jna" go-name="JLS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="76"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jna" go-name="JLS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="86"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNAE" summary="Jump if not above or equal (CF == 1)">
    <InstructionForm gas-name="jnae" go-name="JCS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="72"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnae" go-name="JCS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="82"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNB" summary="Jump if not below (CF == 0)">
    <InstructionForm gas-name="jnb" go-name="JCC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="73"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnb" go-name="JCC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="83"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNBE" summary="Jump if not below or equal (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="jnbe" go-name="JHI">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="77"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnbe" go-name="JHI">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="87"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNC" summary="Jump if not carry (CF == 0)">
    <InstructionForm gas-name="jnc" go-name="JCC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="73"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnc" go-name="JCC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="83"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNE" summary="Jump if not equal (ZF == 0)">
    <InstructionForm gas-name="jne" go-name="JNE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="75"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jne" go-name="JNE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="85"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNG" summary="Jump if not greater (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="jng" go-name="JLE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7E"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jng" go-name="JLE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8E"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNGE" summary="Jump if not greater or equal (SF != OF)">
    <InstructionForm gas-name="jnge" go-name="JLT">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7C"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnge" go-name="JLT">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8C"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNL" summary="Jump if not less (SF == OF)">
    <InstructionForm gas-name="jnl" go-name="JGE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7D"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnl" go-name="JGE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8D"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNLE" summary="Jump if not less or equal (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="jnle" go-name="JGT">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7F"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnle" go-name="JGT">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8F"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNO" summary="Jump if not overflow (OF == 0)">
    <InstructionForm gas-name="jno" go-name="JOC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="71"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jno" go-name="JOC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="81"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNP" summary="Jump if not parity (PF == 0)">
    <InstructionForm gas-name="jnp" go-name="JPC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7B"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnp" go-name="JPC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8B"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNS" summary="Jump if not sign (SF == 0)">
    <InstructionForm gas-name="jns" go-name="JPL">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="79"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jns" go-name="JPL">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="89"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JNZ" summary="Jump if not zero (ZF == 0)">
    <InstructionForm gas-name="jnz" go-name="JNE">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="75"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jnz" go-name="JNE">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="85"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JO" summary="Jump if overflow (OF == 1)">
    <InstructionForm gas-name="jo" go-name="JOS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="70"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jo" go-name="JOS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="80"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JP" summary="Jump if parity (PF == 1)">
    <InstructionForm gas-name="jp" go-name="JPS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7A"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jp" go-name="JPS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8A"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JPE" summary="Jump if parity even (PF == 1)">
    <InstructionForm gas-name="jpe" go-name="JPS">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7A"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jpe" go-name="JPS">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8A"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JPO" summary="Jump if parity odd (PF == 0)">
    <InstructionForm gas-name="jpo" go-name="JPC">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="7B"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jpo" go-name="JPC">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="8B"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JS" summary="Jump if sign (SF == 1)">
    <InstructionForm gas-name="js" go-name="JMI">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="78"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="js" go-name="JMI">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="88"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="JZ" summary="Jump if zero (ZF == 1)">
    <InstructionForm gas-name="jz" go-name="JEQ">
      <Operand type="rel8"/>
      <Encoding>
        <Opcode byte="74"/>
        <CodeOffset size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="jz" go-name="JEQ">
      <Operand type="rel32"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="84"/>
        <CodeOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KADDB" summary="ADD Two 8-bit Masks">
    <InstructionForm gas-name="kaddb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KADDD" summary="ADD Two 32-bit Masks">
    <InstructionForm gas-name="kaddd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KADDQ" summary="ADD Two 64-bit Masks">
    <InstructionForm gas-name="kaddq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KADDW" summary="ADD Two 16-bit Masks">
    <InstructionForm gas-name="kaddw">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDB" summary="Bitwise Logical AND 8-bit Masks">
    <InstructionForm gas-name="kandb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDD" summary="Bitwise Logical AND 32-bit Masks">
    <InstructionForm gas-name="kandd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDNB" summary="Bitwise Logical AND NOT 8-bit Masks">
    <InstructionForm gas-name="kandnb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDND" summary="Bitwise Logical AND NOT 32-bit Masks">
    <InstructionForm gas-name="kandnd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDNQ" summary="Bitwise Logical AND NOT 64-bit Masks">
    <InstructionForm gas-name="kandnq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDNW" summary="Bitwise Logical AND NOT 16-bit Masks">
    <InstructionForm gas-name="kandnw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDQ" summary="Bitwise Logical AND 64-bit Masks">
    <InstructionForm gas-name="kandq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KANDW" summary="Bitwise Logical AND 16-bit Masks">
    <InstructionForm gas-name="kandw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KMOVB" summary="Move 8-bit Mask">
    <InstructionForm gas-name="kmovb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovb">
      <ISA id="AVX512DQ"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovb">
      <ISA id="AVX512DQ"/>
      <Operand type="m8" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="91"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KMOVD" summary="Move 32-bit Mask">
    <InstructionForm gas-name="kmovd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovd">
      <ISA id="AVX512BW"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovd">
      <ISA id="AVX512BW"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="91"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KMOVQ" summary="Move 64-bit Mask">
    <InstructionForm gas-name="kmovq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovq">
      <ISA id="AVX512BW"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="91"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KMOVW" summary="Move 16-bit Mask">
    <InstructionForm gas-name="kmovw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovw">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="kmovw">
      <ISA id="AVX512F"/>
      <Operand type="m16" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="91"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KNOTB" summary="NOT 8-bit Mask Register">
    <InstructionForm gas-name="knotb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KNOTD" summary="NOT 32-bit Mask Register">
    <InstructionForm gas-name="knotd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KNOTQ" summary="NOT 64-bit Mask Register">
    <InstructionForm gas-name="knotq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KNOTW" summary="NOT 16-bit Mask Register">
    <InstructionForm gas-name="knotw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORB" summary="Bitwise Logical OR 8-bit Masks">
    <InstructionForm gas-name="korb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORD" summary="Bitwise Logical OR 32-bit Masks">
    <InstructionForm gas-name="kord">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORQ" summary="Bitwise Logical OR 64-bit Masks">
    <InstructionForm gas-name="korq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORTESTB" summary="OR 8-bit Masks and Set Flags">
    <InstructionForm gas-name="kortestb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORTESTD" summary="OR 32-bit Masks and Set Flags">
    <InstructionForm gas-name="kortestd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORTESTQ" summary="OR 64-bit Masks and Set Flags">
    <InstructionForm gas-name="kortestq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORTESTW" summary="OR 16-bit Masks and Set Flags">
    <InstructionForm gas-name="kortestw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KORW" summary="Bitwise Logical OR 16-bit Masks">
    <InstructionForm gas-name="korw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTLB" summary="Shift Left 8-bit Masks">
    <InstructionForm gas-name="kshiftlb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTLD" summary="Shift Left 32-bit Masks">
    <InstructionForm gas-name="kshiftld">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTLQ" summary="Shift Left 64-bit Masks">
    <InstructionForm gas-name="kshiftlq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTLW" summary="Shift Left 16-bit Masks">
    <InstructionForm gas-name="kshiftlw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTRB" summary="Shift Right 8-bit Masks">
    <InstructionForm gas-name="kshiftrb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTRD" summary="Shift Right 32-bit Masks">
    <InstructionForm gas-name="kshiftrd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTRQ" summary="Shift Right 64-bit Masks">
    <InstructionForm gas-name="kshiftrq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KSHIFTRW" summary="Shift Right 16-bit Masks">
    <InstructionForm gas-name="kshiftrw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KTESTB" summary="Bit Test 8-bit Masks and Set Flags">
    <InstructionForm gas-name="ktestb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KTESTD" summary="Bit Test 32-bit Masks and Set Flags">
    <InstructionForm gas-name="ktestd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KTESTQ" summary="Bit Test 64-bit Masks and Set Flags">
    <InstructionForm gas-name="ktestq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KTESTW" summary="Bit Test 16-bit Masks and Set Flags">
    <InstructionForm gas-name="ktestw">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KUNPCKBW" summary="Unpack and Interleave 8-bit Masks">
    <InstructionForm gas-name="kunpckbw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KUNPCKDQ" summary="Unpack and Interleave 32-bit Masks">
    <InstructionForm gas-name="kunpckdq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KUNPCKWD" summary="Unpack and Interleave 16-bit Masks">
    <InstructionForm gas-name="kunpckwd">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXNORB" summary="Bitwise Logical XNOR 8-bit Masks">
    <InstructionForm gas-name="kxnorb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXNORD" summary="Bitwise Logical XNOR 32-bit Masks">
    <InstructionForm gas-name="kxnord">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXNORQ" summary="Bitwise Logical XNOR 64-bit Masks">
    <InstructionForm gas-name="kxnorq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXNORW" summary="Bitwise Logical XNOR 16-bit Masks">
    <InstructionForm gas-name="kxnorw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXORB" summary="Bitwise Logical XOR 8-bit Masks">
    <InstructionForm gas-name="kxorb">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXORD" summary="Bitwise Logical XOR 32-bit Masks">
    <InstructionForm gas-name="kxord">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXORQ" summary="Bitwise Logical XOR 64-bit Masks">
    <InstructionForm gas-name="kxorq">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="KXORW" summary="Bitwise Logical XOR 16-bit Masks">
    <InstructionForm gas-name="kxorw">
      <ISA id="AVX512F"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LAHF" summary="Load Status Flags into AH Register">
    <InstructionForm gas-name="lahf" go-name="LAHF">
      <Encoding>
        <Opcode byte="9F"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LDDQU" summary="Load Unaligned Integer 128 Bits">
    <InstructionForm gas-name="lddqu" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LDMXCSR" summary="Load MXCSR Register">
    <InstructionForm gas-name="ldmxcsr" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AE"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LEA" summary="Load Effective Address">
    <InstructionForm gas-name="leaw" go-name="LEAW">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="8D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="leal" go-name="LEAL">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m" input="true" output="false"/>
      <Encoding>
        <Opcode byte="8D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LFENCE" summary="Load Fence">
    <InstructionForm gas-name="lfence" go-name="LFENCE">
      <ISA id="SSE2"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AE"/>
        <Opcode byte="E8"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="LZCNT" summary="Count the Number of Leading Zero Bits">
    <InstructionForm gas-name="lzcntw">
      <ISA id="LZCNT"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="lzcntw">
      <ISA id="LZCNT"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="lzcntl">
      <ISA id="LZCNT"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="lzcntl">
      <ISA id="LZCNT"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MASKMOVDQU" summary="Store Selected Bytes of Double Quadword">
    <InstructionForm gas-name="maskmovdqu" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <ImplicitOperand id="edi" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MASKMOVQ" summary="Store Selected Bytes of Quadword">
    <InstructionForm gas-name="maskmovq" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="false"/>
      <Operand type="mm" input="true" output="false"/>
      <ImplicitOperand id="edi" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MAXPD" summary="Return Maximum Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="maxpd" go-name="MAXPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="maxpd" go-name="MAXPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MAXPS" summary="Return Maximum Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="maxps" go-name="MAXPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="maxps" go-name="MAXPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MAXSD" summary="Return Maximum Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="maxsd" go-name="MAXSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="maxsd" go-name="MAXSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MAXSS" summary="Return Maximum Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="maxss" go-name="MAXSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="maxss" go-name="MAXSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MFENCE" summary="Memory Fence">
    <InstructionForm gas-name="mfence" go-name="MFENCE">
      <ISA id="SSE2"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AE"/>
        <Opcode byte="F0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MINPD" summary="Return Minimum Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="minpd" go-name="MINPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="minpd" go-name="MINPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MINPS" summary="Return Minimum Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="minps" go-name="MINPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="minps" go-name="MINPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MINSD" summary="Return Minimum Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="minsd" go-name="MINSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="minsd" go-name="MINSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MINSS" summary="Return Minimum Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="minss" go-name="MINSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="minss" go-name="MINSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOV" summary="Move">
    <InstructionForm gas-name="movb" go-name="MOVB">
      <Operand type="r8" input="false" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
      <Encoding>
        <Opcode byte="B0" addend="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movb" go-name="MOVB">
      <Operand type="r8" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movb" go-name="MOVB">
      <Operand type="r8" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="8A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movw" go-name="MOVW">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="B8" addend="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movw" go-name="MOVW">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movw" go-name="MOVW">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="8B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movabs">
      <Operand type="eax" input="false" output="true"/>
      <Operand type="moffs32"/>
      <Encoding>
        <Opcode byte="A1"/>
        <DataOffset size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movl" go-name="MOVL">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
      <Encoding>
        <Opcode byte="B8" addend="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movl" go-name="MOVL">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movl" go-name="MOVL">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="8B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movb" go-name="MOVB">
      <Operand type="m8" input="false" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movb" go-name="MOVB">
      <Operand type="m8" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="88"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movw" go-name="MOVW">
      <Operand type="m16" input="false" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movw" go-name="MOVW">
      <Operand type="m16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="89"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movl" go-name="MOVL">
      <Operand type="m32" input="false" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movl" go-name="MOVL">
      <Operand type="m32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="89"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movabs">
      <Operand type="moffs32"/>
      <Operand type="eax" input="true" output="false"/>
      <Encoding>
        <Opcode byte="A3"/>
        <DataOffset size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVAPD" summary="Move Aligned Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="movapd" go-name="MOVAPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movapd" go-name="MOVAPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movapd" go-name="MOVAPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVAPS" summary="Move Aligned Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="movaps" go-name="MOVAPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movaps" go-name="MOVAPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movaps" go-name="MOVAPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVBE" summary="Move Data After Swapping Bytes">
    <InstructionForm gas-name="movbew">
      <ISA id="MOVBE"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movbel">
      <ISA id="MOVBE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movbew">
      <ISA id="MOVBE"/>
      <Operand type="m16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movbel">
      <ISA id="MOVBE"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="F1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVD" summary="Move Doubleword">
    <InstructionForm gas-name="movd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVDDUP" summary="Move One Double-FP and Duplicate">
    <InstructionForm gas-name="movddup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movddup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVDQ2Q" summary="Move Quadword from XMM to MMX Technology Register">
    <InstructionForm gas-name="movdq2q" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVDQA" summary="Move Aligned Double Quadword">
    <InstructionForm gas-name="movdqa" go-name="MOVO" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movdqa" go-name="MOVO" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movdqa" go-name="MOVO" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVDQU" summary="Move Unaligned Double Quadword">
    <InstructionForm gas-name="movdqu" go-name="MOVOU" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movdqu" go-name="MOVOU" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movdqu" go-name="MOVOU" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVHLPS" summary="Move Packed Single-Precision Floating-Point Values High to Low">
    <InstructionForm gas-name="movhlps" go-name="MOVHLPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVHPD" summary="Move High Packed Double-Precision Floating-Point Value">
    <InstructionForm gas-name="movhpd" go-name="MOVHPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movhpd" go-name="MOVHPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVHPS" summary="Move High Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="movhps" go-name="MOVHPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movhps" go-name="MOVHPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVLHPS" summary="Move Packed Single-Precision Floating-Point Values Low to High">
    <InstructionForm gas-name="movlhps" go-name="MOVLHPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVLPD" summary="Move Low Packed Double-Precision Floating-Point Value">
    <InstructionForm gas-name="movlpd" go-name="MOVLPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movlpd" go-name="MOVLPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVLPS" summary="Move Low Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="movlps" go-name="MOVLPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movlps" go-name="MOVLPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVMSKPD" summary="Extract Packed Double-Precision Floating-Point Sign Mask">
    <InstructionForm gas-name="movmskpd" go-name="MOVMSKPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVMSKPS" summary="Extract Packed Single-Precision Floating-Point Sign Mask">
    <InstructionForm gas-name="movmskps" go-name="MOVMSKPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTDQ" summary="Store Double Quadword Using Non-Temporal Hint">
    <InstructionForm gas-name="movntdq" go-name="MOVNTO" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTDQA" summary="Load Double Quadword Non-Temporal Aligned Hint">
    <InstructionForm gas-name="movntdqa" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTI" summary="Store Doubleword Using Non-Temporal Hint">
    <InstructionForm gas-name="movntil">
      <ISA id="SSE2"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTPD" summary="Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="movntpd" go-name="MOVNTPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTPS" summary="Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="movntps" go-name="MOVNTPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTQ" summary="Store of Quadword Using Non-Temporal Hint">
    <InstructionForm gas-name="movntq" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTSD" summary="Store Scalar Double-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="movntsd" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVNTSS" summary="Store Scalar Single-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="movntss" xmm-mode="SSE">
      <ISA id="SSE4A"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVQ" summary="Move Quadword">
    <InstructionForm gas-name="movq" go-name="MOVQ" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movq" go-name="MOVQ" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movq" go-name="MOVQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movq" go-name="MOVQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="7E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movq" go-name="MOVQ" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movq" go-name="MOVQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D6"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVQ2DQ" summary="Move Quadword from MMX Technology to XMM Register">
    <InstructionForm gas-name="movq2dq" mmx-mode="MMX" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVSD" summary="Move Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="movsd" go-name="MOVSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsd" go-name="MOVSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsd" go-name="MOVSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVSHDUP" summary="Move Packed Single-FP High and Duplicate">
    <InstructionForm gas-name="movshdup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movshdup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVSLDUP" summary="Move Packed Single-FP Low and Duplicate">
    <InstructionForm gas-name="movsldup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsldup" xmm-mode="SSE">
      <ISA id="SSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVSS" summary="Move Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="movss" go-name="MOVSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movss" go-name="MOVSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movss" go-name="MOVSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVSX" summary="Move with Sign-Extension">
    <InstructionForm gas-name="movsbw" go-name="MOVBWSX">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsbw" go-name="MOVBWSX">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="BE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsbl" go-name="MOVBLSX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movswl" go-name="MOVWLSX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movsbl" go-name="MOVBLSX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movswl" go-name="MOVWLSX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="BF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVUPD" summary="Move Unaligned Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="movupd" go-name="MOVUPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movupd" go-name="MOVUPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movupd" go-name="MOVUPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVUPS" summary="Move Unaligned Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="movups" go-name="MOVUPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movups" go-name="MOVUPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movups" go-name="MOVUPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MOVZX" summary="Move with Zero-Extend">
    <InstructionForm gas-name="movzbw" go-name="MOVBWZX">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movzbw" go-name="MOVBWZX">
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="B6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movzbl" go-name="MOVBLZX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movzwl" go-name="MOVWLZX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movzbl" go-name="MOVBLZX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="movzwl" go-name="MOVWLZX">
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="B7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MPSADBW" summary="Compute Multiple Packed Sums of Absolute Difference">
    <InstructionForm gas-name="mpsadbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mpsadbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MUL" summary="Unsigned Multiply">
    <InstructionForm gas-name="mulb" go-name="MULB">
      <Operand type="r8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="false" output="true"/>
      <ImplicitOperand id="al" input="true" output="false"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulw" go-name="MULW">
      <Operand type="r16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mull" go-name="MULL">
      <Operand type="r32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulb" go-name="MULB">
      <Operand type="m8" input="true" output="false"/>
      <ImplicitOperand id="ax" input="false" output="true"/>
      <ImplicitOperand id="al" input="true" output="false"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulw" go-name="MULW">
      <Operand type="m16" input="true" output="false"/>
      <ImplicitOperand id="ax" input="true" output="true"/>
      <ImplicitOperand id="dx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mull" go-name="MULL">
      <Operand type="m32" input="true" output="false"/>
      <ImplicitOperand id="eax" input="true" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MULPD" summary="Multiply Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="mulpd" go-name="MULPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulpd" go-name="MULPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MULPS" summary="Multiply Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="mulps" go-name="MULPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulps" go-name="MULPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MULSD" summary="Multiply Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="mulsd" go-name="MULSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulsd" go-name="MULSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MULSS" summary="Multiply Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="mulss" go-name="MULSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulss" go-name="MULSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="MULX" summary="Unsigned Multiply Without Affecting Flags">
    <InstructionForm gas-name="mulxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="mulxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="NEG" summary="Two's Complement Negation">
    <InstructionForm gas-name="negb" go-name="NEGB">
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="negw" go-name="NEGW">
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="negl" go-name="NEGL">
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="negb" go-name="NEGB">
      <Operand type="m8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="negw" go-name="NEGW">
      <Operand type="m16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="negl" go-name="NEGL">
      <Operand type="m32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="NOP" summary="No Operation">
    <InstructionForm gas-name="nop" go-name="NOP">
      <Encoding>
        <Opcode byte="90"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="NOT" summary="One's Complement Negation">
    <InstructionForm gas-name="notb" go-name="NOTB">
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="notw" go-name="NOTW">
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="notl" go-name="NOTL">
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="notb" go-name="NOTB">
      <Operand type="m8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="notw" go-name="NOTW">
      <Operand type="m16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="notl" go-name="NOTL">
      <Operand type="m32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="OR" summary="Logical Inclusive OR">
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0C"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0D"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="0D"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orb" go-name="ORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="08"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orw" go-name="ORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="09"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orl" go-name="ORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="09"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ORPD" summary="Bitwise Logical OR of Double-Precision Floating-Point Values">
    <InstructionForm gas-name="orpd" go-name="ORPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orpd" go-name="ORPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ORPS" summary="Bitwise Logical OR of Single-Precision Floating-Point Values">
    <InstructionForm gas-name="orps" go-name="ORPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="orps" go-name="ORPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PABSB" summary="Packed Absolute Value of Byte Integers">
    <InstructionForm gas-name="pabsb" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsb" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsb" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsb" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PABSD" summary="Packed Absolute Value of Doubleword Integers">
    <InstructionForm gas-name="pabsd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PABSW" summary="Packed Absolute Value of Word Integers">
    <InstructionForm gas-name="pabsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pabsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PACKSSDW" summary="Pack Doublewords into Words with Signed Saturation">
    <InstructionForm gas-name="packssdw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packssdw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packssdw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packssdw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PACKSSWB" summary="Pack Words into Bytes with Signed Saturation">
    <InstructionForm gas-name="packsswb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packsswb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="63"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packsswb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packsswb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="63"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PACKUSDW" summary="Pack Doublewords into Words with Unsigned Saturation">
    <InstructionForm gas-name="packusdw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packusdw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="2B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PACKUSWB" summary="Pack Words into Bytes with Unsigned Saturation">
    <InstructionForm gas-name="packuswb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packuswb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="67"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packuswb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="packuswb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="67"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDB" summary="Add Packed Byte Integers">
    <InstructionForm gas-name="paddb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDD" summary="Add Packed Doubleword Integers">
    <InstructionForm gas-name="paddd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDQ" summary="Add Packed Quadword Integers">
    <InstructionForm gas-name="paddq" go-name="PADDQ" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddq" go-name="PADDQ" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddq" go-name="PADDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddq" go-name="PADDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDSB" summary="Add Packed Signed Byte Integers with Signed Saturation">
    <InstructionForm gas-name="paddsb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDSW" summary="Add Packed Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="paddsw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="ED"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddsw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="ED"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDUSB" summary="Add Packed Unsigned Byte Integers with Unsigned Saturation">
    <InstructionForm gas-name="paddusb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDUSW" summary="Add Packed Unsigned Word Integers with Unsigned Saturation">
    <InstructionForm gas-name="paddusw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddusw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PADDW" summary="Add Packed Word Integers">
    <InstructionForm gas-name="paddw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="paddw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PALIGNR" summary="Packed Align Right">
    <InstructionForm gas-name="palignr" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="palignr" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="palignr" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="palignr" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PAND" summary="Packed Bitwise Logical AND">
    <InstructionForm gas-name="pand" go-name="PAND" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pand" go-name="PAND" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pand" go-name="PAND" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pand" go-name="PAND" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PANDN" summary="Packed Bitwise Logical AND NOT">
    <InstructionForm gas-name="pandn" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pandn" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pandn" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pandn" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PAUSE" summary="Spin Loop Hint">
    <InstructionForm gas-name="pause" go-name="PAUSE">
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="90"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PAVGB" summary="Average Packed Byte Integers">
    <InstructionForm gas-name="pavgb" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgb" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PAVGUSB" summary="Average Packed Byte Integers">
    <InstructionForm gas-name="pavgusb" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="BF"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgusb" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="BF"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PAVGW" summary="Average Packed Word Integers">
    <InstructionForm gas-name="pavgw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pavgw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PBLENDVB" summary="Variable Blend Packed Bytes">
    <InstructionForm gas-name="pblendvb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pblendvb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PBLENDW" summary="Blend Packed Words">
    <InstructionForm gas-name="pblendw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pblendw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCLMULQDQ" summary="Carry-Less Quadword Multiplication">
    <InstructionForm gas-name="pclmulqdq" xmm-mode="SSE">
      <ISA id="PCLMULQDQ"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pclmulqdq" xmm-mode="SSE">
      <ISA id="PCLMULQDQ"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPEQB" summary="Compare Packed Byte Data for Equality">
    <InstructionForm gas-name="pcmpeqb" go-name="PCMPEQB" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqb" go-name="PCMPEQB" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="74"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqb" go-name="PCMPEQB" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqb" go-name="PCMPEQB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="74"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPEQD" summary="Compare Packed Doubleword Data for Equality">
    <InstructionForm gas-name="pcmpeqd" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="76"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqd" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="76"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPEQQ" summary="Compare Packed Quadword Data for Equality">
    <InstructionForm gas-name="pcmpeqq" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="29"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPEQW" summary="Compare Packed Word Data for Equality">
    <InstructionForm gas-name="pcmpeqw" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="75"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqw" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpeqw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="75"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPESTRI" summary="Packed Compare Explicit Length Strings, Return Index">
    <InstructionForm gas-name="pcmpestri" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpestri" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="61"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPESTRM" summary="Packed Compare Explicit Length Strings, Return Mask">
    <InstructionForm gas-name="pcmpestrm" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpestrm" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="60"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPGTB" summary="Compare Packed Signed Byte Integers for Greater Than">
    <InstructionForm gas-name="pcmpgtb" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtb" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="64"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtb" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtb" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="64"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPGTD" summary="Compare Packed Signed Doubleword Integers for Greater Than">
    <InstructionForm gas-name="pcmpgtd" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtd" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPGTQ" summary="Compare Packed Data for Greater Than">
    <InstructionForm gas-name="pcmpgtq" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtq" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="37"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPGTW" summary="Compare Packed Signed Word Integers for Greater Than">
    <InstructionForm gas-name="pcmpgtw" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="65"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtw" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpgtw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="65"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPISTRI" summary="Packed Compare Implicit Length Strings, Return Index">
    <InstructionForm gas-name="pcmpistri" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpistri" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="63"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PCMPISTRM" summary="Packed Compare Implicit Length Strings, Return Mask">
    <InstructionForm gas-name="pcmpistrm" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pcmpistrm" xmm-mode="SSE">
      <ISA id="SSE4.2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="62"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PDEP" summary="Parallel Bits Deposit">
    <InstructionForm gas-name="pdep">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pdep">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PEXT" summary="Parallel Bits Extract">
    <InstructionForm gas-name="pext">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pext">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PEXTRB" summary="Extract Byte">
    <InstructionForm gas-name="pextrb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pextrb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="m8" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PEXTRD" summary="Extract Doubleword">
    <InstructionForm gas-name="pextrd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pextrd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="16"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PEXTRW" summary="Extract Word">
    <InstructionForm gas-name="pextrw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pextrw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pextrw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="m16" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PF2ID" summary="Packed Floating-Point to Integer Doubleword Converson">
    <InstructionForm gas-name="pf2id" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="1D"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pf2id" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="1D"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PF2IW" summary="Packed Floating-Point to Integer Word Conversion">
    <InstructionForm gas-name="pf2iw" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="1C"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pf2iw" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="1C"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFACC" summary="Packed Floating-Point Accumulate">
    <InstructionForm gas-name="pfacc" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="AE"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfacc" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="AE"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFADD" summary="Packed Floating-Point Add">
    <InstructionForm gas-name="pfadd" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="9E"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfadd" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="9E"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFCMPEQ" summary="Packed Floating-Point Compare for Equal">
    <InstructionForm gas-name="pfcmpeq" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="B0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfcmpeq" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="B0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFCMPGE" summary="Packed Floating-Point Compare for Greater or Equal">
    <InstructionForm gas-name="pfcmpge" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="90"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfcmpge" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="90"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFCMPGT" summary="Packed Floating-Point Compare for Greater Than">
    <InstructionForm gas-name="pfcmpgt" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="A0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfcmpgt" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="A0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFMAX" summary="Packed Floating-Point Maximum">
    <InstructionForm gas-name="pfmax" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="A4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfmax" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="A4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFMIN" summary="Packed Floating-Point Minimum">
    <InstructionForm gas-name="pfmin" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="94"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfmin" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="94"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFMUL" summary="Packed Floating-Point Multiply">
    <InstructionForm gas-name="pfmul" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="B4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfmul" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="B4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFNACC" summary="Packed Floating-Point Negative Accumulate">
    <InstructionForm gas-name="pfnacc" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="8A"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfnacc" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="8A"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFPNACC" summary="Packed Floating-Point Positive-Negative Accumulate">
    <InstructionForm gas-name="pfpnacc" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="8E"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfpnacc" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="8E"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRCP" summary="Packed Floating-Point Reciprocal Approximation">
    <InstructionForm gas-name="pfrcp" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="96"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrcp" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="96"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRCPIT1" summary="Packed Floating-Point Reciprocal Iteration 1">
    <InstructionForm gas-name="pfrcpit1" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="A6"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrcpit1" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="A6"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRCPIT2" summary="Packed Floating-Point Reciprocal Iteration 2">
    <InstructionForm gas-name="pfrcpit2" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="B6"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrcpit2" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="B6"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRCPV" summary="Packed Floating-Point Reciprocal Approximation Vector">
    <InstructionForm gas-name="pfrcpv" mmx-mode="MMX">
      <ISA id="3dnow! Geode"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="86"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrcpv" mmx-mode="MMX">
      <ISA id="3dnow! Geode"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="86"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRSQIT1" summary="Packed Floating-Point Reciprocal Square Root Iteration 1">
    <InstructionForm gas-name="pfrsqit1" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="A7"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrsqit1" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="A7"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRSQRT" summary="Packed Floating-Point Reciprocal Square Root Approximation">
    <InstructionForm gas-name="pfrsqrt" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="97"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrsqrt" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="97"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFRSQRTV" summary="Packed Floating-Point Reciprocal Square Root Approximation Vector">
    <InstructionForm gas-name="pfrsqrtv" mmx-mode="MMX">
      <ISA id="3dnow! Geode"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="87"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfrsqrtv" mmx-mode="MMX">
      <ISA id="3dnow! Geode"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="87"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFSUB" summary="Packed Floating-Point Subtract">
    <InstructionForm gas-name="pfsub" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="9A"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfsub" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="9A"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PFSUBR" summary="Packed Floating-Point Subtract Reverse">
    <InstructionForm gas-name="pfsubr" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="AA"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pfsubr" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="AA"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHADDD" summary="Packed Horizontal Add Doubleword Integer">
    <InstructionForm gas-name="phaddd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="02"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHADDSW" summary="Packed Horizontal Add Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="phaddsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="03"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="03"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHADDW" summary="Packed Horizontal Add Word Integers">
    <InstructionForm gas-name="phaddw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phaddw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHMINPOSUW" summary="Packed Horizontal Minimum of Unsigned Word Integers">
    <InstructionForm gas-name="phminposuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phminposuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="41"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHSUBD" summary="Packed Horizontal Subtract Doubleword Integers">
    <InstructionForm gas-name="phsubd" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="06"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="06"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubd" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="06"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="06"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHSUBSW" summary="Packed Horizontal Subtract Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="phsubsw" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="07"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="07"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubsw" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="07"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="07"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PHSUBW" summary="Packed Horizontal Subtract Word Integers">
    <InstructionForm gas-name="phsubw" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubw" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="phsubw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PI2FD" summary="Packed Integer to Floating-Point Doubleword Conversion">
    <InstructionForm gas-name="pi2fd" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="0D"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pi2fd" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="0D"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PI2FW" summary="Packed Integer to Floating-Point Word Conversion">
    <InstructionForm gas-name="pi2fw" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="0C"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pi2fw" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="0C"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PINSRB" summary="Insert Byte">
    <InstructionForm gas-name="pinsrb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pinsrb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PINSRD" summary="Insert Doubleword">
    <InstructionForm gas-name="pinsrd" go-name="PINSRD" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pinsrd" go-name="PINSRD" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PINSRW" summary="Insert Word">
    <InstructionForm gas-name="pinsrw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pinsrw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pinsrw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pinsrw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMADDUBSW" summary="Multiply and Add Packed Signed and Unsigned Byte Integers">
    <InstructionForm gas-name="pmaddubsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddubsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddubsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddubsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMADDWD" summary="Multiply and Add Packed Signed Word Integers">
    <InstructionForm gas-name="pmaddwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaddwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXSB" summary="Maximum of Packed Signed Byte Integers">
    <InstructionForm gas-name="pmaxsb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxsb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXSD" summary="Maximum of Packed Signed Doubleword Integers">
    <InstructionForm gas-name="pmaxsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXSW" summary="Maximum of Packed Signed Word Integers">
    <InstructionForm gas-name="pmaxsw" go-name="PMAXSW" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxsw" go-name="PMAXSW" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxsw" go-name="PMAXSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxsw" go-name="PMAXSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXUB" summary="Maximum of Packed Unsigned Byte Integers">
    <InstructionForm gas-name="pmaxub" go-name="PMAXUB" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxub" go-name="PMAXUB" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxub" go-name="PMAXUB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxub" go-name="PMAXUB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DE"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXUD" summary="Maximum of Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="pmaxud" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxud" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMAXUW" summary="Maximum of Packed Unsigned Word Integers">
    <InstructionForm gas-name="pmaxuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmaxuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINSB" summary="Minimum of Packed Signed Byte Integers">
    <InstructionForm gas-name="pminsb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminsb" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="38"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINSD" summary="Minimum of Packed Signed Doubleword Integers">
    <InstructionForm gas-name="pminsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="39"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINSW" summary="Minimum of Packed Signed Word Integers">
    <InstructionForm gas-name="pminsw" go-name="PMINSW" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminsw" go-name="PMINSW" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminsw" go-name="PMINSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminsw" go-name="PMINSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINUB" summary="Minimum of Packed Unsigned Byte Integers">
    <InstructionForm gas-name="pminub" go-name="PMINUB" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminub" go-name="PMINUB" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="DA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminub" go-name="PMINUB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminub" go-name="PMINUB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="DA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINUD" summary="Minimum of Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="pminud" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminud" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMINUW" summary="Minimum of Packed Unsigned Word Integers">
    <InstructionForm gas-name="pminuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pminuw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="3A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVMSKB" summary="Move Byte Mask">
    <InstructionForm gas-name="pmovmskb" go-name="PMOVMSKB" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovmskb" go-name="PMOVMSKB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXBD" summary="Move Packed Byte Integers to Doubleword Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxbd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxbd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXBQ" summary="Move Packed Byte Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxbq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxbq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXBW" summary="Move Packed Byte Integers to Word Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXDQ" summary="Move Packed Doubleword Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxdq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxdq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXWD" summary="Move Packed Word Integers to Doubleword Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxwd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxwd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVSXWQ" summary="Move Packed Word Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="pmovsxwq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovsxwq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXBD" summary="Move Packed Byte Integers to Doubleword Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxbd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxbd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXBQ" summary="Move Packed Byte Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxbq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxbq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXBW" summary="Move Packed Byte Integers to Word Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxbw" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXDQ" summary="Move Packed Doubleword Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxdq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxdq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXWD" summary="Move Packed Word Integers to Doubleword Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxwd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxwd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMOVZXWQ" summary="Move Packed Word Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="pmovzxwq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmovzxwq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULDQ" summary="Multiply Packed Signed Doubleword Integers and Store Quadword Result">
    <InstructionForm gas-name="pmuldq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmuldq" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULHRSW" summary="Packed Multiply Signed Word Integers and Store High Result with Round and Scale">
    <InstructionForm gas-name="pmulhrsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhrsw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhrsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhrsw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULHRW" summary="Packed Multiply High Rounded Word">
    <InstructionForm gas-name="pmulhrw" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="B7"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhrw" mmx-mode="MMX">
      <ISA id="3dnow!"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="B7"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULHUW" summary="Multiply Packed Unsigned Word Integers and Store High Result">
    <InstructionForm gas-name="pmulhuw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhuw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhuw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhuw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULHW" summary="Multiply Packed Signed Word Integers and Store High Result">
    <InstructionForm gas-name="pmulhw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulhw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULLD" summary="Multiply Packed Signed Doubleword Integers and Store Low Result">
    <InstructionForm gas-name="pmulld" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmulld" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="40"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULLW" summary="Multiply Packed Signed Word Integers and Store Low Result">
    <InstructionForm gas-name="pmullw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmullw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmullw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmullw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D5"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PMULUDQ" summary="Multiply Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="pmuludq" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmuludq" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmuludq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pmuludq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="POP" summary="Pop a Value from the Stack">
    <InstructionForm gas-name="popw" go-name="POPW">
      <Operand type="r16" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="58" addend="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="8F"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popl" go-name="POPL">
      <Operand type="r32" input="false" output="true"/>
      <Encoding>
        <Opcode byte="58" addend="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="8F"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popw" go-name="POPW">
      <Operand type="m16" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="8F"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popl" go-name="POPL">
      <Operand type="m32" input="false" output="true"/>
      <Encoding>
        <Opcode byte="8F"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="POPCNT" summary="Count of Number of Bits Set to 1">
    <InstructionForm gas-name="popcntw">
      <ISA id="POPCNT"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popcntw">
      <ISA id="POPCNT"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="B8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popcntl">
      <ISA id="POPCNT"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="popcntl">
      <ISA id="POPCNT"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="B8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="POR" summary="Packed Bitwise Logical OR">
    <InstructionForm gas-name="por" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="por" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="por" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="por" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHNTA" summary="Prefetch Data Into Caches using NTA Hint">
    <InstructionForm gas-name="prefetchnta" go-name="PREFETCHNTA">
      <ISA id="MMX+"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="18"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHT0" summary="Prefetch Data Into Caches using T0 Hint">
    <InstructionForm gas-name="prefetcht0" go-name="PREFETCHT0">
      <ISA id="MMX+"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="18"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHT1" summary="Prefetch Data Into Caches using T1 Hint">
    <InstructionForm gas-name="prefetcht1" go-name="PREFETCHT1">
      <ISA id="MMX+"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="18"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHT2" summary="Prefetch Data Into Caches using T2 Hint">
    <InstructionForm gas-name="prefetcht2" go-name="PREFETCHT2">
      <ISA id="MMX+"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="18"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHW" summary="Prefetch Data into Caches in Anticipation of a Write">
    <InstructionForm gas-name="prefetchw">
      <ISA id="PRFCHW"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0D"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PREFETCHWT1" summary="Prefetch Vector Data Into Caches with Intent to Write and T1 Hint">
    <InstructionForm gas-name="prefetchwt1">
      <ISA id="PREFETCHWT1"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0D"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSADBW" summary="Compute Sum of Absolute Differences">
    <InstructionForm gas-name="psadbw" go-name="PSADBW" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psadbw" go-name="PSADBW" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psadbw" go-name="PSADBW" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psadbw" go-name="PSADBW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSHUFB" summary="Packed Shuffle Bytes">
    <InstructionForm gas-name="pshufb" go-name="PSHUFB" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufb" go-name="PSHUFB" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="00"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufb" go-name="PSHUFB" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufb" go-name="PSHUFB" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="00"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSHUFD" summary="Shuffle Packed Doublewords">
    <InstructionForm gas-name="pshufd" go-name="PSHUFL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufd" go-name="PSHUFL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSHUFHW" summary="Shuffle Packed High Words">
    <InstructionForm gas-name="pshufhw" go-name="PSHUFHW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufhw" go-name="PSHUFHW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSHUFLW" summary="Shuffle Packed Low Words">
    <InstructionForm gas-name="pshuflw" go-name="PSHUFLW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshuflw" go-name="PSHUFLW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSHUFW" summary="Shuffle Packed Words">
    <InstructionForm gas-name="pshufw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pshufw" mmx-mode="MMX">
      <ISA id="MMX+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSIGNB" summary="Packed Sign of Byte Integers">
    <InstructionForm gas-name="psignb" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignb" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignb" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignb" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSIGND" summary="Packed Sign of Doubleword Integers">
    <InstructionForm gas-name="psignd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignd" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignd" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="0A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSIGNW" summary="Packed Sign of Word Integers">
    <InstructionForm gas-name="psignw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignw" mmx-mode="MMX">
      <ISA id="SSSE3"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psignw" xmm-mode="SSE">
      <ISA id="SSSE3"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSLLD" summary="Shift Packed Doubleword Data Left Logical">
    <InstructionForm gas-name="pslld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pslld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pslld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pslld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pslld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pslld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSLLDQ" summary="Shift Packed Double Quadword Left Logical">
    <InstructionForm gas-name="pslldq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSLLQ" summary="Shift Packed Quadword Data Left Logical">
    <InstructionForm gas-name="psllq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSLLW" summary="Shift Packed Word Data Left Logical">
    <InstructionForm gas-name="psllw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psllw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRAD" summary="Shift Packed Doubleword Data Right Arithmetic">
    <InstructionForm gas-name="psrad" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrad" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrad" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrad" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrad" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrad" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRAW" summary="Shift Packed Word Data Right Arithmetic">
    <InstructionForm gas-name="psraw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psraw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psraw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psraw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psraw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psraw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRLD" summary="Shift Packed Doubleword Data Right Logical">
    <InstructionForm gas-name="psrld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrld" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrld" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRLDQ" summary="Shift Packed Double Quadword Right Logical">
    <InstructionForm gas-name="psrldq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRLQ" summary="Shift Packed Quadword Data Right Logical">
    <InstructionForm gas-name="psrlq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSRLW" summary="Shift Packed Word Data Right Logical">
    <InstructionForm gas-name="psrlw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psrlw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBB" summary="Subtract Packed Byte Integers">
    <InstructionForm gas-name="psubb" go-name="PSUBB" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubb" go-name="PSUBB" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubb" go-name="PSUBB" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubb" go-name="PSUBB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBD" summary="Subtract Packed Doubleword Integers">
    <InstructionForm gas-name="psubd" go-name="PSUBL" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubd" go-name="PSUBL" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubd" go-name="PSUBL" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubd" go-name="PSUBL" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBQ" summary="Subtract Packed Quadword Integers">
    <InstructionForm gas-name="psubq" go-name="PSUBQ" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubq" go-name="PSUBQ" mmx-mode="MMX">
      <ISA id="SSE2"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="FB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubq" go-name="PSUBQ" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubq" go-name="PSUBQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="FB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBSB" summary="Subtract Packed Signed Byte Integers with Signed Saturation">
    <InstructionForm gas-name="psubsb" go-name="PSUBSB" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsb" go-name="PSUBSB" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsb" go-name="PSUBSB" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsb" go-name="PSUBSB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBSW" summary="Subtract Packed Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="psubsw" go-name="PSUBSW" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsw" go-name="PSUBSW" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="E9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsw" go-name="PSUBSW" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubsw" go-name="PSUBSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="E9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBUSB" summary="Subtract Packed Unsigned Byte Integers with Unsigned Saturation">
    <InstructionForm gas-name="psubusb" go-name="PSUBUSB" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusb" go-name="PSUBUSB" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusb" go-name="PSUBUSB" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusb" go-name="PSUBUSB" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBUSW" summary="Subtract Packed Unsigned Word Integers with Unsigned Saturation">
    <InstructionForm gas-name="psubusw" go-name="PSUBUSW" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusw" go-name="PSUBUSW" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="D9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusw" go-name="PSUBUSW" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubusw" go-name="PSUBUSW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="D9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSUBW" summary="Subtract Packed Word Integers">
    <InstructionForm gas-name="psubw" go-name="PSUBW" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubw" go-name="PSUBW" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="F9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubw" go-name="PSUBW" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="psubw" go-name="PSUBW" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="F9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PSWAPD" summary="Packed Swap Doubleword">
    <InstructionForm gas-name="pswapd" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Opcode byte="BB"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pswapd" mmx-mode="MMX">
      <ISA id="3dnow!+"/>
      <Operand type="mm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Opcode byte="BB"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PTEST" summary="Packed Logical Compare">
    <InstructionForm gas-name="ptest" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="ptest" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="17"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKHBW" summary="Unpack and Interleave High-Order Bytes into Words">
    <InstructionForm gas-name="punpckhbw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhbw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="68"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhbw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhbw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="68"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKHDQ" summary="Unpack and Interleave High-Order Doublewords into Quadwords">
    <InstructionForm gas-name="punpckhdq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhdq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="6A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhdq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhdq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKHQDQ" summary="Unpack and Interleave High-Order Quadwords into Double Quadwords">
    <InstructionForm gas-name="punpckhqdq" go-name="PUNPCKHQDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhqdq" go-name="PUNPCKHQDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKHWD" summary="Unpack and Interleave High-Order Words into Doublewords">
    <InstructionForm gas-name="punpckhwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="69"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckhwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="69"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKLBW" summary="Unpack and Interleave Low-Order Bytes into Words">
    <InstructionForm gas-name="punpcklbw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklbw" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="60"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklbw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklbw" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="60"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKLDQ" summary="Unpack and Interleave Low-Order Doublewords into Quadwords">
    <InstructionForm gas-name="punpckldq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckldq" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="62"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckldq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpckldq" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="62"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKLQDQ" summary="Unpack and Interleave Low-Order Quadwords into Double Quadwords">
    <InstructionForm gas-name="punpcklqdq" go-name="PUNPCKLQDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklqdq" go-name="PUNPCKLQDQ" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="6C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUNPCKLWD" summary="Unpack and Interleave Low-Order Words into Doublewords">
    <InstructionForm gas-name="punpcklwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklwd" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="61"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="punpcklwd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="61"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PUSH" summary="Push Value Onto the Stack">
    <InstructionForm gas-name="pushq">
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="6A"/>
        <Immediate size="1" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pushq">
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="68"/>
        <Immediate size="4" value="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pushw" go-name="PUSHW">
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="50" addend="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pushl" go-name="PUSHL">
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="50" addend="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pushw" go-name="PUSHW">
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pushl" go-name="PUSHL">
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="FF"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="PXOR" summary="Packed Bitwise Logical Exclusive OR">
    <InstructionForm gas-name="pxor" go-name="PXOR" mmx-mode="MMX" cancelling-inputs="true">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="mm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pxor" go-name="PXOR" mmx-mode="MMX">
      <ISA id="MMX"/>
      <Operand type="mm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="EF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pxor" go-name="PXOR" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="pxor" go-name="PXOR" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="EF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RCL" summary="Rotate Left through Carry Flag">
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclb" go-name="RCLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rclw" go-name="RCLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcll" go-name="RCLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RCPPS" summary="Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="rcpps" go-name="RCPPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="53"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcpps" go-name="RCPPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="53"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RCPSS" summary="Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="rcpss" go-name="RCPSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="53"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcpss" go-name="RCPSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="53"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RCR" summary="Rotate Right through Carry Flag">
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrb" go-name="RCRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrw" go-name="RCRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rcrl" go-name="RCRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RDRAND" summary="Read Random Number">
    <InstructionForm gas-name="rdrand">
      <ISA id="RDRAND"/>
      <Operand type="r16" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rdrand">
      <ISA id="RDRAND"/>
      <Operand type="r32" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RDSEED" summary="Read Random SEED">
    <InstructionForm gas-name="rdseed">
      <ISA id="RDSEED"/>
      <Operand type="r16" input="false" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rdseed">
      <ISA id="RDSEED"/>
      <Operand type="r32" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RDTSC" summary="Read Time-Stamp Counter">
    <InstructionForm gas-name="rdtsc" go-name="RDTSC">
      <ISA id="RDTSC"/>
      <ImplicitOperand id="eax" input="false" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="31"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RDTSCP" summary="Read Time-Stamp Counter and Processor ID">
    <InstructionForm gas-name="rdtscp">
      <ISA id="RDTSCP"/>
      <ImplicitOperand id="eax" input="false" output="true"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="01"/>
        <Opcode byte="F9"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RET" summary="Return from Procedure">
    <InstructionForm gas-name="ret" go-name="RET">
      <Encoding>
        <Opcode byte="C3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="ret" go-name="RET">
      <Operand type="imm16"/>
      <Encoding>
        <Opcode byte="C2"/>
        <Immediate size="2" value="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROL" summary="Rotate Left">
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolb" go-name="ROLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rolw" go-name="ROLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roll" go-name="ROLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROR" summary="Rotate Right">
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorb" go-name="RORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorw" go-name="RORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorl" go-name="RORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RORX" summary="Rotate Right Logical Without Affecting Flags">
    <InstructionForm gas-name="rorxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="F0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rorxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROUNDPD" summary="Round Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="roundpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roundpd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROUNDPS" summary="Round Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="roundps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roundps" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROUNDSD" summary="Round Scalar Double Precision Floating-Point Values">
    <InstructionForm gas-name="roundsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roundsd" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="ROUNDSS" summary="Round Scalar Single Precision Floating-Point Values">
    <InstructionForm gas-name="roundss" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="roundss" xmm-mode="SSE">
      <ISA id="SSE4.1"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="0A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RSQRTPS" summary="Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="rsqrtps" go-name="RSQRTPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="52"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rsqrtps" go-name="RSQRTPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="52"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="RSQRTSS" summary="Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="rsqrtss" go-name="RSQRTSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="52"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="rsqrtss" go-name="RSQRTSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="52"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SAHF" summary="Store AH into Flags">
    <InstructionForm gas-name="sahf" go-name="SAHF">
      <Encoding>
        <Opcode byte="9E"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SAL" summary="Arithmetic Shift Left">
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salb" go-name="SALB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="salw" go-name="SALW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sall" go-name="SALL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SAR" summary="Arithmetic Shift Right">
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarb" go-name="SARB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarw" go-name="SARW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarl" go-name="SARL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="7" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SARX" summary="Arithmetic Shift Right Without Affecting Flags">
    <InstructionForm gas-name="sarxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="10" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sarxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="10" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SBB" summary="Subtract with Borrow">
    <InstructionForm gas-name="sbbb" go-name="SBBB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="1C"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbb" go-name="SBBB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbb" go-name="SBBB" cancelling-inputs="true">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="1A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbb" go-name="SBBB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="1D"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW" cancelling-inputs="true">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="1B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="1B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="1D"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="3" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL" cancelling-inputs="true">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="1B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="1B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbb" go-name="SBBB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbb" go-name="SBBB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="18"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbw" go-name="SBBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sbbl" go-name="SBBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETA" summary="Set byte if above (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="seta" go-name="SETHI">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="seta" go-name="SETHI">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="97"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETAE" summary="Set byte if above or equal (CF == 0)">
    <InstructionForm gas-name="setae" go-name="SETCC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setae" go-name="SETCC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETB" summary="Set byte if below (CF == 1)">
    <InstructionForm gas-name="setb" go-name="SETCS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setb" go-name="SETCS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETBE" summary="Set byte if below or equal (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="setbe" go-name="SETLS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setbe" go-name="SETLS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="96"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETC" summary="Set byte if carry (CF == 1)">
    <InstructionForm gas-name="setc" go-name="SETCS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setc" go-name="SETCS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETE" summary="Set byte if equal (ZF == 1)">
    <InstructionForm gas-name="sete" go-name="SETEQ">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="94"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sete" go-name="SETEQ">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="94"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETG" summary="Set byte if greater (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="setg" go-name="SETGT">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setg" go-name="SETGT">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9F"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETGE" summary="Set byte if greater or equal (SF == OF)">
    <InstructionForm gas-name="setge" go-name="SETGE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setge" go-name="SETGE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9D"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETL" summary="Set byte if less (SF != OF)">
    <InstructionForm gas-name="setl" go-name="SETLT">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setl" go-name="SETLT">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9C"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETLE" summary="Set byte if less or equal (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="setle" go-name="SETLE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setle" go-name="SETLE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9E"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNA" summary="Set byte if not above (CF == 1 or ZF == 1)">
    <InstructionForm gas-name="setna" go-name="SETLS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setna" go-name="SETLS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="96"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNAE" summary="Set byte if not above or equal (CF == 1)">
    <InstructionForm gas-name="setnae" go-name="SETCS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnae" go-name="SETCS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="92"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNB" summary="Set byte if not below (CF == 0)">
    <InstructionForm gas-name="setnb" go-name="SETCC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnb" go-name="SETCC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNBE" summary="Set byte if not below or equal (CF == 0 and ZF == 0)">
    <InstructionForm gas-name="setnbe" go-name="SETHI">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnbe" go-name="SETHI">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="97"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNC" summary="Set byte if not carry (CF == 0)">
    <InstructionForm gas-name="setnc" go-name="SETCC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnc" go-name="SETCC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="93"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNE" summary="Set byte if not equal (ZF == 0)">
    <InstructionForm gas-name="setne" go-name="SETNE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="95"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setne" go-name="SETNE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="95"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNG" summary="Set byte if not greater (ZF == 1 or SF != OF)">
    <InstructionForm gas-name="setng" go-name="SETLE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setng" go-name="SETLE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9E"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNGE" summary="Set byte if not greater or equal (SF != OF)">
    <InstructionForm gas-name="setnge" go-name="SETLT">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnge" go-name="SETLT">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9C"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNL" summary="Set byte if not less (SF == OF)">
    <InstructionForm gas-name="setnl" go-name="SETGE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnl" go-name="SETGE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9D"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNLE" summary="Set byte if not less or equal (ZF == 0 and SF == OF)">
    <InstructionForm gas-name="setnle" go-name="SETGT">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnle" go-name="SETGT">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9F"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNO" summary="Set byte if not overflow (OF == 0)">
    <InstructionForm gas-name="setno" go-name="SETOC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="91"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setno" go-name="SETOC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="91"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNP" summary="Set byte if not parity (PF == 0)">
    <InstructionForm gas-name="setnp" go-name="SETPC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnp" go-name="SETPC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9B"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNS" summary="Set byte if not sign (SF == 0)">
    <InstructionForm gas-name="setns" go-name="SETPL">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setns" go-name="SETPL">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="99"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETNZ" summary="Set byte if not zero (ZF == 0)">
    <InstructionForm gas-name="setnz" go-name="SETNE">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="95"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setnz" go-name="SETNE">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="95"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETO" summary="Set byte if overflow (OF == 1)">
    <InstructionForm gas-name="seto" go-name="SETOS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="seto" go-name="SETOS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="90"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETP" summary="Set byte if parity (PF == 1)">
    <InstructionForm gas-name="setp" go-name="SETPS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setp" go-name="SETPS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9A"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETPE" summary="Set byte if parity even (PF == 1)">
    <InstructionForm gas-name="setpe" go-name="SETPS">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setpe" go-name="SETPS">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9A"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETPO" summary="Set byte if parity odd (PF == 0)">
    <InstructionForm gas-name="setpo" go-name="SETPC">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setpo" go-name="SETPC">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="9B"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETS" summary="Set byte if sign (SF == 1)">
    <InstructionForm gas-name="sets" go-name="SETMI">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sets" go-name="SETMI">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="98"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SETZ" summary="Set byte if zero (ZF == 1)">
    <InstructionForm gas-name="setz" go-name="SETEQ">
      <Operand type="r8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="94"/>
        <ModRM mode="11" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="setz" go-name="SETEQ">
      <Operand type="m8" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="94"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SFENCE" summary="Store Fence">
    <InstructionForm gas-name="sfence" go-name="SFENCE">
      <ISA id="MMX+"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AE"/>
        <Opcode byte="F8"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA1MSG1" summary="Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords">
    <InstructionForm gas-name="sha1msg1" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="C9"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha1msg1" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="C9"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA1MSG2" summary="Perform a Final Calculation for the Next Four SHA1 Message Doublewords">
    <InstructionForm gas-name="sha1msg2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha1msg2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA1NEXTE" summary="Calculate SHA1 State Variable E after Four Rounds">
    <InstructionForm gas-name="sha1nexte" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="C8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha1nexte" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="C8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA1RNDS4" summary="Perform Four Rounds of SHA1 Operation">
    <InstructionForm gas-name="sha1rnds4" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="CC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha1rnds4" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="3A"/>
        <Opcode byte="CC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA256MSG1" summary="Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords">
    <InstructionForm gas-name="sha256msg1" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha256msg1" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA256MSG2" summary="Perform a Final Calculation for the Next Four SHA256 Message Doublewords">
    <InstructionForm gas-name="sha256msg2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CD"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha256msg2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CD"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHA256RNDS2" summary="Perform Two Rounds of SHA256 Operation">
    <InstructionForm gas-name="sha256rnds2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sha256rnds2" xmm-mode="SSE">
      <ISA id="SHA"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm0" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="38"/>
        <Opcode byte="CB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHL" summary="Logical Shift Left">
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlb" go-name="SHLB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlw" go-name="SHLW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shll" go-name="SHLL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="4" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHLD" summary="Integer Double Precision Shift Left">
    <InstructionForm gas-name="shldw">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A4"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldw">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A5"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldl">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A4"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldl">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A5"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldw">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A4"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldw">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="A5"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldl">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A4"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shldl">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="A5"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHLX" summary="Logical Shift Left Without Affecting Flags">
    <InstructionForm gas-name="shlxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shlxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHR" summary="Logical Shift Right">
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D0"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrb" go-name="SHRB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D2"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrw" go-name="SHRW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="1"/>
      <Encoding>
        <Opcode byte="D1"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrl" go-name="SHRL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D3"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHRD" summary="Integer Double Precision Shift Right">
    <InstructionForm gas-name="shrdw">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdw">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdl">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdl">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdw">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AC"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdw">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="AD"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdl">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AC"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrdl">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="cl" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AD"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHRX" summary="Logical Shift Right Without Affecting Flags">
    <InstructionForm gas-name="shrxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shrxl">
      <ISA id="BMI2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="11" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="F7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHUFPD" summary="Shuffle Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="shufpd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shufpd" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="C6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SHUFPS" summary="Shuffle Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="shufps" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="shufps" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SQRTPD" summary="Compute Square Roots of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="sqrtpd" go-name="SQRTPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sqrtpd" go-name="SQRTPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SQRTPS" summary="Compute Square Roots of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="sqrtps" go-name="SQRTPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sqrtps" go-name="SQRTPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SQRTSD" summary="Compute Square Root of Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="sqrtsd" go-name="SQRTSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sqrtsd" go-name="SQRTSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SQRTSS" summary="Compute Square Root of Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="sqrtss" go-name="SQRTSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="sqrtss" go-name="SQRTSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="STC" summary="Set Carry Flag">
    <InstructionForm gas-name="stc" go-name="STC">
      <Encoding>
        <Opcode byte="F9"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="STD" summary="Set Direction Flag">
    <InstructionForm gas-name="std" go-name="STD">
      <Encoding>
        <Opcode byte="FD"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="STMXCSR" summary="Store MXCSR Register State">
    <InstructionForm gas-name="stmxcsr" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="m32" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="AE"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SUB" summary="Subtract">
    <InstructionForm gas-name="subb" go-name="SUBB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="2C"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subb" go-name="SUBB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subb" go-name="SUBB" cancelling-inputs="true">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subb" go-name="SUBB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="2D"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW" cancelling-inputs="true">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="2B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="2D"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="5" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL" cancelling-inputs="true">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="2B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subb" go-name="SUBB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subb" go-name="SUBB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="28"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subw" go-name="SUBW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subl" go-name="SUBL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SUBPD" summary="Subtract Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="subpd" go-name="SUBPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subpd" go-name="SUBPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SUBPS" summary="Subtract Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="subps" go-name="SUBPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subps" go-name="SUBPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SUBSD" summary="Subtract Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="subsd" go-name="SUBSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subsd" go-name="SUBSD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F2" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="SUBSS" summary="Subtract Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="subss" go-name="SUBSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="subss" go-name="SUBSS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="5C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="T1MSKC" summary="Inverse Mask From Trailing Ones">
    <InstructionForm gas-name="t1mskc">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="7" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="t1mskc">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="7" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="t1mskc">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="7" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="t1mskc">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="7" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="TEST" summary="Logical Compare">
    <InstructionForm gas-name="testb" go-name="TESTB">
      <Operand type="al" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="A8"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testb" go-name="TESTB">
      <Operand type="r8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testb" go-name="TESTB">
      <Operand type="r8" input="true" output="false"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="84"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testw" go-name="TESTW">
      <Operand type="ax" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="A9"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testw" go-name="TESTW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testw" go-name="TESTW">
      <Operand type="r16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="85"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testl" go-name="TESTL">
      <Operand type="eax" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="A9"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testl" go-name="TESTL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testl" go-name="TESTL">
      <Operand type="r32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="85"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testb" go-name="TESTB">
      <Operand type="m8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="F6"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testb" go-name="TESTB">
      <Operand type="m8" input="true" output="false"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="84"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testw" go-name="TESTW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testw" go-name="TESTW">
      <Operand type="m16" input="true" output="false"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="85"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testl" go-name="TESTL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="F7"/>
        <ModRM mode="#0" reg="0" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="testl" go-name="TESTL">
      <Operand type="m32" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="85"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="TZCNT" summary="Count the Number of Trailing Zero Bits">
    <InstructionForm gas-name="tzcntw">
      <ISA id="BMI"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzcntw">
      <ISA id="BMI"/>
      <Operand type="r16" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzcntl">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzcntl">
      <ISA id="BMI"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Prefix byte="F3" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="BC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="TZMSK" summary="Mask From Trailing Zeros">
    <InstructionForm gas-name="tzmsk">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="4" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzmsk">
      <ISA id="TBM"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzmsk">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="r64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="4" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="tzmsk">
      <ISA id="TBM"/>
      <Operand type="r64" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UCOMISD" summary="Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="ucomisd" go-name="UCOMISD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="ucomisd" go-name="UCOMISD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UCOMISS" summary="Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="ucomiss" go-name="UCOMISS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="ucomiss" go-name="UCOMISS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UD2" summary="Undefined Instruction">
    <InstructionForm gas-name="ud2">
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="0B"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UNPCKHPD" summary="Unpack and Interleave High Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="unpckhpd" go-name="UNPCKHPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="unpckhpd" go-name="UNPCKHPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="15"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UNPCKHPS" summary="Unpack and Interleave High Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="unpckhps" go-name="UNPCKHPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="unpckhps" go-name="UNPCKHPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="15"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UNPCKLPD" summary="Unpack and Interleave Low Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="unpcklpd" go-name="UNPCKLPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="unpcklpd" go-name="UNPCKLPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="14"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="UNPCKLPS" summary="Unpack and Interleave Low Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="unpcklps" go-name="UNPCKLPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="unpcklps" go-name="UNPCKLPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="14"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDPD" summary="Add Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDPS" summary="Add Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDSD" summary="Add Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vaddsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDSS" summary="Add Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vaddss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="58"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDSUBPD" summary="Packed Double-FP Add/Subtract">
    <InstructionForm gas-name="vaddsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VADDSUBPS" summary="Packed Single-FP Add/Subtract">
    <InstructionForm gas-name="vaddsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaddsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESDEC" summary="Perform One Round of an AES Decryption Flow">
    <InstructionForm gas-name="vaesdec" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaesdec" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESDECLAST" summary="Perform Last Round of an AES Decryption Flow">
    <InstructionForm gas-name="vaesdeclast" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaesdeclast" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESENC" summary="Perform One Round of an AES Encryption Flow">
    <InstructionForm gas-name="vaesenc" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaesenc" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESENCLAST" summary="Perform Last Round of an AES Encryption Flow">
    <InstructionForm gas-name="vaesenclast" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaesenclast" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESIMC" summary="Perform the AES InvMixColumn Transformation">
    <InstructionForm gas-name="vaesimc" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaesimc" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VAESKEYGENASSIST" summary="AES Round Key Generation Assist">
    <InstructionForm gas-name="vaeskeygenassist" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vaeskeygenassist" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="AES"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DF"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VALIGND" summary="Align Doubleword Vectors">
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VALIGNQ" summary="Align Quadword Vectors">
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="valignq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VANDNPD" summary="Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VANDNPS" summary="Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vandnps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandnps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VANDPD" summary="Bitwise Logical AND of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VANDPS" summary="Bitwise Logical AND of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vandps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDMPD" summary="Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control">
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDMPS" summary="Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control">
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendmps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDPD" summary="Blend Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="vblendpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDPS" summary=" Blend Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="vblendps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDVPD" summary=" Variable Blend Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="vblendvpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBLENDVPS" summary=" Variable Blend Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="vblendvps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vblendvps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF128" summary="Broadcast 128 Bit of Floating-Point Data">
    <InstructionForm gas-name="vbroadcastf128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF32X2" summary="Broadcast Two Single-Precision Floating-Point Elements">
    <InstructionForm gas-name="vbroadcastf32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastf32x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastf32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="19"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastf32x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="19"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF32X4" summary="Broadcast Four Single-Precision Floating-Point Elements">
    <InstructionForm gas-name="vbroadcastf32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastf32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF32X8" summary="Broadcast Eight Single-Precision Floating-Point Elements">
    <InstructionForm gas-name="vbroadcastf32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF64X2" summary="Broadcast Two Double-Precision Floating-Point Elements">
    <InstructionForm gas-name="vbroadcastf64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastf64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTF64X4" summary="Broadcast Four Double-Precision Floating-Point Elements">
    <InstructionForm gas-name="vbroadcastf64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI128" summary="Broadcast 128 Bits of Integer Data">
    <InstructionForm gas-name="vbroadcasti128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI32X2" summary="Broadcast Two Doubleword Elements">
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI32X4" summary="Broadcast Four Doubleword Elements">
    <InstructionForm gas-name="vbroadcasti32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI32X8" summary="Broadcast Eight Doubleword Elements">
    <InstructionForm gas-name="vbroadcasti32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI64X2" summary="Broadcast Two Quadword Elements">
    <InstructionForm gas-name="vbroadcasti64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcasti64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTI64X4" summary="Broadcast Four Quadword Elements">
    <InstructionForm gas-name="vbroadcasti64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTSD" summary="Broadcast Double-Precision Floating-Point Element">
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="19"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="19"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="19"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VBROADCASTSS" summary="Broadcast Single-Precision Floating-Point Element">
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="18"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="18"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="18"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vbroadcastss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="18"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCMPPD" summary="Compare Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmppd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCMPPS" summary="Compare Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCMPSD" summary="Compare Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vcmpsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCMPSS" summary="Compare Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vcmpss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcmpss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="0"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCOMISD" summary="Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="vcomisd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomisd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomisd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomisd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCOMISS" summary="Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="vcomiss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomiss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomiss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcomiss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCOMPRESSPD" summary="Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register">
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompresspd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCOMPRESSPS" summary="Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register">
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8A"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcompressps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8A"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTDQ2PD" summary="Convert Packed Dword Integers to Packed Double-Precision FP Values">
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTDQ2PS" summary="Convert Packed Dword Integers to Packed Single-Precision FP Values">
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtdq2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPD2DQ" summary="Convert Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPD2PS" summary="Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values">
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPD2QQ" summary="Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers">
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPD2UDQ" summary="Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPD2UQQ" summary="Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers">
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPH2PS" summary="Convert Half-Precision FP Values to Single-Precision FP Values">
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtph2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2DQ" summary="Convert Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2PD" summary="Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values">
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2PH" summary="Convert Single-Precision FP value to Half-Precision FP value">
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="1D"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1D"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1D"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="F16C"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2ph" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2QQ" summary="Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values">
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2UDQ" summary="Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values">
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTPS2UQQ" summary="Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values">
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtps2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTQQ2PD" summary="Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2pd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTQQ2PS" summary="Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtqq2ps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSD2SI" summary="Convert Scalar Double-Precision FP Value to Integer">
    <InstructionForm gas-name="vcvtsd2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSD2SS" summary="Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value">
    <InstructionForm gas-name="vcvtsd2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2ss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2ss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSD2USI" summary="Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer">
    <InstructionForm gas-name="vcvtsd2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsd2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSI2SD" summary="Convert Dword Integer to Scalar Double-Precision FP Value">
    <InstructionForm gas-name="vcvtsi2sd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2sd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSI2SS" summary="Convert Dword Integer to Scalar Single-Precision FP Value">
    <InstructionForm gas-name="vcvtsi2ss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2ss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtsi2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="000" z="0"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSS2SD" summary="Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value">
    <InstructionForm gas-name="vcvtss2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="5A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2sd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2sd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSS2SI" summary="Convert Scalar Single-Precision FP Value to Dword Integer">
    <InstructionForm gas-name="vcvtss2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTSS2USI" summary="Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer">
    <InstructionForm gas-name="vcvtss2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtss2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPD2DQ" summary="Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="E6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPD2QQ" summary="Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers">
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPD2UDQ" summary="Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPD2UQQ" summary="Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers">
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttpd2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPS2DQ" summary="Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers">
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="5B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2dq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="5B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPS2QQ" summary="Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values">
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2qq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPS2UDQ" summary="Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values">
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2udq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTPS2UQQ" summary="Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values">
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttps2uqq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTSD2SI" summary="Convert with Truncation Scalar Double-Precision FP Value to Signed Integer">
    <InstructionForm gas-name="vcvttsd2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttsd2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttsd2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttsd2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTSD2USI" summary="Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer">
    <InstructionForm gas-name="vcvttsd2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttsd2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTSS2SI" summary="Convert with Truncation Scalar Single-Precision FP Value to Dword Integer">
    <InstructionForm gas-name="vcvttss2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttss2si" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttss2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttss2si" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTTSS2USI" summary="Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer">
    <InstructionForm gas-name="vcvttss2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvttss2usi" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUDQ2PD" summary="Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUDQ2PS" summary="Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtudq2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUQQ2PD" summary="Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2pd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUQQ2PS" summary="Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtuqq2ps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUSI2SD" summary="Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vcvtusi2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtusi2sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="7B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VCVTUSI2SS" summary="Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vcvtusi2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="7B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vcvtusi2ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="000" z="0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDBPSADBW" summary="Double Block Packed Sum-Absolute-Differences on Unsigned Bytes">
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="42"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="42"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdbpsadbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="42"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDIVPD" summary="Divide Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDIVPS" summary="Divide Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDIVSD" summary="Divide Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vdivsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDIVSS" summary="Divide Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vdivss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdivss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDPPD" summary="Dot Product of Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="vdppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdppd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="41"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VDPPS" summary="Dot Product of Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="vdpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vdpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXP2PD" summary="Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error">
    <InstructionForm gas-name="vexp2pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexp2pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="C8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXP2PS" summary="Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error">
    <InstructionForm gas-name="vexp2ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C8"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexp2ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="C8"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXPANDPD" summary="Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory">
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXPANDPS" summary="Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory">
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="88"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vexpandps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="88"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTF128" summary="Extract Packed Floating-Point Values">
    <InstructionForm gas-name="vextractf128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTF32X4" summary="Extract 128 Bits of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vextractf32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTF32X8" summary="Extract 256 Bits of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vextractf32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTF64X2" summary="Extract 128 Bits of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vextractf64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="19"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="19"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTF64X4" summary="Extract 256 Bits of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vextractf64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractf64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTI128" summary="Extract Packed Integer Values">
    <InstructionForm gas-name="vextracti128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTI32X4" summary="Extract 128 Bits of Packed Doubleword Integer Values">
    <InstructionForm gas-name="vextracti32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTI32X8" summary="Extract 256 Bits of Packed Doubleword Integer Values">
    <InstructionForm gas-name="vextracti32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTI64X2" summary="Extract 128 Bits of Packed Quadword Integer Values">
    <InstructionForm gas-name="vextracti64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTI64X4" summary="Extract 256 Bits of Packed Quadword Integer Values">
    <InstructionForm gas-name="vextracti64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextracti64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VEXTRACTPS" summary="Extract Packed Single Precision Floating-Point Value">
    <InstructionForm gas-name="vextractps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vextractps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFIXUPIMMPD" summary="Fix Up Special Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFIXUPIMMPS" summary="Fix Up Special Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="54"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="54"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFIXUPIMMSD" summary="Fix Up Special Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vfixupimmsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFIXUPIMMSS" summary="Fix Up Special Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vfixupimmss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="55"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfixupimmss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="55"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD132PD" summary="Fused Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD132PS" summary="Fused Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD132SD" summary="Fused Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="99"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD132SS" summary="Fused Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="99"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD213PD" summary="Fused Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD213PS" summary="Fused Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD213SD" summary="Fused Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="A9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD213SS" summary="Fused Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="A9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD231PD" summary="Fused Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD231PS" summary="Fused Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD231SD" summary="Fused Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="B9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADD231SS" summary="Fused Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmadd231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="B9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmadd231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDPD" summary="Fused Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDPS" summary="Fused Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSD" summary="Fused Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSS" summary="Fused Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB132PD" summary="Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB132PS" summary="Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB213PD" summary="Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB213PS" summary="Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB231PD" summary="Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUB231PS" summary="Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUBPD" summary="Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMADDSUBPS" summary="Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmaddsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB132PD" summary="Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB132PS" summary="Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB132SD" summary="Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="9B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB132SS" summary="Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="9B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB213PD" summary="Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB213PS" summary="Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB213SD" summary="Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="AB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB213SS" summary="Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="AB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB231PD" summary="Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB231PS" summary="Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB231SD" summary="Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="BB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUB231SS" summary="Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsub231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="BB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsub231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD132PD" summary="Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD132PS" summary="Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD213PD" summary="Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD213PS" summary="Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="A7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD231PD" summary="Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADD231PS" summary="Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B7"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="B7"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADDPD" summary="Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBADDPS" summary="Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBPD" summary="Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBPS" summary="Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBSD" summary="Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6F"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFMSUBSS" summary="Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6E"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD132PD" summary="Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD132PS" summary="Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD132SD" summary="Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="9D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD132SS" summary="Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="9D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD213PD" summary="Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD213PS" summary="Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD213SD" summary="Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="AD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD213SS" summary="Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="AD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD231PD" summary="Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD231PS" summary="Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD231SD" summary="Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="BD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADD231SS" summary="Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmadd231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="BD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmadd231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADDPD" summary="Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="79"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADDPS" summary="Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="78"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADDSD" summary="Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7B"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMADDSS" summary="Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7A"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmaddss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB132PD" summary="Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB132PS" summary="Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB132SD" summary="Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="9F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB132SS" summary="Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="9F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub132ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB213PD" summary="Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB213PS" summary="Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB213SD" summary="Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="AF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB213SS" summary="Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="AF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="AF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub213ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="AF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB231PD" summary="Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB231PS" summary="Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB231SD" summary="Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="BF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231sd" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUB231SS" summary="Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsub231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="BF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ss" xmm-mode="AVX">
      <ISA id="FMA3"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="BF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsub231ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="BF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUBPD" summary="Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubpd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUBPS" summary="Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubps" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUBSD" summary="Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7F"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubsd" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFNMSUBSS" summary="Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfnmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7E"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfnmsubss" xmm-mode="AVX">
      <ISA id="FMA4"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFPCLASSPD" summary="Test Class of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasspd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFPCLASSPS" summary="Test Class of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="66"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFPCLASSSD" summary="Test Class of Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vfpclasssd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclasssd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="67"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFPCLASSSS" summary="Test Class of Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vfpclassss" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfpclassss" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="67"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFRCZPD" summary="Extract Fraction Packed Double-Precision Floating-Point">
    <InstructionForm gas-name="vfrczpd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczpd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="81"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczpd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczpd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="81"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFRCZPS" summary="Extract Fraction Packed Single-Precision Floating-Point">
    <InstructionForm gas-name="vfrczps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="80"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="80"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFRCZSD" summary="Extract Fraction Scalar Double-Precision Floating-Point">
    <InstructionForm gas-name="vfrczsd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczsd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="83"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VFRCZSS" summary="Extract Fraction Scalar Single-Precision Floating Point">
    <InstructionForm gas-name="vfrczss" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="82"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vfrczss" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="82"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERDPD" summary="Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices">
    <InstructionForm gas-name="vgatherdpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERDPS" summary="Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices">
    <InstructionForm gas-name="vgatherdps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm32z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherdps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF0DPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint">
    <InstructionForm gas-name="vgatherpf0dpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32y{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF0DPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint">
    <InstructionForm gas-name="vgatherpf0dps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF0QPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint">
    <InstructionForm gas-name="vgatherpf0qpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF0QPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint">
    <InstructionForm gas-name="vgatherpf0qps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF1DPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint">
    <InstructionForm gas-name="vgatherpf1dpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32y{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF1DPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint">
    <InstructionForm gas-name="vgatherpf1dps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF1QPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint">
    <InstructionForm gas-name="vgatherpf1qpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERPF1QPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint">
    <InstructionForm gas-name="vgatherpf1qps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERQPD" summary="Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices">
    <InstructionForm gas-name="vgatherqpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm64z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGATHERQPS" summary="Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices">
    <InstructionForm gas-name="vgatherqps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm64z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgatherqps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETEXPPD" summary="Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexppd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETEXPPS" summary="Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="42"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETEXPSD" summary="Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vgetexpsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETEXPSS" summary="Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vgetexpss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetexpss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETMANTPD" summary="Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETMANTPS" summary="Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETMANTSD" summary="Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vgetmantsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VGETMANTSS" summary="Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vgetmantss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vgetmantss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VHADDPD" summary="Packed Double-FP Horizontal Add">
    <InstructionForm gas-name="vhaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VHADDPS" summary="Packed Single-FP Horizontal Add">
    <InstructionForm gas-name="vhaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhaddps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VHSUBPD" summary="Packed Double-FP Horizontal Subtract">
    <InstructionForm gas-name="vhsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VHSUBPS" summary="Packed Single-FP Horizontal Subtract">
    <InstructionForm gas-name="vhsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vhsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTF128" summary="Insert Packed Floating-Point Values">
    <InstructionForm gas-name="vinsertf128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="18"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTF32X4" summary="Insert 128 Bits of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vinsertf32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="18"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="18"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTF32X8" summary="Insert 256 Bits of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vinsertf32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTF64X2" summary="Insert 128 Bits of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vinsertf64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="18"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="18"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="18"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTF64X4" summary="Insert 256 Bits of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vinsertf64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertf64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTI128" summary="Insert Packed Integer Values">
    <InstructionForm gas-name="vinserti128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTI32X4" summary="Insert 128 Bits of Packed Doubleword Integer Values">
    <InstructionForm gas-name="vinserti32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTI32X8" summary="Insert 256 Bits of Packed Doubleword Integer Values">
    <InstructionForm gas-name="vinserti32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti32x8" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTI64X2" summary="Insert 128 Bits of Packed Quadword Integer Values">
    <InstructionForm gas-name="vinserti64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti64x2" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTI64X4" summary="Insert 256 Bits of Packed Quadword Integer Values">
    <InstructionForm gas-name="vinserti64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinserti64x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VINSERTPS" summary="Insert Packed Single Precision Floating-Point Value">
    <InstructionForm gas-name="vinsertps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="21"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vinsertps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="21"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VLDDQU" summary="Load Unaligned Integer 128 Bits">
    <InstructionForm gas-name="vlddqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vlddqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="F0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VLDMXCSR" summary="Load MXCSR Register">
    <InstructionForm gas-name="vldmxcsr" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="AE"/>
        <ModRM mode="#0" reg="2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMASKMOVDQU" summary="Store Selected Bytes of Double Quadword">
    <InstructionForm gas-name="vmaskmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <ImplicitOperand id="edi" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="F7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMASKMOVPD" summary="Conditional Move Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmaskmovpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2F"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2F"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMASKMOVPS" summary="Conditional Move Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmaskmovps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaskmovps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMAXPD" summary="Return Maximum Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMAXPS" summary="Return Maximum Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMAXSD" summary="Return Maximum Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vmaxsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMAXSS" summary="Return Maximum Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vmaxss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmaxss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMINPD" summary="Return Minimum Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMINPS" summary="Return Minimum Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMINSD" summary="Return Minimum Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vminsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMINSS" summary="Return Minimum Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vminss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vminss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVAPD" summary="Move Aligned Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovapd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVAPS" summary="Move Aligned Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="28"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovaps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="29"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVD" summary="Move Doubleword">
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="6E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="6E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7E"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="7E"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDDUP" summary="Move One Double-FP and Duplicate">
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovddup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQA" summary="Move Aligned Double Quadword">
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQA32" summary="Move Aligned Doubleword Values">
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQA64" summary="Move Aligned Quadword Values">
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqa64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQU" summary="Move Unaligned Double Quadword">
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQU16" summary="Move Unaligned Word Values">
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu16" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQU32" summary="Move Unaligned Doubleword Values">
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu32" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQU64" summary="Move Unaligned Quadword Values">
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu64" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVDQU8" summary="Move Unaligned Byte Values">
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovdqu8" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVHLPS" summary="Move Packed Single-Precision Floating-Point Values High to Low">
    <InstructionForm gas-name="vmovhlps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhlps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVHPD" summary="Move High Packed Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vmovhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVHPS" summary="Move High Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="17"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovhps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVLHPS" summary="Move Packed Single-Precision Floating-Point Values Low to High">
    <InstructionForm gas-name="vmovlhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlhps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVLPD" summary="Move Low Packed Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vmovlpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVLPS" summary="Move Low Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovlps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovlps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVMSKPD" summary="Extract Packed Double-Precision Floating-Point Sign Mask">
    <InstructionForm gas-name="vmovmskpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovmskpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVMSKPS" summary="Extract Packed Single-Precision Floating-Point Sign Mask">
    <InstructionForm gas-name="vmovmskps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovmskps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVNTDQ" summary="Store Double Quadword Using Non-Temporal Hint">
    <InstructionForm gas-name="vmovntdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="E7"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVNTDQA" summary="Load Double Quadword Non-Temporal Aligned Hint">
    <InstructionForm gas-name="vmovntdqa" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdqa" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdqa" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdqa" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntdqa" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="2A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVNTPD" summary="Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="vmovntpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVNTPS" summary="Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint">
    <InstructionForm gas-name="vmovntps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovntps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="2B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVQ" summary="Move Quadword">
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="7E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="7E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D6"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="D6"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVSD" summary="Move Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m64" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="11" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVSHDUP" summary="Move Packed Single-FP High and Duplicate">
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovshdup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVSLDUP" summary="Move Packed Single-FP Low and Duplicate">
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovsldup" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="12"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVSS" summary="Move Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m32{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVUPD" summary="Move Unaligned Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovupd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMOVUPS" summary="Move Unaligned Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="10"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmovups" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMPSADBW" summary="Compute Multiple Packed Sums of Absolute Difference">
    <InstructionForm gas-name="vmpsadbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmpsadbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmpsadbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmpsadbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="42"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMULPD" summary="Multiply Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMULPS" summary="Multiply Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMULSD" summary="Multiply Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vmulsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VMULSS" summary="Multiply Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vmulss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="59"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vmulss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VORPD" summary="Bitwise Logical OR of Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VORPS" summary="Bitwise Logical OR of Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="56"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPABSB" summary="Packed Absolute Value of Byte Integers">
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPABSD" summary="Packed Absolute Value of Doubleword Integers">
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPABSQ" summary="Packed Absolute Value of Quadword Integers">
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="1F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPABSW" summary="Packed Absolute Value of Word Integers">
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpabsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="1D"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPACKSSDW" summary="Pack Doublewords into Words with Signed Saturation">
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackssdw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPACKSSWB" summary="Pack Words into Bytes with Signed Saturation">
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="63"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="63"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="63"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="63"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpacksswb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="63"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPACKUSDW" summary="Pack Doublewords into Words with Unsigned Saturation">
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="2B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="2B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="2B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackusdw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="2B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPACKUSWB" summary="Pack Words into Bytes with Unsigned Saturation">
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="67"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="67"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="67"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="67"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="67"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpackuswb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="67"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDB" summary="Add Packed Byte Integers">
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="FC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="FC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="FC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDD" summary="Add Packed Doubleword Integers">
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="FE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="FE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="FE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDQ" summary="Add Packed Quadword Integers">
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="D4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="D4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDSB" summary="Add Packed Signed Byte Integers with Signed Saturation">
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDSW" summary="Add Packed Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDUSB" summary="Add Packed Unsigned Byte Integers with Unsigned Saturation">
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDUSW" summary="Add Packed Unsigned Word Integers with Unsigned Saturation">
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddusw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPADDW" summary="Add Packed Word Integers">
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="FD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="FD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="FD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpaddw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPALIGNR" summary="Packed Align Right">
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="0F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="0F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="0F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpalignr" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPAND" summary="Packed Bitwise Logical AND">
    <InstructionForm gas-name="vpand" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpand" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpand" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpand" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPANDD" summary="Bitwise Logical AND of Packed Doubleword Integers">
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPANDN" summary="Packed Bitwise Logical AND NOT">
    <InstructionForm gas-name="vpandn" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandn" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandn" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandn" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPANDND" summary="Bitwise Logical AND NOT of Packed Doubleword Integers">
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPANDNQ" summary="Bitwise Logical AND NOT of Packed Quadword Integers">
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandnq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPANDQ" summary="Bitwise Logical AND of Packed Quadword Integers">
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpandq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPAVGB" summary="Average Packed Byte Integers">
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E0"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E0"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPAVGW" summary="Average Packed Word Integers">
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpavgw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDD" summary="Blend Packed Doublewords">
    <InstructionForm gas-name="vpblendd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDMB" summary="Blend Byte Vectors Using an OpMask Control">
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDMD" summary="Blend Doubleword Vectors Using an OpMask Control">
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDMQ" summary="Blend Quadword Vectors Using an OpMask Control">
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDMW" summary="Blend Word Vectors Using an OpMask Control">
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendmw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDVB" summary="Variable Blend Packed Bytes">
    <InstructionForm gas-name="vpblendvb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendvb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendvb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendvb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="4C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBLENDW" summary="Blend Packed Words">
    <InstructionForm gas-name="vpblendw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpblendw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTB" summary="Broadcast Byte Integer">
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="1"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="1"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="1"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="78"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="78"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTD" summary="Broadcast Doubleword Integer">
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="58"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="58"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTMB2Q" summary="Broadcast Low Byte of Mask Register to Packed Quadword Values">
    <InstructionForm gas-name="vpbroadcastmb2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastmb2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastmb2q" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="2A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTMW2D" summary="Broadcast Low Word of Mask Register to Packed Doubleword Values">
    <InstructionForm gas-name="vpbroadcastmw2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastmw2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastmw2d" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTQ" summary="Broadcast Quadword Integer">
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="59"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="59"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPBROADCASTW" summary="Broadcast Word Integer">
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="79"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpbroadcastw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="79"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCLMULQDQ" summary="Carry-Less Quadword Multiplication">
    <InstructionForm gas-name="vpclmulqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="PCLMULQDQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpclmulqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <ISA id="PCLMULQDQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="44"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMOV" summary="Packed Conditional Move">
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="1" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="1" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmov" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="1" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPB" summary="Compare Packed Signed Byte Values">
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPD" summary="Compare Packed Signed Doubleword Values">
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPEQB" summary="Compare Packed Byte Data for Equality">
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="74"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="74"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="74"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="74"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="74"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="74"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPEQD" summary="Compare Packed Doubleword Data for Equality">
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPEQQ" summary="Compare Packed Quadword Data for Equality">
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="29"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="29"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="29"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="29"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="29"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPEQW" summary="Compare Packed Word Data for Equality">
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpeqw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPESTRI" summary="Packed Compare Explicit Length Strings, Return Index">
    <InstructionForm gas-name="vpcmpestri" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpestri" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="61"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPESTRM" summary="Packed Compare Explicit Length Strings, Return Mask">
    <InstructionForm gas-name="vpcmpestrm" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpestrm" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="eax" input="true" output="false"/>
      <ImplicitOperand id="edx" input="true" output="false"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="60"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPGTB" summary="Compare Packed Signed Byte Integers for Greater Than">
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="64"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="64"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPGTD" summary="Compare Packed Signed Doubleword Integers for Greater Than">
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="66"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="66"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPGTQ" summary="Compare Packed Data for Greater Than">
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="37"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="37"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="37"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="37"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="37"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="37"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPGTW" summary="Compare Packed Signed Word Integers for Greater Than">
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="65"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpgtw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="65"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPISTRI" summary="Packed Compare Implicit Length Strings, Return Index">
    <InstructionForm gas-name="vpcmpistri" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="63"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpistri" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="ecx" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="63"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPISTRM" summary="Packed Compare Implicit Length Strings, Return Mask">
    <InstructionForm gas-name="vpcmpistrm" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpistrm" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <ImplicitOperand id="xmm0" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="62"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPQ" summary="Compare Packed Signed Quadword Values">
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="1F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPUB" summary="Compare Packed Unsigned Byte Values">
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPUD" summary="Compare Packed Unsigned Doubleword Values">
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPUQ" summary="Compare Packed Unsigned Quadword Values">
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="1E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="1E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPUW" summary="Compare Packed Unsigned Word Values">
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCMPW" summary="Compare Packed Signed Word Values">
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcmpw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMB" summary="Compare Packed Signed Byte Integers">
    <InstructionForm gas-name="vpcomb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMD" summary="Compare Packed Signed Doubleword Integers">
    <InstructionForm gas-name="vpcomd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMPRESSD" summary="Store Sparse Packed Doubleword Integer Values into Dense Memory/Register">
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMPRESSQ" summary="Store Sparse Packed Quadword Integer Values into Dense Memory/Register">
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8B"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcompressq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m512{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="8B"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMQ" summary="Compare Packed Signed Quadword Integers">
    <InstructionForm gas-name="vpcomq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMUB" summary="Compare Packed Unsigned Byte Integers">
    <InstructionForm gas-name="vpcomub" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomub" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EC"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMUD" summary="Compare Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vpcomud" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomud" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMUQ" summary="Compare Packed Unsigned Quadword Integers">
    <InstructionForm gas-name="vpcomuq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomuq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMUW" summary="Compare Packed Unsigned Word Integers">
    <InstructionForm gas-name="vpcomuw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomuw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="ED"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCOMW" summary="Compare Packed Signed Word Integers">
    <InstructionForm gas-name="vpcomw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpcomw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="CD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCONFLICTD" summary="Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register">
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictd" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPCONFLICTQ" summary="Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register">
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C4"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpconflictq" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERM2F128" summary="Permute Floating-Point Values">
    <InstructionForm gas-name="vperm2f128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vperm2f128" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERM2I128" summary="Permute 128-Bit Integer Values">
    <InstructionForm gas-name="vperm2i128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vperm2i128" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMB" summary="Permute Byte Integers">
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMD" summary="Permute Doubleword Integers">
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="36"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="36"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="36"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="36"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="36"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="36"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2B" summary="Full Permute of Bytes From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2b" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2D" summary="Full Permute of Doublewords From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2d" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2PD" summary="Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2PS" summary="Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="77"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="77"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2Q" summary="Full Permute of Quadwords From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="76"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2q" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="76"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMI2W" summary="Full Permute of Words From Two Tables Overwriting the Index">
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="75"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermi2w" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="75"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMIL2PD" summary="Permute Two-Source Double-Precision Floating-Point Vectors">
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2pd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="49"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMIL2PS" summary="Permute Two-Source Single-Precision Floating-Point Vectors">
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2" payload="#4"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermil2ps" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm4"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="48"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3" payload="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMILPD" summary="Permute Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="05"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMILPS" summary="Permute Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermilps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="04"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMPD" summary="Permute Double-Precision Floating-Point Elements">
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermpd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="01"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMPS" summary="Permute Single-Precision Floating-Point Elements">
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermps" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="16"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMQ" summary="Permute Quadword Integers">
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="00"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="00"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="36"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="36"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="36"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="36"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="00"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2B" summary="Full Permute of Bytes From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512VBMI"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2b" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2D" summary="Full Permute of Doublewords From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2d" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2PD" summary="Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2PS" summary="Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2Q" summary="Full Permute of Quadwords From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2q" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMT2W" summary="Full Permute of Words From Two Tables Overwriting a Table">
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="7D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermt2w" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="7D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPERMW" summary="Permute Word Integers">
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="8D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpermw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="8D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPEXPANDD" summary="Load Sparse Packed Doubleword Integer Values from Dense Memory/Register">
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPEXPANDQ" summary="Load Sparse Packed Quadword Integer Values from Dense Memory/Register">
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="89"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpexpandq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="89"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPEXTRB" summary="Extract Byte">
    <InstructionForm gas-name="vpextrb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m8" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m8" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="1"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPEXTRD" summary="Extract Doubleword">
    <InstructionForm gas-name="vpextrd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="16"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="16"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="m32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="16"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPEXTRW" summary="Extract Word">
    <InstructionForm gas-name="vpextrw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="C5"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m16" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpextrw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m16" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="2"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPGATHERDD" summary="Gather Packed Doubleword Values Using Signed Doubleword Indices">
    <InstructionForm gas-name="vpgatherdd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm32z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPGATHERDQ" summary="Gather Packed Quadword Values Using Signed Doubleword Indices">
    <InstructionForm gas-name="vpgatherdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm32y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm32x" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPGATHERQD" summary="Gather Packed Doubleword Values Using Signed Quadword Indices">
    <InstructionForm gas-name="vpgatherqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm64z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPGATHERQQ" summary="Gather Packed Quadword Values Using Signed Quadword Indices">
    <InstructionForm gas-name="vpgatherqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}" input="true" output="true"/>
      <Operand type="vm64z" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="vm64x" input="true" output="false"/>
      <Operand type="xmm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpgatherqq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="true" output="true"/>
      <Operand type="vm64y" input="true" output="false"/>
      <Operand type="ymm" input="true" output="true"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDBD" summary="Packed Horizontal Add Signed Byte to Signed Doubleword">
    <InstructionForm gas-name="vphaddbd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddbd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDBQ" summary="Packed Horizontal Add Signed Byte to Signed Quadword">
    <InstructionForm gas-name="vphaddbq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddbq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDBW" summary="Packed Horizontal Add Signed Byte to Signed Word">
    <InstructionForm gas-name="vphaddbw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddbw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDD" summary="Packed Horizontal Add Doubleword Integer">
    <InstructionForm gas-name="vphaddd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="02"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDDQ" summary="Packed Horizontal Add Signed Doubleword to Signed Quadword">
    <InstructionForm gas-name="vphadddq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="CB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphadddq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="CB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDSW" summary="Packed Horizontal Add Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="vphaddsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="03"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="03"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUBD" summary="Packed Horizontal Add Unsigned Byte to Doubleword">
    <InstructionForm gas-name="vphaddubd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddubd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUBQ" summary="Packed Horizontal Add Unsigned Byte to Quadword">
    <InstructionForm gas-name="vphaddubq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddubq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUBW" summary="Packed Horizontal Add Unsigned Byte to Word">
    <InstructionForm gas-name="vphaddubw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddubw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUDQ" summary="Packed Horizontal Add Unsigned Doubleword to Quadword">
    <InstructionForm gas-name="vphaddudq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DB"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddudq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="DB"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUWD" summary="Packed Horizontal Add Unsigned Word to Doubleword">
    <InstructionForm gas-name="vphadduwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphadduwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDUWQ" summary="Packed Horizontal Add Unsigned Word to Quadword">
    <InstructionForm gas-name="vphadduwq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphadduwq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDW" summary="Packed Horizontal Add Word Integers">
    <InstructionForm gas-name="vphaddw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="01"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="01"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="01"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDWD" summary="Packed Horizontal Add Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vphaddwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C6"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHADDWQ" summary="Packed Horizontal Add Signed Word to Signed Quadword">
    <InstructionForm gas-name="vphaddwq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphaddwq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C7"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHMINPOSUW" summary="Packed Horizontal Minimum of Unsigned Word Integers">
    <InstructionForm gas-name="vphminposuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="41"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphminposuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="41"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBBW" summary="Packed Horizontal Subtract Signed Byte to Signed Word">
    <InstructionForm gas-name="vphsubbw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubbw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBD" summary="Packed Horizontal Subtract Doubleword Integers">
    <InstructionForm gas-name="vphsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="06"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBDQ" summary="Packed Horizontal Subtract Signed Doubleword to Signed Quadword">
    <InstructionForm gas-name="vphsubdq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubdq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBSW" summary="Packed Horizontal Subtract Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="vphsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="07"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="07"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="07"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="07"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBW" summary="Packed Horizontal Subtract Word Integers">
    <InstructionForm gas-name="vphsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="05"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="05"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="05"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPHSUBWD" summary="Packed Horizontal Subtract Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vphsubwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vphsubwd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="E2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPINSRB" summary="Insert Byte">
    <InstructionForm gas-name="vpinsrb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="20"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m8" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="1"/>
        <Opcode byte="20"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPINSRD" summary="Insert Doubleword">
    <InstructionForm gas-name="vpinsrd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="22"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="22"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPINSRW" summary="Insert Word">
    <InstructionForm gas-name="vpinsrw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="r32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="C4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpinsrw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m16" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="2"/>
        <Opcode byte="C4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPLZCNTD" summary="Count the Number of Leading Zero Bits for Packed Doubleword Values">
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntd" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPLZCNTQ" summary="Count the Number of Leading Zero Bits for Packed Quadword Values">
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="44"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512CD"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vplzcntq" xmm-mode="AVX">
      <ISA id="AVX512CD"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="44"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSDD" summary="Packed Multiply Accumulate Signed Doubleword to Signed Doubleword">
    <InstructionForm gas-name="vpmacsdd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacsdd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSDQH" summary="Packed Multiply Accumulate Signed High Doubleword to Signed Quadword">
    <InstructionForm gas-name="vpmacsdqh" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacsdqh" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSDQL" summary="Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword">
    <InstructionForm gas-name="vpmacsdql" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacsdql" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSSDD" summary="Packed Multiply Accumulate with Saturation Signed Doubleword to Signed Doubleword">
    <InstructionForm gas-name="vpmacssdd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacssdd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSSDQH" summary="Packed Multiply Accumulate with Saturation Signed High Doubleword to Signed Quadword">
    <InstructionForm gas-name="vpmacssdqh" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacssdqh" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSSDQL" summary="Packed Multiply Accumulate with Saturation Signed Low Doubleword to Signed Quadword">
    <InstructionForm gas-name="vpmacssdql" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="87"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacssdql" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="87"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSSWD" summary="Packed Multiply Accumulate with Saturation Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vpmacsswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="86"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacsswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="86"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSSWW" summary="Packed Multiply Accumulate with Saturation Signed Word to Signed Word">
    <InstructionForm gas-name="vpmacssww" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="85"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacssww" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="85"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSWD" summary="Packed Multiply Accumulate Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vpmacswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMACSWW" summary="Packed Multiply Accumulate Signed Word to Signed Word">
    <InstructionForm gas-name="vpmacsww" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="95"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmacsww" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="95"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADCSSWD" summary="Packed Multiply Add Accumulate with Saturation Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vpmadcsswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadcsswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADCSWD" summary="Packed Multiply Add Accumulate Signed Word to Signed Doubleword">
    <InstructionForm gas-name="vpmadcswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadcswd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="B6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADD52HUQ" summary="Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators">
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52huq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADD52LUQ" summary="Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators">
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="B4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="B4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="B4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmadd52luq" xmm-mode="AVX">
      <ISA id="AVX512IFMA"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="B4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADDUBSW" summary="Multiply and Add Packed Signed and Unsigned Byte Integers">
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="04"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="04"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="04"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="04"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="04"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddubsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="04"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMADDWD" summary="Multiply and Add Packed Signed Word Integers">
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaddwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMASKMOVD" summary="Conditional Move Packed Doubleword Integers">
    <InstructionForm gas-name="vpmaskmovd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMASKMOVQ" summary="Conditional Move Packed Quadword Integers">
    <InstructionForm gas-name="vpmaskmovq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="m128" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaskmovq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="m256" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="8E"/>
        <ModRM mode="#0" reg="#2" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXSB" summary="Maximum of Packed Signed Byte Integers">
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXSD" summary="Maximum of Packed Signed Doubleword Integers">
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXSQ" summary="Maximum of Packed Signed Quadword Integers">
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXSW" summary="Maximum of Packed Signed Word Integers">
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXUB" summary="Maximum of Packed Unsigned Byte Integers">
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxub" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DE"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXUD" summary="Maximum of Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxud" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXUQ" summary="Maximum of Packed Unsigned Quadword Integers">
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMAXUW" summary="Maximum of Packed Unsigned Word Integers">
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3E"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmaxuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3E"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINSB" summary="Minimum of Packed Signed Byte Integers">
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="38"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINSD" summary="Minimum of Packed Signed Doubleword Integers">
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINSQ" summary="Minimum of Packed Signed Quadword Integers">
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="39"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINSW" summary="Minimum of Packed Signed Word Integers">
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINUB" summary="Minimum of Packed Unsigned Byte Integers">
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="DA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="DA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="DA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminub" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="DA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINUD" summary="Minimum of Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminud" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINUQ" summary="Minimum of Packed Unsigned Quadword Integers">
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMINUW" summary="Minimum of Packed Unsigned Word Integers">
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpminuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="3A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVB2M" summary="Move Signs of Packed Byte Integers to Mask Register">
    <InstructionForm gas-name="vpmovb2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovb2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovb2m" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVD2M" summary="Move Signs of Packed Doubleword Integers to Mask Register">
    <InstructionForm gas-name="vpmovd2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovd2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovd2m" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVDB" summary="Down Convert Packed Doubleword Values to Byte Values with Truncation">
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="31"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="31"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="31"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVDW" summary="Down Convert Packed Doubleword Values to Word Values with Truncation">
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="33"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="33"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="33"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVM2B" summary="Expand Bits of Mask Register to Packed Byte Integers">
    <InstructionForm gas-name="vpmovm2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2b" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2b" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVM2D" summary="Expand Bits of Mask Register to Packed Doubleword Integers">
    <InstructionForm gas-name="vpmovm2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2d" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2d" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVM2Q" summary="Expand Bits of Mask Register to Packed Quadword Integers">
    <InstructionForm gas-name="vpmovm2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2q" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2q" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="38"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVM2W" summary="Expand Bits of Mask Register to Packed Word Integers">
    <InstructionForm gas-name="vpmovm2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2w" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovm2w" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="k" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVMSKB" summary="Move Byte Mask">
    <InstructionForm gas-name="vpmovmskb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovmskb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="r32" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="D7"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVQ2M" summary="Move Signs of Packed Quadword Integers to Mask Register">
    <InstructionForm gas-name="vpmovq2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovq2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovq2m" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="39"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVQB" summary="Down Convert Packed Quadword Values to Byte Values with Truncation">
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m16{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="32"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="32"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="32"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVQD" summary="Down Convert Packed Quadword Values to Doubleword Values with Truncation">
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="35"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="35"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="35"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVQW" summary="Down Convert Packed Quadword Values to Word Values with Truncation">
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="34"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="34"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="34"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSDB" summary="Down Convert Packed Doubleword Values to Byte Values with Signed Saturation">
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="21"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="21"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="21"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSDW" summary="Down Convert Packed Doubleword Values to Word Values with Signed Saturation">
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="23"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="23"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="23"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSQB" summary="Down Convert Packed Quadword Values to Byte Values with Signed Saturation">
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m16{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="22"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="22"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="22"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSQD" summary="Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation">
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="25"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="25"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="25"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSQW" summary="Down Convert Packed Quadword Values to Word Values with Signed Saturation">
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="24"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="24"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="24"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSWB" summary="Down Convert Packed Word Values to Byte Values with Signed Saturation">
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="20"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="20"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="20"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXBD" summary="Move Packed Byte Integers to Doubleword Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="21"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="21"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXBQ" summary="Move Packed Byte Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="22"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="22"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXBW" summary="Move Packed Byte Integers to Word Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="20"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="20"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXDQ" summary="Move Packed Doubleword Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="25"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXWD" summary="Move Packed Word Integers to Doubleword Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="23"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVSXWQ" summary="Move Packed Word Integers to Quadword Integers with Sign Extension">
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="24"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovsxwq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="24"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSDB" summary="Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="11"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSDW" summary="Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="13"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusdw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="13"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSQB" summary="Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m16{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="12"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="12"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="12"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSQD" summary="Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="15"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSQW" summary="Down Convert Packed Quadword Values to Word Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m32{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovusqw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="14"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVUSWB" summary="Down Convert Packed Word Values to Byte Values with Unsigned Saturation">
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="10"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="10"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovuswb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="10"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVW2M" summary="Move Signs of Packed Word Integers to Mask Register">
    <InstructionForm gas-name="vpmovw2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovw2m" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovw2m" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="29"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVWB" summary="Down Convert Packed Word Values to Byte Values with Truncation">
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m64{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="30"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="m128{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="30"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovwb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="m256{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="30"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXBD" summary="Move Packed Byte Integers to Doubleword Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="31"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXBQ" summary="Move Packed Byte Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="2"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXBW" summary="Move Packed Byte Integers to Word Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="30"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXDQ" summary="Move Packed Doubleword Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="35"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="35"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXWD" summary="Move Packed Word Integers to Doubleword Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMOVZXWQ" summary="Move Packed Word Integers to Quadword Integers with Zero Extension">
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="34"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmovzxwq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="34"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULDQ" summary="Multiply Packed Signed Doubleword Integers and Store Quadword Result">
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="28"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="28"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="28"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="28"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="28"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="28"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULHRSW" summary="Packed Multiply Signed Word Integers and Store High Result with Round and Scale">
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhrsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULHUW" summary="Multiply Packed Unsigned Word Integers and Store High Result">
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhuw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULHW" summary="Multiply Packed Signed Word Integers and Store High Result">
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulhw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULLD" summary="Multiply Packed Signed Doubleword Integers and Store Low Result">
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmulld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULLQ" summary="Multiply Packed Signed Quadword Integers and Store Low Result">
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="40"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullq" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="40"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULLW" summary="Multiply Packed Signed Word Integers and Store Low Result">
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="D5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="D5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D5"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmullw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D5"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULTISHIFTQB" summary="Select Packed Unaligned Bytes from Quadword Sources">
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="83"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <ISA id="AVX512VL"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="83"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <ISA id="AVX512VL"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="83"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmultishiftqb" xmm-mode="AVX">
      <ISA id="AVX512VBMI"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPMULUDQ" summary="Multiply Packed Unsigned Doubleword Integers">
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="F4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="F4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F4"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpmuludq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F4"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPOR" summary="Packed Bitwise Logical OR">
    <InstructionForm gas-name="vpor" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpor" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpor" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpor" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPORD" summary="Bitwise Logical OR of Packed Doubleword Integers">
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPORQ" summary="Bitwise Logical OR of Packed Quadword Integers">
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vporq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPPERM" summary="Packed Permute Bytes">
    <InstructionForm gas-name="vpperm" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A3"/>
        <ModRM mode="11" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpperm" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A3"/>
        <ModRM mode="#3" reg="#0" rm="#3"/>
        <RegisterByte register="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpperm" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="A3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <RegisterByte register="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROLD" summary="Rotate Packed Doubleword Left">
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprold" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROLQ" summary="Rotate Packed Quadword Left">
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="1" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROLVD" summary="Variable Rotate Packed Doubleword Left">
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROLVQ" summary="Variable Rotate Packed Quadword Left">
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprolvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPRORD" summary="Rotate Packed Doubleword Right">
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPRORQ" summary="Rotate Packed Quadword Right">
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPRORVD" summary="Variable Rotate Packed Doubleword Right">
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPRORVQ" summary="Variable Rotate Packed Quadword Right">
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprorvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROTB" summary="Packed Rotate Bytes">
    <InstructionForm gas-name="vprotb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="90"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="90"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C0"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="90"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROTD" summary="Packed Rotate Doublewords">
    <InstructionForm gas-name="vprotd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C2"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="92"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="92"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C2"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotd" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="92"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROTQ" summary="Packed Rotate Quadwords">
    <InstructionForm gas-name="vprotq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C3"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="93"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="93"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C3"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="93"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPROTW" summary="Packed Rotate Words">
    <InstructionForm gas-name="vprotw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="91"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="91"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01000" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="C1"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vprotw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="91"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSADBW" summary="Compute Sum of Absolute Differences">
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="F6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsadbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="F6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSCATTERDD" summary="Scatter Packed Doubleword Values with Signed Doubleword Indices">
    <InstructionForm gas-name="vpscatterdd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterdd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32y{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterdd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm32z{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSCATTERDQ" summary="Scatter Packed Quadword Values with Signed Doubleword Indices">
    <InstructionForm gas-name="vpscatterdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm32y{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSCATTERQD" summary="Scatter Packed Doubleword Values with Signed Quadword Indices">
    <InstructionForm gas-name="vpscatterqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterqd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64y{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterqd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm64z{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSCATTERQQ" summary="Scatter Packed Quadword Values with Signed Quadword Indices">
    <InstructionForm gas-name="vpscatterqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterqq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64y{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpscatterqq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm64z{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHAB" summary="Packed Shift Arithmetic Bytes">
    <InstructionForm gas-name="vpshab" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshab" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="98"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshab" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="98"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHAD" summary="Packed Shift Arithmetic Doublewords">
    <InstructionForm gas-name="vpshad" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshad" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshad" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="9A"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHAQ" summary="Packed Shift Arithmetic Quadwords">
    <InstructionForm gas-name="vpshaq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshaq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="9B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshaq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="9B"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHAW" summary="Packed Shift Arithmetic Words">
    <InstructionForm gas-name="vpshaw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshaw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="99"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshaw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="99"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHLB" summary="Packed Shift Logical Bytes">
    <InstructionForm gas-name="vpshlb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="94"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="94"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="94"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlb" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="94"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHLD" summary="Packed Shift Logical Doublewords">
    <InstructionForm gas-name="vpshld" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshld" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="96"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshld" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="96"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHLQ" summary="Packed Shift Logical Quadwords">
    <InstructionForm gas-name="vpshlq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="97"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlq" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="97"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHLW" summary="Packed Shift Logical Words">
    <InstructionForm gas-name="vpshlw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="95"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="95"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="1" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="95"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshlw" xmm-mode="AVX">
      <ISA id="XOP"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="XOP" W="0" L="0" m-mmmm="01001" pp="00" R="0" X="0" B="0" vvvv="#2"/>
        <Opcode byte="95"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHUFB" summary="Packed Shuffle Bytes">
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="00"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="00"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="00"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="00"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="00"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="00"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHUFD" summary="Shuffle Packed Doublewords">
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHUFHW" summary="Shuffle Packed High Words">
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshufhw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSHUFLW" summary="Shuffle Packed Low Words">
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="01" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="10" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpshuflw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="70"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSIGNB" summary="Packed Sign of Byte Integers">
    <InstructionForm gas-name="vpsignb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="08"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="08"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSIGND" summary="Packed Sign of Doubleword Integers">
    <InstructionForm gas-name="vpsignd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSIGNW" summary="Packed Sign of Word Integers">
    <InstructionForm gas-name="vpsignw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="09"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsignw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="09"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLD" summary="Shift Packed Doubleword Data Left Logical">
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLDQ" summary="Shift Packed Double Quadword Left Logical">
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpslldq" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="7" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLQ" summary="Shift Packed Quadword Data Left Logical">
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLVD" summary="Variable Shift Packed Doubleword Data Left Logical">
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLVQ" summary="Variable Shift Packed Quadword Data Left Logical">
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="47"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLVW" summary="Variable Shift Packed Word Data Left Logical">
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="12"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllvw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="12"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSLLW" summary="Shift Packed Word Data Left Logical">
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="6" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsllw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAD" summary="Shift Packed Doubleword Data Right Arithmetic">
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrad" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAQ" summary="Shift Packed Quadword Data Right Arithmetic">
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAVD" summary="Variable Shift Packed Doubleword Data Right Arithmetic">
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAVQ" summary="Variable Shift Packed Quadword Data Right Arithmetic">
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="46"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="46"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAVW" summary="Variable Shift Packed Word Data Right Arithmetic">
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="11"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="11"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="11"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsravw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="11"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRAW" summary="Shift Packed Word Data Right Arithmetic">
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="4" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsraw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLD" summary="Shift Packed Doubleword Data Right Logical">
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="72"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="72"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D2"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrld" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D2"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLDQ" summary="Shift Packed Double Quadword Right Logical">
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="16"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="32"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrldq" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="64"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="3" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLQ" summary="Shift Packed Quadword Data Right Logical">
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="73"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="73"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D3"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D3"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLVD" summary="Variable Shift Packed Doubleword Data Right Logical">
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLVQ" summary="Variable Shift Packed Quadword Data Right Logical">
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="1" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="45"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLVW" summary="Variable Shift Packed Word Data Right Logical">
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="10"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="10"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="10"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlvw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="10"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSRLW" summary="Shift Packed Word Data Right Logical">
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#0" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="71"/>
        <ModRM mode="#1" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#0"/>
        <Opcode byte="71"/>
        <ModRM mode="11" reg="2" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D1"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsrlw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D1"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBB" summary="Subtract Packed Byte Integers">
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="F8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="F8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBD" summary="Subtract Packed Doubleword Integers">
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="FA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="FA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="FA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FA"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FA"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBQ" summary="Subtract Packed Quadword Integers">
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="FB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="FB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="FB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="FB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBSB" summary="Subtract Packed Signed Byte Integers with Signed Saturation">
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBSW" summary="Subtract Packed Signed Word Integers with Signed Saturation">
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="E9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="E9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="E9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubsw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="E9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBUSB" summary="Subtract Packed Unsigned Byte Integers with Unsigned Saturation">
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="D8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="D8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D8"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusb" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D8"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBUSW" summary="Subtract Packed Unsigned Word Integers with Unsigned Saturation">
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="D9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="D9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="D9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubusw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="D9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPSUBW" summary="Subtract Packed Word Integers">
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="F9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="F9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="F9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F9"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpsubw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="F9"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTERNLOGD" summary="Bitwise Ternary Logical Operation on Doubleword Values">
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTERNLOGQ" summary="Bitwise Ternary Logical Operation on Quadword Values">
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="true" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="25"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpternlogq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="true" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="25"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTEST" summary="Packed Logical Compare">
    <InstructionForm gas-name="vptest" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptest" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptest" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptest" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="17"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTMB" summary="Logical AND of Packed Byte Integer Values and Set Mask">
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmb" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTMD" summary="Logical AND of Packed Doubleword Integer Values and Set Mask">
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTMQ" summary="Logical AND of Packed Quadword Integer Values and Set Mask">
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTMW" summary="Logical AND of Packed Word Integer Values and Set Mask">
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestmw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTNMB" summary="Logical NAND of Packed Byte Integer Values and Set Mask">
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmb" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTNMD" summary="Logical NAND of Packed Doubleword Integer Values and Set Mask">
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTNMQ" summary="Logical NAND of Packed Quadword Integer Values and Set Mask">
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="27"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="27"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPTESTNMW" summary="Logical NAND of Packed Word Integer Values and Set Mask">
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="16"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="32"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0"/>
        <Opcode byte="26"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vptestnmw" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <ISA id="AVX512BW"/>
      <Operand type="k{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="10" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="64"/>
        <Opcode byte="26"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKHBW" summary="Unpack and Interleave High-Order Bytes into Words">
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="68"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKHDQ" summary="Unpack and Interleave High-Order Doublewords into Quadwords">
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKHQDQ" summary="Unpack and Interleave High-Order Quadwords into Double Quadwords">
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhqdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKHWD" summary="Unpack and Interleave High-Order Words into Doublewords">
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckhwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="69"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKLBW" summary="Unpack and Interleave Low-Order Bytes into Words">
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="60"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="60"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="60"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="60"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="60"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklbw" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="60"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKLDQ" summary="Unpack and Interleave Low-Order Doublewords into Quadwords">
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="62"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="62"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="62"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="62"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="62"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpckldq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="62"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKLQDQ" summary="Unpack and Interleave Low-Order Quadwords into Double Quadwords">
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklqdq" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="6C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPUNPCKLWD" summary="Unpack and Interleave Low-Order Words into Doublewords">
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="61"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512BW"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="61"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX512BW"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="61"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="61"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="61"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpunpcklwd" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="61"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPXOR" summary="Packed Bitwise Logical Exclusive OR">
    <InstructionForm gas-name="vpxor" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxor" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxor" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxor" xmm-mode="AVX">
      <ISA id="AVX2"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPXORD" summary="Bitwise Logical Exclusive OR of Packed Doubleword Integers">
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxord" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VPXORQ" summary="Bitwise Logical Exclusive OR of Packed Quadword Integers">
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="EF"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vpxorq" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="EF"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRANGEPD" summary="Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangepd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRANGEPS" summary="Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="50"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangeps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="50"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRANGESD" summary="Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vrangesd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangesd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRANGESS" summary="Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrangess" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrangess" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP14PD" summary="Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP14PS" summary="Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="4C"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4C"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP14SD" summary="Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vrcp14sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="4D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP14SS" summary="Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vrcp14ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp14ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="4D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP28PD" summary="Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrcp28pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="CA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp28pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="CA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP28PS" summary="Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrcp28ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="CA"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp28ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="CA"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP28SD" summary="Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrcp28sd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="CB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp28sd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="CB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCP28SS" summary="Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrcp28ss" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="CB"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcp28ss" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="CB"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCPPS" summary="Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrcpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="53"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="53"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="53"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcpps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="53"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRCPSS" summary="Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrcpss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="53"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrcpss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="53"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VREDUCEPD" summary="Perform Reduction Transformation on Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducepd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VREDUCEPS" summary="Perform Reduction Transformation on Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="56"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreduceps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="56"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VREDUCESD" summary="Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vreducesd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducesd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VREDUCESS" summary="Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vreducess" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vreducess" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRNDSCALEPD" summary="Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits">
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalepd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRNDSCALEPS" summary="Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits">
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaleps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRNDSCALESD" summary="Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits">
    <InstructionForm gas-name="vrndscalesd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscalesd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRNDSCALESS" summary="Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits">
    <InstructionForm gas-name="vrndscaless" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="0A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrndscaless" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#4"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VROUNDPD" summary="Round Packed Double Precision Floating-Point Values">
    <InstructionForm gas-name="vroundpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="09"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="09"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VROUNDPS" summary="Round Packed Single Precision Floating-Point Values">
    <InstructionForm gas-name="vroundps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="08"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="08"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
        <Immediate size="1" value="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VROUNDSD" summary="Round Scalar Double Precision Floating-Point Values">
    <InstructionForm gas-name="vroundsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0B"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VROUNDSS" summary="Round Scalar Single Precision Floating-Point Values">
    <InstructionForm gas-name="vroundss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vroundss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00011" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="0A"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT14PD" summary="Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14pd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT14PS" summary="Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="4E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT14SD" summary="Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vrsqrt14sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14sd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="4F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT14SS" summary="Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vrsqrt14ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="4F"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt14ss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="4F"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT28PD" summary="Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrsqrt28pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="CC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt28pd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="CC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT28PS" summary="Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrsqrt28ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="CC"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt28ps" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="CC"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT28SD" summary="Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrsqrt28sd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="CD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt28sd" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="CD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRT28SS" summary="Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error">
    <InstructionForm gas-name="vrsqrt28ss" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="CD"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrt28ss" xmm-mode="AVX">
      <ISA id="AVX512ER"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="10" pp="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="CD"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRTPS" summary="Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vrsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="52"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="52"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="52"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="52"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VRSQRTSS" summary="Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vrsqrtss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="52"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vrsqrtss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="52"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCALEFPD" summary="Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCALEFPS" summary="Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="2C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="2C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCALEFSD" summary="Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vscalefsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="2D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCALEFSS" summary="Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vscalefss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="2D"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscalefss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="2D"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERDPD" summary="Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices">
    <InstructionForm gas-name="vscatterdpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterdpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterdpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm32y{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERDPS" summary="Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices">
    <InstructionForm gas-name="vscatterdps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterdps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm32y{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterdps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm32z{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A2"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF0DPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf0dpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32y{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF0DPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf0dps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF0QPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf0qpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF0QPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf0qps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="5" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF1DPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf1dpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32y{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF1DPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf1dps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm32z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C6"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF1QPD" summary="Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf1qpd" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERPF1QPS" summary="Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write">
    <InstructionForm gas-name="vscatterpf1qps" xmm-mode="AVX">
      <ISA id="AVX512PF"/>
      <Operand type="vm64z{k}" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="C7"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERQPD" summary="Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices">
    <InstructionForm gas-name="vscatterqpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterqpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64y{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterqpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm64z{k}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="8"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSCATTERQPS" summary="Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices">
    <InstructionForm gas-name="vscatterqps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64x{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterqps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="vm64y{k}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vscatterqps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="vm64z{k}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="10" pp="01" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="0" disp8xN="4"/>
        <Opcode byte="A3"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFF32X4" summary="Shuffle 128-Bit Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vshuff32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="23"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="23"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFF64X2" summary="Shuffle 128-Bit Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vshuff64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="23"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff64x2" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="23"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshuff64x2" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="23"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFI32X4" summary="Shuffle 128-Bit Packed Doubleword Integer Values">
    <InstructionForm gas-name="vshufi32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi32x4" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi32x4" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFI64X2" summary="Shuffle 128-Bit Packed Quadword Integer Values">
    <InstructionForm gas-name="vshufi64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi64x2" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi64x2" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="43"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufi64x2" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="11" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="43"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFPD" summary="Shuffle Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSHUFPS" summary="Shuffle Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vshufps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Operand type="imm8"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="C6"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
        <Immediate size="1" value="#3"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSQRTPD" summary="Compute Square Roots of Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#2" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSQRTPS" summary="Compute Square Roots of Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#1" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="51"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#2" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSQRTSD" summary="Compute Square Root of Scalar Double-Precision Floating-Point Value">
    <InstructionForm gas-name="vsqrtsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSQRTSS" summary="Compute Square Root of Scalar Single-Precision Floating-Point Value">
    <InstructionForm gas-name="vsqrtss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="51"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsqrtss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="51"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSTMXCSR" summary="Store MXCSR Register State">
    <InstructionForm gas-name="vstmxcsr" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="m32" input="false" output="true"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="AE"/>
        <ModRM mode="#0" reg="3" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSUBPD" summary="Subtract Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSUBPS" summary="Subtract Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSUBSD" summary="Subtract Scalar Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vsubsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="8"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubsd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="11" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubsd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="11" LL="#3" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VSUBSS" summary="Subtract Scalar Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vsubss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0" disp8xN="4"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="10" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="5C"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vsubss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{er}"/>
      <Encoding>
        <EVEX mm="01" pp="10" LL="#3" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#3" aaa="#0" z="#0"/>
        <Opcode byte="5C"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VTESTPD" summary="Packed Double-Precision Floating-Point Bit Test">
    <InstructionForm gas-name="vtestpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0F"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0F"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VTESTPS" summary="Packed Single-Precision Floating-Point Bit Test">
    <InstructionForm gas-name="vtestps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="0" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vtestps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" W="0" L="1" m-mmmm="00010" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="0E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUCOMISD" summary="Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="vucomisd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomisd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomisd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m64" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="8"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomisd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="01" W="1" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUCOMISS" summary="Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS">
    <InstructionForm gas-name="vucomiss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomiss" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomiss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="0" aaa="000" z="0" disp8xN="4"/>
        <Opcode byte="2E"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vucomiss" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="{sae}"/>
      <Encoding>
        <EVEX mm="01" pp="00" W="0" vvvv="0000" V="0" RR="00" B="0" X="0" b="#2" aaa="000" z="0"/>
        <Opcode byte="2E"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUNPCKHPD" summary="Unpack and Interleave High Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUNPCKHPS" summary="Unpack and Interleave High Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpckhps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="15"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUNPCKLPD" summary="Unpack and Interleave Low Packed Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VUNPCKLPS" summary="Unpack and Interleave Low Packed Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512F"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX512F"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vunpcklps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="14"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VXORPD" summary="Bitwise Logical XOR for Double-Precision Floating-Point Values">
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="00" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="01" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m64bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="01" LL="10" W="1" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorpd" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="01" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VXORPS" summary="Bitwise Logical XOR for Single-Precision Floating-Point Values">
    <InstructionForm gas-name="vxorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="16"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="xmm{k}{z}" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="00" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="32"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512VL"/>
      <ISA id="AVX512DQ"/>
      <Operand type="ymm{k}{z}" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="01" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="m512/m32bcst" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="#2" aaa="#0" z="#0" disp8xN="64"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX512DQ"/>
      <Operand type="zmm{k}{z}" input="false" output="true"/>
      <Operand type="zmm" input="true" output="false"/>
      <Operand type="zmm" input="true" output="false"/>
      <Encoding>
        <EVEX mm="01" pp="00" LL="10" W="0" vvvv="#1" V="0" RR="00" B="0" X="0" b="0" aaa="#0" z="#0"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="xmm" input="false" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX" cancelling-inputs="true">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="ymm" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="vxorps" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Operand type="ymm" input="false" output="true"/>
      <Operand type="ymm" input="true" output="false"/>
      <Operand type="m256" input="true" output="false"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="#1"/>
        <Opcode byte="57"/>
        <ModRM mode="#2" reg="#0" rm="#2"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VZEROALL" summary="Zero All YMM Registers">
    <InstructionForm gas-name="vzeroall" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Encoding>
        <VEX type="VEX" L="1" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="77"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="VZEROUPPER" summary="Zero Upper Bits of YMM Registers">
    <InstructionForm gas-name="vzeroupper" xmm-mode="AVX">
      <ISA id="AVX"/>
      <Encoding>
        <VEX type="VEX" L="0" m-mmmm="00001" pp="00" R="0" X="0" B="0" vvvv="0000"/>
        <Opcode byte="77"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XADD" summary="Exchange and Add">
    <InstructionForm gas-name="xaddb" go-name="XADDB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C0"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xaddw" go-name="XADDW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xaddl" go-name="XADDL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C1"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xaddb" go-name="XADDB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C0"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xaddw" go-name="XADDW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="0F"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xaddl" go-name="XADDL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="C1"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XCHG" summary="Exchange Register/Memory with Register">
    <InstructionForm gas-name="xchgb" go-name="XCHGB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="86"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="86"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgb" go-name="XCHGB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="86"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgw" go-name="XCHGW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="90" addend="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgw" go-name="XCHGW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="ax" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="90" addend="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgw" go-name="XCHGW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="87"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="87"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgw" go-name="XCHGW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="87"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgl" go-name="XCHGL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="90" addend="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgl" go-name="XCHGL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="eax" input="true" output="true"/>
      <Encoding>
        <Opcode byte="90" addend="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgl" go-name="XCHGL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="87"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="87"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgl" go-name="XCHGL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="87"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgb" go-name="XCHGB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="true"/>
      <Encoding>
        <Opcode byte="86"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgw" go-name="XCHGW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="true"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="87"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xchgl" go-name="XCHGL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="true"/>
      <Encoding>
        <Opcode byte="87"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XGETBV" summary="Get Value of Extended Control Register">
    <InstructionForm gas-name="xgetbv">
      <ImplicitOperand id="eax" input="false" output="true"/>
      <ImplicitOperand id="ecx" input="true" output="false"/>
      <ImplicitOperand id="edx" input="false" output="true"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="01"/>
        <Opcode byte="D0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XLATB" summary="Table Look-up Translation">
    <InstructionForm gas-name="xlatb">
      <ImplicitOperand id="al" input="true" output="true"/>
      <ImplicitOperand id="ebx" input="true" output="false"/>
      <Encoding>
        <Opcode byte="D7"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XOR" summary="Logical Exclusive OR">
    <InstructionForm gas-name="xorb" go-name="XORB">
      <Operand type="al" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="34"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorb" go-name="XORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorb" go-name="XORB" cancelling-inputs="true">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="30"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="32"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorb" go-name="XORB">
      <Operand type="r8" input="true" output="true"/>
      <Operand type="m8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="32"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="ax" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="35"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW" cancelling-inputs="true">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="r16" input="true" output="true"/>
      <Operand type="m16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="eax" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="35"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="11" reg="6" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL" cancelling-inputs="true">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="31"/>
        <ModRM mode="11" reg="#1" rm="#0"/>
      </Encoding>
      <Encoding>
        <Opcode byte="33"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="r32" input="true" output="true"/>
      <Operand type="m32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="33"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorb" go-name="XORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="imm8"/>
      <Encoding>
        <Opcode byte="80"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorb" go-name="XORB">
      <Operand type="m8" input="true" output="true"/>
      <Operand type="r8" input="true" output="false"/>
      <Encoding>
        <Opcode byte="30"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm8" extended-size="2"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="imm16"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="2" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorw" go-name="XORW">
      <Operand type="m16" input="true" output="true"/>
      <Operand type="r16" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="false"/>
        <Opcode byte="31"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm8" extended-size="4"/>
      <Encoding>
        <Opcode byte="83"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="1" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="imm32"/>
      <Encoding>
        <Opcode byte="81"/>
        <ModRM mode="#0" reg="6" rm="#0"/>
        <Immediate size="4" value="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorl" go-name="XORL">
      <Operand type="m32" input="true" output="true"/>
      <Operand type="r32" input="true" output="false"/>
      <Encoding>
        <Opcode byte="31"/>
        <ModRM mode="#0" reg="#1" rm="#0"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XORPD" summary="Bitwise Logical XOR for Double-Precision Floating-Point Values">
    <InstructionForm gas-name="xorpd" go-name="XORPD" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorpd" go-name="XORPD" xmm-mode="SSE">
      <ISA id="SSE2"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Prefix byte="66" mandatory="true"/>
        <Opcode byte="0F"/>
        <Opcode byte="57"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
  <Instruction name="XORPS" summary="Bitwise Logical XOR for Single-Precision Floating-Point Values">
    <InstructionForm gas-name="xorps" go-name="XORPS" xmm-mode="SSE" cancelling-inputs="true">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="xmm" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="57"/>
        <ModRM mode="11" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
    <InstructionForm gas-name="xorps" go-name="XORPS" xmm-mode="SSE">
      <ISA id="SSE"/>
      <Operand type="xmm" input="true" output="true"/>
      <Operand type="m128" input="true" output="false"/>
      <Encoding>
        <Opcode byte="0F"/>
        <Opcode byte="57"/>
        <ModRM mode="#1" reg="#0" rm="#1"/>
      </Encoding>
    </InstructionForm>
  </Instruction>
</InstructionSet>
