Skip to content

Instantly share code, notes, and snippets.

@vsivsi
Last active March 20, 2021 05:11
Show Gist options
  • Save vsivsi/06b742a04d2c7e226fae4fd3ab0753dd to your computer and use it in GitHub Desktop.
Save vsivsi/06b742a04d2c7e226fae4fd3ab0753dd to your computer and use it in GitHub Desktop.
<Instruction name="VPOPCNTD" summary="Packed Population Count for Doubleword Integers">
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="16"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="0" vvvv="0000" V="0" RR="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="32"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="64"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntd" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
</Instruction>
<Instruction name="VPOPCNTQ" summary="Packed Population Count for Quadword Integers">
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="16"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="32"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<ISA id="AVX512VL"/>
<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="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="#0" B="#1" X="#1" b="#1" aaa="#0" z="#0" disp8xN="64"/>
<Opcode byte="55"/>
<ModRM mode="#1" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
<InstructionForm gas-name="vpopcntq" xmm-mode="AVX">
<ISA id="AVX512VPOPCNTDQ"/>
<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="#0" B="#1" X="#1" b="0" aaa="#0" z="#0"/>
<Opcode byte="55"/>
<ModRM mode="11" reg="#0" rm="#1"/>
</Encoding>
</InstructionForm>
</Instruction>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment