PBXB64 unterstützt AVX- (VEX-kodiert), AVX2-, AVX-512- (EVEX-kodiert) und FMA-Anweisungen. AVX-Anweisungen verwenden eine 3-Operanden-Syntax mit einem nicht destruktiven Ziel.
PBXB64 unterstützt AVX- (VEX-kodiert), AVX2-, AVX-512- (EVEX-kodiert) und FMA-Anweisungen. AVX-Anweisungen verwenden eine 3-Operanden-Syntax mit einem nicht destruktiven Ziel.
VADDPSUndVADDPSZ).| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VADDPS | Gepackte Single hinzufügen (128/256) | ymm/xmm, ymm/xmm, ymm/mem |
VADDPD | Doppelpack hinzufügen (128/256) | ymm/xmm, ymm/xmm, ymm/mem |
VADDSS | Skalare Single hinzufügen | xmm, xmm, xmm/Speicher |
VADDSD | Skalardoppel hinzufügen | xmm, xmm, xmm/Speicher |
VSUBPS | Gepackte Single subtrahieren | ymm/xmm, ymm/xmm, ymm/mem |
VSUBPD | Subtrahieren Sie das gepackte Doppel | ymm/xmm, ymm/xmm, ymm/mem |
VSUBSS | Subtrahieren Sie den Skalar einzeln | xmm, xmm, xmm/Speicher |
VSUBSD | Subtrahiere das Skalardoppel | xmm, xmm, xmm/Speicher |
VMULPS | Mehrfach gepackte Single | ymm/xmm, ymm/xmm, ymm/mem |
VMULPD | Mehrfach gepacktes Doppeltes | ymm/xmm, ymm/xmm, ymm/mem |
VMULSS | Skalar-Single multiplizieren | xmm, xmm, xmm/Speicher |
VMULSD | Skalar mit dem Doppelten multiplizieren | xmm, xmm, xmm/Speicher |
VDIVPS | Teilweise einzeln verpackt | ymm/xmm, ymm/xmm, ymm/mem |
VDIVPD | Doppelt verpackt teilen | ymm/xmm, ymm/xmm, ymm/mem |
VDIVSS | Teilen Sie den Skalar einfach | xmm, xmm, xmm/Speicher |
VDIVSD | Teilen Sie den Skalar durch das Doppelte | xmm, xmm, xmm/Speicher |
VSQRTPS | Quadratwurzelgepackte Single | ymm/xmm, ymm/xmm, ymm/mem |
VSQRTPD | Quadratwurzel doppelt gepackt | ymm/xmm, ymm/xmm, ymm/mem |
VSQRTSS | Quadratwurzel-Skalar-Single | xmm, xmm, xmm/Speicher |
VSQRTSD | Quadratwurzel-Skalar-Double | xmm, xmm, xmm/Speicher |
VRCPPS | Gegenseitig verpackte Single (ungefähr) | ymm/xmm, ymm/xmm, ymm/mem |
VRCPSS | Reziproker Skalar Single (ungefähr) | xmm, xmm, xmm/Speicher |
VRSQRTPS | Reziproke quadratisch gepackte Single (ungefähr) | ymm/xmm, ymm/xmm, ymm/mem |
VRSQRTSS | Reziproker quadratischer Skalar einzeln (ungefähr) | xmm, xmm, xmm/Speicher |
VMAXPS | Maximal gepacktes Einzelstück | ymm/xmm, ymm/xmm, ymm/mem |
VMAXPD | Maximal doppelt bepackt | ymm/xmm, ymm/xmm, ymm/mem |
VMAXSS | Maximaler Skalar-Single | xmm, xmm, xmm/Speicher |
VMAXSD | Maximales Skalar-Double | xmm, xmm, xmm/Speicher |
VMINPS | Mindestens einzeln verpackt | ymm/xmm, ymm/xmm, ymm/mem |
VMINPD | Mindestens doppelt verpackt | ymm/xmm, ymm/xmm, ymm/mem |
VMINSS | Minimaler Skalar-Single | xmm, xmm, xmm/Speicher |
VMINSD | Minimales Skalardoppel | xmm, xmm, xmm/Speicher |
VROUNDPS | Rund verpackte Single | ymm/xmm, ymm/mem, imm8 |
VROUNDPD | Rund verpackt, doppelt | ymm/xmm, ymm/mem, imm8 |
VROUNDSS | Runde Skalar-Single | xmm, xmm/mem, imm8 |
VROUNDSD | Rundes Skalardoppel | xmm, xmm/mem, imm8 |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VMOVAPS | Verschieben Sie ausgerichtete verpackte Einzelstücke | ymm/xmm, mem / mem, ymm/xmm |
VMOVUPS | Move unaligned packed single | ymm/xmm, mem / mem, ymm/xmm |
VMOVAPD | Move aligned packed double | ymm/xmm, mem / mem, ymm/xmm |
VMOVUPD | Move unaligned packed double | ymm/xmm, mem / mem, ymm/xmm |
VMOVSS | Move scalar single | xmm, xmm/mem / mem32, xmm |
VMOVSD | Move scalar double | xmm, xmm/mem / mem64, xmm |
VMOVD | Move doubleword to/from XMM | xmm, reg/mem / reg, xmm |
VMOVQ | Move quadword to/from XMM | xmm, reg/mem / reg, xmm |
VMOVDQA | Move aligned double quadword | ymm/xmm, mem / mem, ymm/xmm |
VMOVDQU | Move unaligned double quadword | ymm/xmm, mem / mem, ymm/xmm |
VMOVLPS | Move low packed single (64-bit) | xmm, xmm, mem64 / mem64, xmm |
VMOVHPS | Move high packed single | xmm, xmm, mem64 / mem64, xmm |
VMOVLPD | Move low packed double | xmm, xmm, mem64 / mem64, xmm |
VMOVHPD | Move high packed double | xmm, xmm, mem64 / mem64, xmm |
VMOVSHDUP | Move and duplicate high singles | ymm/xmm, ymm/mem |
VMOVSLDUP | Move and duplicate low singles | ymm/xmm, ymm/mem |
VMOVDDUP | Move and duplicate one double | ymm/xmm, ymm/mem |
VBROADCASTSS | Broadcast single to all elements | ymm/xmm, mem32 |
VBROADCASTSD | Broadcast double to all elements | ymm, mem64 |
VBROADCASTF128 | Broadcast 128-bit to all lanes | ymm, mem128 |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VANDPS | Bitwise AND of packed singles | ymm/xmm, ymm/xmm, ymm/mem |
VANDPD | Bitwise AND of packed doubles | ymm/xmm, ymm/xmm, ymm/mem |
VANDNPS | Bitwise AND-NOT of packed singles | ymm/xmm, ymm/xmm, ymm/mem |
VANDNPD | Bitwise AND-NOT of packed doubles | ymm/xmm, ymm/xmm, ymm/mem |
VORPS | Bitwise OR of packed singles | ymm/xmm, ymm/xmm, ymm/mem |
VORPD | Bitwise OR of packed doubles | ymm/xmm, ymm/xmm, ymm/mem |
VXORPS | Bitwise XOR of packed singles | ymm/xmm, ymm/xmm, ymm/mem |
VXORPD | Bitwise XOR of packed doubles | ymm/xmm, ymm/xmm, ymm/mem |
VCMPPS | Compare packed single (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VCMPPD | Compare packed double (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VCMPSS | Compare scalar single (imm8) | xmm, xmm, xmm/mem, imm8 |
VCMPSD | Compare scalar double (imm8) | xmm, xmm, xmm/mem, imm8 |
VCOMISS | Compare ordered scalar single (flags) | xmm, xmm/mem |
VCOMISD | Compare ordered scalar double (flags) | xmm, xmm/mem |
VUCOMISS | Compare unordered scalar single (flags) | xmm, xmm/mem |
VUCOMISD | Compare unordered scalar double (flags) | xmm, xmm/mem |
VTESTPS | Test packed single (sets ZF/CF) | ymm/xmm, ymm/xmm |
VTESTPD | Test packed double (sets ZF/CF) | ymm/xmm, ymm/xmm |
VPTEST | Logical compare of integers (sets ZF/CF) | ymm/xmm, ymm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VSHUFPS | Shuffle packed single | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VSHUFPD | Shuffle packed double | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VPERMILPS | Permute in-lane packed single | ymm/xmm, ymm/mem, imm8 |
VPERMILPD | Permute in-lane packed double | ymm/xmm, ymm/mem, imm8 |
VPERM2F128 | Permute 128-bit lanes | ymm, ymm, ymm/mem, imm8 |
VUNPCKHPS | Unpack high packed single | ymm/xmm, ymm/xmm, ymm/mem |
VUNPCKLPS | Unpack low packed single | ymm/xmm, ymm/xmm, ymm/mem |
VUNPCKHPD | Unpack high packed double | ymm/xmm, ymm/xmm, ymm/mem |
VUNPCKLPD | Unpack low packed double | ymm/xmm, ymm/xmm, ymm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPADDB | Add packed bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPADDW | Add packed words | ymm/xmm, ymm/xmm, ymm/mem |
VPADDD | Add packed doublewords | ymm/xmm, ymm/xmm, ymm/mem |
VPADDQ | Add packed quadwords | ymm/xmm, ymm/xmm, ymm/mem |
VPSUBB | Subtract packed bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPSUBW | Subtract packed words | ymm/xmm, ymm/xmm, ymm/mem |
VPSUBD | Subtract packed doublewords | ymm/xmm, ymm/xmm, ymm/mem |
VPSUBQ | Subtract packed quadwords | ymm/xmm, ymm/xmm, ymm/mem |
VPAND | Bitwise AND | ymm/xmm, ymm/xmm, ymm/mem |
VPANDN | Bitwise AND-NOT | ymm/xmm, ymm/xmm, ymm/mem |
VPOR | Bitwise OR | ymm/xmm, ymm/xmm, ymm/mem |
VPXOR | Bitwise XOR | ymm/xmm, ymm/xmm, ymm/mem |
VPSLLW | Shift left logical words | ymm/xmm, xmm/mem, imm8 |
VPSLLD | Shift left logical doublewords | ymm/xmm, xmm/mem, imm8 |
VPSLLQ | Shift left logical quadwords | ymm/xmm, xmm/mem, imm8 |
VPSRLW | Shift right logical words | ymm/xmm, xmm/mem, imm8 |
VPSRLD | Shift right logical doublewords | ymm/xmm, xmm/mem, imm8 |
VPSRLQ | Shift right logical quadwords | ymm/xmm, xmm/mem, imm8 |
VPSRAW | Shift right arithmetic words | ymm/xmm, xmm/mem, imm8 |
VPSRAD | Shift right arithmetic doublewords | ymm/xmm, xmm/mem, imm8 |
VPMULLW | Multiply packed words (low) | ymm/xmm, ymm/xmm, ymm/mem |
VPMULLD | Multiply packed doublewords (low) | ymm/xmm, ymm/xmm, ymm/mem |
VPMULHW | Multiply packed words (high) | ymm/xmm, ymm/xmm, ymm/mem |
VPMULHUW | Multiply packed words (high, unsigned) | ymm/xmm, ymm/xmm, ymm/mem |
VPMULUDQ | Multiply unsigned dword to qword | ymm/xmm, ymm/xmm, ymm/mem |
VPMULDQ | Multiply signed dword to qword | ymm/xmm, ymm/xmm, ymm/mem |
VPMADDUBSW | Multiply unsigned bytes, add adjacent, saturate | ymm/xmm, ymm/xmm, ymm/mem |
VPMADDWD | Multiply and add words to doublewords | ymm/xmm, ymm/xmm, ymm/mem |
VPSADBW | Sum of absolute differences | ymm/xmm, ymm/xmm, ymm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VCVTPD2PS | Convert packed double to single | ymm/xmm, ymm/xmm/mem |
VCVTPS2PD | Convert packed single to double | ymm/xmm, ymm/xmm/mem |
VCVTSD2SS | Convert scalar double to single | xmm, xmm, xmm/Speicher |
VCVTSS2SD | Convert scalar single to double | xmm, xmm, xmm/Speicher |
VCVTDQ2PD | Convert packed dword to double | ymm/xmm, xmm/mem |
VCVTPD2DQ | Convert packed double to dword | ymm/xmm, ymm/xmm/mem |
VCVTDQ2PS | Convert packed dword to single | ymm/xmm, ymm/mem |
VCVTPS2DQ | Convert packed single to dword | ymm/xmm, ymm/mem |
VCVTTPD2DQ | Truncate packed double to dword | ymm/xmm, ymm/mem |
VCVTTPS2DQ | Truncate packed single to dword | ymm/xmm, ymm/mem |
VCVTTSD2SI | Truncate scalar double to integer | reg, xmm/mem |
VCVTTSS2SI | Truncate scalar single to integer | reg, xmm/mem |
VCVTSI2SD | Convert integer to scalar double | xmm, xmm, reg/mem |
VCVTSI2SS | Convert integer to scalar single | xmm, xmm, reg/mem |
VCVTSD2SI | Convert scalar double to integer | reg, xmm/mem |
VCVTSS2SI | Convert scalar single to integer | reg, xmm/mem |
VCVTPS2PH | Convert packed single to half precision | xmm/mem, ymm/xmm, imm8 |
VCPH2PS | Convert half precision to packed single | ymm/xmm, xmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VBLENDPS | Blend packed single (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VBLENDPD | Blend packed double (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VBLENDVPS | Variable blend packed single | ymm/xmm, ymm/xmm, ymm/mem |
VBLENDVPD | Variable blend packed double | ymm/xmm, ymm/xmm, ymm/mem |
VPBLENDVB | Variable blend packed bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPBLENDW | Blend packed words (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VDPPS | Dot product packed single (imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VDPPD | Dot product packed double (imm8) | xmm, xmm, xmm/mem, imm8 |
VHADDPS | Horizontal add packed single | ymm/xmm, ymm/xmm, ymm/mem |
VHADDPD | Horizontal add packed double | ymm/xmm, ymm/xmm, ymm/mem |
VHSUBPS | Horizontal subtract packed single | ymm/xmm, ymm/xmm, ymm/mem |
VHSUBPD | Horizontal subtract packed double | ymm/xmm, ymm/xmm, ymm/mem |
VADDSUBPS | Add/subtract alternating packed single | ymm/xmm, ymm/xmm, ymm/mem |
VADDSUBPD | Add/subtract alternating packed double | ymm/xmm, ymm/xmm, ymm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPBROADCASTB | Broadcast byte to all elements | ymm/xmm, reg/mem |
VPBROADCASTW | Broadcast word to all elements | ymm/xmm, reg/mem |
VPBROADCASTD | Broadcast dword to all elements | ymm/xmm, reg/mem |
VPBROADCASTQ | Broadcast qword to all elements | ymm/xmm, reg/mem |
VBROADCASTI128 | Broadcast 128-bit to all lanes | ymm, mem128 |
VPERM2I128 | Permute 128-bit integer lanes | ymm, ymm, ymm/mem, imm8 |
VPERMD | Permute doublewords | ymm, ymm, ymm/mem |
VPERMPD | Permute double-precision floats | ymm, ymm, ymm/mem, imm8 |
VPERMPS | Permute single-precision floats | ymm, ymm, ymm/mem |
VPERMQ | Permute quadwords | ymm, ymm/mem, imm8 |
VPERMIL2PS | Two-source permute of singles | ymm/xmm, ymm/xmm, ymm/mem, imm4 |
VPERMIL2PD | Two-source permute of doubles | ymm/xmm, ymm/xmm, ymm/mem, imm4 |
VGATHERDPD | Gather double with dword indices | ymm/xmm, mem, ymm/xmm |
VGATHERQPD | Gather double with qword indices | ymm/xmm, mem, ymm/xmm |
VGATHERDPS | Gather single with dword indices | ymm/xmm, mem, ymm/xmm |
VGATHERQPS | Gather single with qword indices | ymm/xmm, mem, ymm/xmm |
VPGATHERDD | Gather dwords with dword indices | ymm/xmm, mem, ymm/xmm |
VPGATHERDQ | Gather dwords with qword indices | ymm/xmm, mem, ymm/xmm |
VPGATHERQD | Gather qwords with dword indices | ymm/xmm, mem, ymm/xmm |
VPGATHERQQ | Gather qwords with qword indices | ymm/xmm, mem, ymm/xmm |
VPMASKMOVD | Masked move of dwords | ymm/xmm, ymm/xmm, mem |
VPMASKMOVQ | Masked move of qwords | ymm/xmm, ymm/xmm, mem |
VPSLLVD | Variable shift left logical dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPSLLVQ | Variable shift left logical qwords | ymm/xmm, ymm/xmm, ymm/mem |
VPSRLVD | Variable shift right logical dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPSRLVQ | Variable shift right logical qwords | ymm/xmm, ymm/xmm, ymm/mem |
VPSRAVD | Variable shift right arith dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPMOVSXBW | Sign-extend bytes to words | ymm/xmm, xmm/mem |
VPMOVSXBD | Sign-extend bytes to dwords | ymm/xmm, xmm/mem |
VPMOVSXBQ | Sign-extend bytes to qwords | ymm/xmm, xmm/mem |
VPMOVSXWD | Sign-extend words to dwords | ymm/xmm, xmm/mem |
VPMOVSXWQ | Sign-extend words to qwords | ymm/xmm, xmm/mem |
VPMOVSXDQ | Sign-extend dwords to qwords | ymm/xmm, xmm/mem |
VPMOVZXBW | Zero-extend bytes to words | ymm/xmm, xmm/mem |
VPMOVZXBD | Zero-extend bytes to dwords | ymm/xmm, xmm/mem |
VPMOVZXBQ | Zero-extend bytes to qwords | ymm/xmm, xmm/mem |
VPMOVZXWD | Zero-extend words to dwords | ymm/xmm, xmm/mem |
VPMOVZXWQ | Zero-extend words to qwords | ymm/xmm, xmm/mem |
VPMOVZXDQ | Zero-extend dwords to qwords | ymm/xmm, xmm/mem |
VPSHUFB | Shuffle packed bytes (per-lane) | ymm/xmm, ymm/xmm, ymm/mem |
VPSHUFD | Shuffle packed dwords (per-lane, imm8) | ymm/xmm, ymm/mem, imm8 |
VPSHUFHW | Shuffle packed high words (imm8) | ymm/xmm, ymm/mem, imm8 |
VPSHUFLW | Shuffle packed low words (imm8) | ymm/xmm, ymm/mem, imm8 |
VPABSB | Absolute value of bytes | ymm/xmm, ymm/mem |
VPABSW | Absolute value of words | ymm/xmm, ymm/mem |
VPABSD | Absolute value of dwords | ymm/xmm, ymm/mem |
VPMAXSB | Maximum of signed bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPMAXSW | Maximum of signed words | ymm/xmm, ymm/xmm, ymm/mem |
VPMAXSD | Maximum of signed dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPMAXUB | Maximum of unsigned bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPMAXUW | Maximum of unsigned words | ymm/xmm, ymm/xmm, ymm/mem |
VPMAXUD | Maximum of unsigned dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPMINSB | Minimum of signed bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPMINSW | Minimum of signed words | ymm/xmm, ymm/xmm, ymm/mem |
VPMINSD | Minimum of signed dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPMINUB | Minimum of unsigned bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPMINUW | Minimum of unsigned words | ymm/xmm, ymm/xmm, ymm/mem |
VPMINUD | Minimum of unsigned dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPINSRB | Insert byte | xmm, xmm, reg/mem, imm8 |
VPINSRD | Insert dword | xmm, xmm, reg/mem, imm8 |
VPINSRQ | Insert qword | xmm, xmm, reg/mem, imm8 |
VPEXTRB | Extract byte | reg/mem, xmm, imm8 |
VPEXTRD | Extract dword | reg/mem, xmm, imm8 |
VPEXTRQ | Extract qword | reg/mem, xmm, imm8 |
VPMOVMSKB | Move byte mask to GPR | reg, ymm/xmm |
VPHADDW | Horizontal add words | ymm/xmm, ymm/xmm, ymm/mem |
VPHADDD | Horizontal add dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPHADDSW | Horizontal add words with saturation | ymm/xmm, ymm/xmm, ymm/mem |
VPHSUBW | Horizontal subtract words | ymm/xmm, ymm/xmm, ymm/mem |
VPHSUBD | Horizontal subtract dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPHSUBSW | Horizontal subtract words with saturation | ymm/xmm, ymm/xmm, ymm/mem |
VPMULHRSW | Multiply high with round and scale | ymm/xmm, ymm/xmm, ymm/mem |
VPSIGNB | Sign of bytes | ymm/xmm, ymm/xmm, ymm/mem |
VPSIGNW | Sign of words | ymm/xmm, ymm/xmm, ymm/mem |
VPSIGND | Sign of dwords | ymm/xmm, ymm/xmm, ymm/mem |
VPALIGNR | Align right (concatenate and shift, imm8) | ymm/xmm, ymm/xmm, ymm/mem, imm8 |
VPCMPEQB | Compare bytes for equality | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPEQW | Compare words for equality | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPEQD | Compare dwords for equality | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPEQQ | Compare qwords for equality | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPGTB | Compare bytes for greater than | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPGTW | Compare words for greater than | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPGTD | Compare dwords for greater than | ymm/xmm, ymm/xmm, ymm/mem |
VPCMPGTQ | Compare qwords for greater than | ymm/xmm, ymm/xmm, ymm/mem |
VINSERTI128 | Insert 128-bit integer lane (imm8) | ymm, ymm, xmm/mem, imm8 |
VEXTRACTI128 | Extract 128-bit integer lane (imm8) | xmm/mem, ymm, imm8 |
VINSERTF128 | Insert 128-bit float lane (imm8) | ymm, ymm, xmm/mem, imm8 |
VEXTRACTF128 | Extract 128-bit float lane (imm8) | xmm/mem, ymm, imm8 |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VFMADD132PS | FMA: a*b+c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD213PS | FMA: a*b+c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD231PS | FMA: a*b+c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD132PD | FMA: a*b+c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD213PD | FMA: a*b+c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD231PD | FMA: a*b+c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADD132SS | FMA: a*b+c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMADD213SS | FMA: a*b+c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMADD231SS | FMA: a*b+c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMADD132SD | FMA: a*b+c (double, scalar) | xmm, xmm, xmm/Speicher |
VFMADD213SD | FMA: a*b+c (double, scalar) | xmm, xmm, xmm/Speicher |
VFMADD231SD | FMA: a*b+c (double, scalar) | xmm, xmm, xmm/Speicher |
VFMSUB132PS | FMA: a*b-c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB213PS | FMA: a*b-c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB231PS | FMA: a*b-c (single, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB132PD | FMA: a*b-c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB213PD | FMA: a*b-c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB231PD | FMA: a*b-c (double, packed) | ymm/xmm, ymm/xmm, ymm/mem |
VFMSUB132SS | FMA: a*b-c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMSUB213SS | FMA: a*b-c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMSUB231SS | FMA: a*b-c (single, scalar) | xmm, xmm, xmm/Speicher |
VFMSUB132SD | FMA: a*b-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFMSUB213SD | FMA: a*b-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFMSUB231SD | FMA: a*b-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFMADDSUB132PS | FMA: a*b+c / a*b-c (abwechselnd, einzeln gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADDSUB213PS | FMA: a*b+c / a*b-c (abwechselnd, einzeln gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADDSUB231PS | FMA: a*b+c / a*b-c (abwechselnd, einzeln gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADDSUB132PD | FMA: a*b+c / a*b-c (alternierend, doppelt gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADDSUB213PD | FMA: a*b+c / a*b-c (alternierend, doppelt gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFMADDSUB231PD | FMA: a*b+c / a*b-c (alternierend, doppelt gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD132PS | FMA: -(a*b)+c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD213PS | FMA: -(a*b)+c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD231PS | FMA: -(a*b)+c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD132PD | FMA: -(a*b)+c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD213PD | FMA: -(a*b)+c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD231PD | FMA: -(a*b)+c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMADD132SS | FMA: -(a*b)+c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMADD213SS | FMA: -(a*b)+c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMADD231SS | FMA: -(a*b)+c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMADD132SD | FMA: -(a*b)+c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFNMADD213SD | FMA: -(a*b)+c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFNMADD231SD | FMA: -(a*b)+c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB132PS | FMA: -(a*b)-c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB213PS | FMA: -(a*b)-c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB231PS | FMA: -(a*b)-c (einzeln, verpackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB132PD | FMA: -(a*b)-c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB213PD | FMA: -(a*b)-c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB231PD | FMA: -(a*b)-c (doppelt, gepackt) | ymm/xmm, ymm/xmm, ymm/mem |
VFNMSUB132SS | FMA: -(a*b)-c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB213SS | FMA: -(a*b)-c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB231SS | FMA: -(a*b)-c (einzeln, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB132SD | FMA: -(a*b)-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB213SD | FMA: -(a*b)-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VFNMSUB231SD | FMA: -(a*b)-c (doppelt, skalar) | xmm, xmm, xmm/Speicher |
AVX-512 erweitert YMM auf 512-Bit-ZMM-Register und fügt Opmask-Register k0-k7 hinzu. Mnemonics verwenden ein optionalesZSuffix oder das EVEX-Präfix. Wichtige neue Anweisungen:
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VMOVDQA32 | Ausgerichtetes Dword/Qword verschieben (mit Opmask) | zmm, mem / mem, zmm |
VMOVDQA64 | Ausgerichtetes qword verschieben (mit opmask) | zmm, mem / mem, zmm |
VMOVDQU32 | Nicht ausgerichtetes Dword/Qword verschieben (mit opmask) | zmm, mem / mem, zmm |
VMOVDQU64 | Nicht ausgerichtetes qword verschieben (mit opmask) | zmm, mem / mem, zmm |
VPABSQ | Absoluter Wert von qwords | zmm, zmm/mem |
VPMAXSQ | Maximal vorzeichenbehaftete Qwords | zmm, zmm, zmm/mem |
VPMINSQ | Mindestens signierte Qwords | zmm, zmm, zmm/mem |
VPMAXUQ | Maximal vorzeichenlose Qwords | zmm, zmm, zmm/mem |
VPMINUQ | Mindestens vorzeichenlose Qwords | zmm, zmm, zmm/mem |
VPCONFLICTD | Erkennen Sie Konflikte im Dword-Vektor | zmm, zmm/mem |
VPCONFLICTQ | Erkennen Sie Konflikte im Qword-Vektor | zmm, zmm/mem |
VPLZCNTD | Zählen Sie führende Nullen im Dword-Vektor | zmm, zmm/mem |
VPLZCNTQ | Zählen Sie führende Nullen im Qword-Vektor | zmm, zmm/mem |
VCOMPRESS | Gepackte Elemente komprimieren (durch Maske) | zmm, zmm/mem |
VEXPAND | Gepackte Elemente erweitern (durch Maske) | zmm, zmm/mem |
VPCOMPRESSD | Komprimieren Sie gepackte Dwords | zmm, zmm/mem |
VPCOMPRESSQ | Komprimieren Sie gepackte Qwords | zmm, zmm/mem |
VPEXPANDD | Erweitern Sie gepackte Dwords | zmm, zmm/mem |
VPEXPANDQ | Erweitern Sie gepackte Qwords | zmm, zmm/mem |
VPERMI2B | Permutieren Sie Bytes mit Index und Maske | zmm, zmm, zmm/mem |
VPERMI2W | Permutieren Sie Wörter mit Index und Maske | zmm, zmm, zmm/mem |
VPERMI2D | Permutieren Sie Dwords mit Index und Maske | zmm, zmm, zmm/mem |
VPERMI2Q | Qwords mit Index und Maske permutieren | zmm, zmm, zmm/mem |
VPERMT2B | Bytes mit Index und Maske permutieren (zwei Quellen) | zmm, zmm, zmm/mem |
VPERMT2W | Wörter mit Index und Maske permutieren (zwei Quellen) | zmm, zmm, zmm/mem |
VPERMT2D | Dwords mit Index und Maske permutieren (zwei Quellen) | zmm, zmm, zmm/mem |
VPERMT2Q | Qwords mit Index und Maske permutieren (zwei Quellen) | zmm, zmm, zmm/mem |
VGETMANTPS | Extrahieren Sie die normalisierte Mantisse aus einer einzelnen | zmm, zmm/mem, imm8 |
VGETMANTPD | Extrahieren Sie die normalisierte Mantisse aus dem Doppelten | zmm, zmm/mem, imm8 |
VFPCLASSPS | Testgepackte Single für die Klasse (NaN/Inf/Null) | zmm, zmm/mem, imm8 |
VFPCLASSPD | Testpackung doppelt für den Unterricht | zmm, zmm/mem, imm8 |
VRCP14PS | 14-Bit reziproke gepackte Single | zmm, zmm/mem |
VRCP14PD | 14-Bit reziprokes gepacktes Double | zmm, zmm/mem |
VRCP14SS | 14-Bit-reziproker Skalar-Single | xmm, xmm, xmm/Speicher |
VRCP14SD | 14-Bit reziprokes Skalar-Double | xmm, xmm, xmm/Speicher |
VRSQRT14PS | 14-Bit reziprokes sqrt-gepacktes Single | zmm, zmm/mem |
VRSQRT14PD | 14-Bit reziprokes sqrt-gepacktes Doppel | zmm, zmm/mem |
VSCALEFPS | Skalieren Sie einzeln mit Zweierpotenzen | zmm, zmm, zmm/mem |
VSCALEFPD | Skala doppelt gepackt durch Zweierpotenz | zmm, zmm, zmm/mem |
VFIXUPIMMPS | Verpackte Single reparieren (NaN-Handhabung) | zmm, zmm, zmm/mem, imm8 |
VFIXUPIMMPD | Verpacktes Doppel reparieren (NaN-Handhabung) | zmm, zmm, zmm/mem, imm8 |
VREDUCEPS | Gepackte Single reduzieren (auf N Bits runden) | zmm, zmm/mem, imm8 |
VREDUCEPD | Packed Double reduzieren (auf N Bits runden) | zmm, zmm/mem, imm8 |
VRNDSCALEPS | Rund verpacktes Einzelstück mit Skala | zmm, zmm/mem, imm8 |
VRNDSCALEPD | Rund verpackt, doppelt mit Skala | zmm, zmm/mem, imm8 |
VPMADD52HUQ | Multiplizieren und addieren Sie 52-Bit-QWords ohne Vorzeichen mit hohem Wert | zmm, zmm, zmm/mem |
VPMADD52LUQ | Multiplizieren und addieren Sie 52-Bit-Quoten ohne Vorzeichen mit niedrigem Wert | zmm, zmm, zmm/mem |
VPSLLVW | Variable logische Wörter nach links verschieben | zmm, zmm, zmm/mem |
VPSLLVDQ | Variable logisches Dword/Qword nach links verschieben | zmm, zmm, zmm/mem |
VPSRAVQ | Variable arithmetische Qwords nach rechts verschieben | zmm, zmm, zmm/mem |
VPSRLVW | Variable logische Wörter nach rechts verschieben | zmm, zmm, zmm/mem |
VPSRLVDQ | Variables logisches Dword/Qword nach rechts verschieben | zmm, zmm, zmm/mem |
VPTERNLOGD | Bitweise Operation mit drei Eingaben (Dword) | zmm, zmm, zmm/mem, imm8 |
VPTERNLOGQ | Bitweise Operation mit drei Eingaben (qword) | zmm, zmm, zmm/mem, imm8 |
VPMOVDB | Packen und kürzen Sie Dwords in Bytes (schmal) | mem, zmm / xmm, zmm |
VPMOVDW | Packen und kürzen Sie Dwords in Wörter (schmal) | mem, zmm / xmm, zmm |
VPMOVQB | Packen und kürzen Sie qwords in Bytes (schmal) | mem, zmm / xmm, zmm |
VPMOVQD | Packen und kürzen Sie qwords in dwords (schmal) | mem, zmm / xmm, zmm |
VPMOVQW | Packen und kürzen Sie qwords in Wörter (schmal) | mem, zmm / xmm, zmm |
VPMOVWB | Packen und kürzen Sie Wörter in Bytes (schmal) | mem, zmm / xmm, zmm |
VPOPCNTB | Populationsanzahl der Bytes (Vektor) | zmm, zmm/mem |
VPOPCNTW | Bevölkerungszahl von Wörtern (Vektor) | zmm, zmm/mem |
VPOPCNTD | Bevölkerungszahl von Dwords (Vektor) | zmm, zmm/mem |
VPOPCNTQ | Bevölkerungszahl von qwords (Vektor) | zmm, zmm/mem |
VDBPSADBW | Doppelblockgepackte Summe von ABS-Diffs (Wörtern) | zmm, zmm, zmm/mem, imm8 |
VSHUFI32X4 | Mischen Sie 128-Bit-Spuren mit 32-Bit-Elementen | zmm, zmm, zmm/mem, imm8 |
VSHUFI64X2 | Mischen Sie 128-Bit-Spuren mit 64-Bit-Elementen | zmm, zmm, zmm/mem, imm8 |
AVX-512 führt 8 Maskenregister (k0-k7) für prädizierte Operationen ein. k0 ist fest mit allen Einsen verbunden (keine Maskierung). Die typische Syntax istvmovdqa32 zmm1 {k1}{z}, zmm2.
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
KMOVB/KMOVW/KMOVD/KMOVQ | Verschieben Sie das Maskenregister zum/vom GPR oder Speicher | k, k/reg/mem |
KADDB/KADDW/KADDD/KADDQ | Fügen Sie zwei Maskenregister hinzu | k, k, k |
KANDB/KANDW/KANDD/KANDQ | Bitweises UND von Maskenregistern | k, k, k |
KANDNB/KANDNW/KANDND/KANDNQ | Bitweises UND-NICHT von Maskenregistern | k, k, k |
KORB/KORW/KORD/KORQ | Bitweises ODER von Maskenregistern | k, k, k |
KXORB/KXORW/KXORD/KXORQ | Bitweises XOR von Maskenregistern | k, k, k |
KXNORB/KXNORW/KXNORD/KXNORQ | Bitweises XNOR von Maskenregistern | k, k, k |
KNOTB/KNOTW/KNOTD/KNOTQ | Bitweises NICHT des Maskenregisters | k, k |
KORTESTB/KORTESTW/KORTESTD/KORTESTQ | ODER-Test (setzt CF/ZF, wenn das Ergebnis nur Einsen/Null ist) | k, k |
KSHIFTLB/KSHIFTLW/KSHIFTLD/KSHIFTLQ | Verschiebe das Maskenregister um imm8 nach links | k, k, imm8 |
KSHIFTRB/KSHIFTRW/KSHIFTRD/KSHIFTRQ | Verschiebe das Maskenregister um imm8 nach rechts | k, k, imm8 |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPADDB | Gepackte Bytes hinzufügen (512-Bit mit Opmask) | zmm, zmm, zmm/mem |
VPADDW | Gepackte Wörter hinzufügen (512-Bit mit Opmask) | zmm, zmm, zmm/mem |
VPSUBB | Gepackte Bytes subtrahieren (512-Bit mit Opmask) | zmm, zmm, zmm/mem |
VPSUBW | Gepackte Wörter subtrahieren (512-Bit mit Opmask) | zmm, zmm, zmm/mem |
VPSLLVW | Variable logische Wörter nach links verschieben | zmm, zmm, zmm/mem |
VPSRLVW | Variable logische Wörter nach rechts verschieben | zmm, zmm, zmm/mem |
VPSRAVW | Variable arithmetische Wörter nach rechts verschieben | zmm, zmm, zmm/mem |
VPABSB | Absoluter Wert der Bytes (512-Bit) | zmm, zmm/mem |
VPABSW | Absoluter Wortwert (512-Bit) | zmm, zmm/mem |
VPMOVB2M | Verschieben Sie die Bytemaske vom Vektor in das k-Register | k, zmm |
VPMOVW2M | Verschieben Sie die Wortmaske vom Vektor in das k-Register | k, zmm |
VPMOVM2B | Maske vom k-Register in den Byte-Vektor verschieben | zmm, k |
VPMOVM2W | Maske vom k-Register in den Wortvektor verschieben | zmm, k |
VDBPSADBW | Doppelblockgepackte Summe von ABS-Diffs (Wörtern) | zmm, zmm, zmm/mem, imm8 |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPMULLQ | Multiplizieren Sie gepackte Qwords mit Vorzeichen (niedrige 64 Bit) | zmm, zmm, zmm/mem |
VPANDQ | Bitweises UND von qwords | zmm, zmm, zmm/mem |
VPORQ | Bitweises ODER von qwords | zmm, zmm, zmm/mem |
VPXORQ | Bitweises XOR von qwords | zmm, zmm, zmm/mem |
VPABSQ | Absoluter Wert von qwords | zmm, zmm/mem |
VPMOVD2M | Verschieben Sie die Dword-Maske vom Vektor in das k-Register | k, zmm |
VPMOVQ2M | Verschieben Sie die qword-Maske vom Vektor in das k-Register | k, zmm |
VPMOVM2D | Verschieben Sie die Maske vom k-Register in den dword-Vektor | zmm, k |
VPMOVM2Q | Maske vom k-Register in den qword-Vektor verschieben | zmm, k |
Eingeführt in Intel Xeon Phi (Knights Landing). Bietet hochpräzise exponentielle, reziproke und reziproke Quadrate.
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VEXP2PD | Exponentielle Näherung zur Basis 2 (doppelt, gepackt) | zmm, zmm/mem |
VEXP2PS | Exponentielle Näherung zur Basis 2 (einfach, gepackt) | zmm, zmm/mem |
VRCP28PD | 28-Bit-Reziproknäherung (doppelt, gepackt) | zmm, zmm/mem |
VRCP28PS | 28-Bit-Reziproknäherung (einzeln, gepackt) | zmm, zmm/mem |
VRCP28SD | 28-Bit-Reziproknäherung (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VRCP28SS | 28-Bit-Reziproknäherung (einfach, skalar) | xmm, xmm, xmm/Speicher |
VRSQRT28PD | 28-Bit reziproke Quadratnäherung (doppelt, gepackt) | zmm, zmm/mem |
VRSQRT28PS | 28-Bit reziproke Quadratnäherung (einzeln, gepackt) | zmm, zmm/mem |
VRSQRT28SD | 28-Bit reziproke Quadratnäherung (doppelt, skalar) | xmm, xmm, xmm/Speicher |
VRSQRT28SS | 28-Bit-Reziprok-Quadrat-Näherung (einfach, skalar) | xmm, xmm, xmm/Speicher |
Prefetch-Hinweise für Gather/Scatter-Vorgänge (nur Xeon Phi). Verwendet VSIB-Adressierung.
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VGATHERPF0DPD | Prefetch Gather Double, Intent Level 0 | mem (VSIB) |
VGATHERPF0DPS | Prefetch Gather Single, Intent Level 0 | mem (VSIB) |
VGATHERPF1DPD | Prefetch Gather Double, Intent Level 1 | mem (VSIB) |
VGATHERPF1DPS | Prefetch Gather Single, Intent Level 1 | mem (VSIB) |
VSCATTERPF0DPD | Prefetch-Scatter-Double, Absichtsstufe 0 | mem (VSIB) |
VSCATTERPF0DPS | Prefetch-Scatter einzeln, Absichtsebene 0 | mem (VSIB) |
VSCATTERPF1DPD | Prefetch-Scatter-Double, Absichtsstufe 1 | mem (VSIB) |
VSCATTERPF1DPS | Prefetch-Scatter einzeln, Absichtsebene 1 | mem (VSIB) |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPOPCNTD | Populationsanzahl von Dword-Elementen | zmm, zmm/mem |
VPOPCNTQ | Populationszahl von qword-Elementen | zmm, zmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPOPCNTB | Populationsanzahl von Byte-Elementen | zmm, zmm/mem |
VPOPCNTW | Populationszahl von Wortelementen | zmm, zmm/mem |
VPSHUFBITQMB | Mischen Sie die Bits im Qword zur Byte-Maske | k, zmm, zmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VPERMB | Bytes über Lanes hinweg permutieren | zmm, zmm, zmm/mem |
VPERMI2B | Zwei-Quellen-Permutation von Bytes mit Index | zmm, zmm, zmm/mem |
VPERMT2B | Permutation von Bytes aus zwei Quellen (Index im Ziel) | zmm, zmm, zmm/mem |
VPMULTISHIFTQB | Mehrfaches Verschieben und Verketten von Qwords zu Bytes | zmm, zmm, zmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VCOMPRESSB | Gepackte Bytes komprimieren (durch Maske) | zmm, zmm/mem |
VCOMPRESSW | Komprimieren Sie gepackte Wörter (durch Maske) | zmm, zmm/mem |
VEXPANDB | Gepackte Bytes erweitern (nach Maske) | zmm, zmm/mem |
VEXPANDW | Gepackte Wörter erweitern (durch Maske) | zmm, zmm/mem |
VPSHLDV | Variable Verschiebung nach links doppelt (verkettete Verschiebung) | zmm, zmm, zmm/mem |
VPSHLDVW | Variable Doppelwörter nach links verschieben | zmm, zmm, zmm/mem |
VPSHRDV | Variable Verschiebung nach rechts doppelt (verkettete Verschiebung) | zmm, zmm, zmm/mem |
VPSHRDVW | Variable Doppelwörter nach rechts verschieben | zmm, zmm, zmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VGF2P8AFFINEINVQB | Galois-Feld-Affintransformation invers | zmm/xmm, zmm/xmm, zmm/mem, imm8 |
VGF2P8AFFINEQB | Galoisfeldaffine Transformation | zmm/xmm, zmm/xmm, zmm/mem, imm8 |
VGF2P8MULB | Galois-Feld multipliziert Bytes (GF(2^8)) | zmm/xmm, zmm/xmm, zmm/mem |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VSCATTERDPS | Scatter-gepackte Single mit Dword-Indizes | mem, zmm |
VSCATTERDPD | Scatter-gepacktes Doppel mit Dword-Indizes | mem, zmm |
VSCATTERQPS | Streugepackte Single mit Qword-Indizes | mem, zmm |
VSCATTERQPD | Scatter-gepacktes Doppel mit Qword-Indizes | mem, zmm |
| Gedächtnisstütze | Beschreibung | Operanden |
|---|---|---|
VALIGND | Dwords ausrichten (verketten und verschieben) | zmm, zmm, zmm/mem, imm8 |
VALIGNQ | Qwords ausrichten (verketten und verschieben) | zmm, zmm, zmm/mem, imm8 |
VBLENDMPD | Mischen Sie die Mischung doppelt aus der Maske | zmm, zmm, zmm/mem |
VBLENDMPS | Mischung verpackt einzeln aus der Maske | zmm, zmm, zmm/mem |
VPBLENDMD | Mischen Sie gepackte Dwords aus der Maske | zmm, zmm, zmm/mem |
VPBLENDMQ | Mischen Sie gepackte QWords aus der Maske | zmm, zmm, zmm/mem |
VCOMPRESSPS | Verpackte Single komprimieren (durch Maske) | zmm, zmm/mem |
VCOMPRESSPD | Komprimieren Sie das Doppelte (durch Maske) | zmm, zmm/mem |
VCOMPRESSD | Komprimieren Sie gepackte Dwords (durch Maske) | zmm, zmm/mem |
VCOMPRESSQ | Komprimieren Sie gepackte Qwords (durch Maske) | zmm, zmm/mem |
VEXPANDPS | Gepackte Single erweitern (nach Maske) | zmm, zmm/mem |
VEXPANDPD | Gepacktes Doppel erweitern (durch Maske) | zmm, zmm/mem |
VEXPANDD | Gepackte Dwords erweitern (nach Maske) | zmm, zmm/mem |
VEXPANDQ | Gepackte QWords erweitern (nach Maske) | zmm, zmm/mem |
VFIXUPIMMSD | Skalar-Double reparieren (NaN-Handhabung) | xmm, xmm, xmm/mem, imm8 |
VFIXUPIMMSS | Skalar-Single reparieren (NaN-Handhabung) | xmm, xmm, xmm/mem, imm8 |
VREDUCESD | Skalar-Double reduzieren (auf N Bits runden) | xmm, xmm, xmm/mem, imm8 |
VREDUCESS | Skalare Single reduzieren (auf N Bits runden) | xmm, xmm, xmm/mem, imm8 |
VRNDSCALESD | Rundes Skalardoppel mit Skala | xmm, xmm, xmm/mem, imm8 |
VRNDSCALESS | Runder Skalar einzeln mit Skala | xmm, xmm, xmm/mem, imm8 |
VRANGESD | Bereichseinschränkung Skalar Double | xmm, xmm, xmm/mem, imm8 |
VRANGESS | Bereichseinschränkung Skalar Single | xmm, xmm, xmm/mem, imm8 |
VGETEXPSD | Exponenten-Skalar-Doppel extrahieren | xmm, xmm, xmm/Speicher |
VGETEXPSS | Exponentenskalar einzeln extrahieren | xmm, xmm, xmm/Speicher |
VGETMANTSD | Extrahieren Sie das normalisierte Mantissen-Skalar-Double | xmm, xmm, xmm/mem, imm8 |
VGETMANTSS | Extrahieren Sie den normalisierten Mantissenskalar einzeln | xmm, xmm, xmm/mem, imm8 |
VPSRAVQ | Variable arithmetische Qwords nach rechts verschieben | zmm, zmm, zmm/mem |
VPERMI2W | Permutation von Wörtern aus zwei Quellen mit Index | zmm, zmm, zmm/mem |
VPERMT2W | Permutation von Wörtern aus zwei Quellen (Index im Ziel) | zmm, zmm, zmm/mem |
VPERMI2D | Zwei-Quellen-Permutation von Dwords mit Index | zmm, zmm, zmm/mem |
VPERMI2Q | Zwei-Quellen-Permutation von qwords mit Index | zmm, zmm, zmm/mem |
VPERMI2PS | Permutation von Singles aus zwei Quellen mit Index | zmm, zmm, zmm/mem |
VPERMI2PD | Zwei-Quellen-Permutation von Doubles mit Index | zmm, zmm, zmm/mem |
VPERMT2D | Zwei-Quellen-Permutation von Dwords (Index im Ziel) | zmm, zmm, zmm/mem |
VPERMT2Q | Permutation von qwords aus zwei Quellen (Index im Ziel) | zmm, zmm, zmm/mem |
VPERMT2PS | Zwei-Quellen-Permutation von Singles (Index im Ziel) | zmm, zmm, zmm/mem |
VPERMT2PD | Zwei-Quellen-Permutation von Doubles (Index im Ziel) | zmm, zmm, zmm/mem |
vmovdqa32 zmm1 {k1}{z}, zmm2Dabei aktiviert {k1} die Maskierung und {z} den Nullungsmaskenmodus. Das Suffix-Suffix (32/64 für dword/qword-Elementgröße) bestimmt, für welche Elemente die Maske gilt.Category: Assembly
PBXB64 Status: Referenzthema fuer Assembler-Syntax und Familienhinweise; untergeordnete Instruktionsseiten und registrierte Tests liefern den endgueltigen Support-Nachweis.
Dieses Assembler-Thema gruppiert PBXB64-x64-Assembler-Syntax, Direktiven, Adressierungsregeln oder Mnemonik-Familien. Behandeln Sie es als Navigation plus Nutzungshinweis, sofern keine Unterseite oder kein registrierter Test eine konkrete Instruktionsform belegt.
Verwenden Sie diese Mnemonik-Übersichten als Einstieg in fokussierte Assembler-Tests. Eine vollständige Prüfung nennt CPU-Feature-Bit, Operandenbreite, Register- oder Speicherform, Flag-Auswirkungen und ob die Instruktion im Windows-x64-User-Mode gültig ist.
Inline-Assembler muss die Windows-x64-Aufrufkonvention erhalten, wenn die Kontrolle zu compilererzeugtem Code zurückkehrt. Sichern Sie nichtflüchtige Register, halten Sie Stack-Alignment bei Aufrufen ein und dokumentieren Sie absichtlich veränderte Flags oder Register.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.
Validierungsbeleg: Verwenden Sie die registrierten Inline-Assembler- und Standalone-Assembler-Validierungsprogramme als Nachweis fuer konkrete unterstuetzte Instruktionsformen und nennen Sie die genaue Testdatei auf der Unterseite, wenn vorhanden.

Ein 256-Bit-YMM-Register kann acht einfach genaue Werte aufnehmen.