x86 Instructions
957 instructions - showing 100 per page, page 8 of 10 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| vcvtpd2udq | VCVTPD2UDQ ymm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Converts 64-bit doubles to unsigned 32-bit integers. |
| vcvtpd2uqq | VCVTPD2UQ zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Converts 64-bit doubles to unsigned 64-bit integers. |
| vcvtph2ps | VCVTPH2PS xmm1, xmm2/m64 | VEX | F16C | Converts half-precision floats to single-precision. |
| vcvtps2dq | VCVTPS2DQ ymm1, ymm2/m256 | VEX | AVX | Converts four floats to 32-bit integers (Rounded). |
| vcvtps2ph | VCVTPS2PH xmm1/m64, xmm2, imm8 | VEX | F16C | Converts single-precision floats to half-precision. |
| vcvtps2udq | VCVTPS2UDQ zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Converts 32-bit floats to unsigned 32-bit integers. |
| vcvtps2uqq | VCVTPS2UQ zmm1 {k1}, ymm2/m256 | EVEX | AVX-512F | Converts 32-bit floats to unsigned 64-bit integers. |
| vcvttps2dq | VCVTTPS2DQ ymm1, ymm2/m256 | VEX | AVX | Converts four floats to 32-bit integers (Truncated). |
| vcvtudq2pd | VCVTUDQ2PD zmm1 {k1}, ymm2/m256 | EVEX | AVX-512F | Converts unsigned 32-bit integers to 64-bit doubles. |
| vcvtudq2ps | VCVTUDQ2PS zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Converts unsigned int32 to float. |
| vcvtuqq2pd | VCVTUQQ2PD zmm1 {k1}, zmm2/m512 | EVEX | AVX-512DQ | Converts unsigned 64-bit integers to 64-bit doubles. |
| vcvtuqq2ps | VCVTUQQ2PS ymm1 {k1}, zmm2/m512 | EVEX | AVX-512DQ | Converts unsigned 64-bit integers to 32-bit floats. |
| vdbpsadbw | VDBPSADBW zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512BW | Computes SAD on 16-bit blocks. |
| vdivph | VDIVPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Divides half-precision floating-point values. |
| vdivsh | VDIVSH xmm1 {k1}, xmm2, xmm3/m16 | EVEX | AVX-512-FP16 | Divides low FP16 value. |
| vdpbf16ps | VDPBF16PS zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-BF16 | BFloat16 dot product accumulating to Float32. |
| verr | VERR r/m16 | System | System | Checks if segment can be read; sets ZF. |
| verw | VERW r/m16 | System | System | Checks if segment can be written; sets ZF. |
| vexpandpd | VEXPANDPD zmm1 {k1}, m512 | EVEX | AVX-512F | Expands data from memory into sparse locations in ZMM. |
| vexpandps | VEXPANDPS zmm1 {k1}, m512 | EVEX | AVX-512F | Expands data from memory into sparse locations in ZMM. |
| vextractf128 | VEXTRACTF128 xmm1/m128, ymm2, imm8 | VEX | AVX | Extracts 128-bits from YMM register. |
| vextracti128 | VEXTRACTI128 xmm1/m128, ymm2, imm8 | VEX | AVX2 | Extracts 128-bits of integer data from YMM. |
| vfcmaddcph | VFCMADDCPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Complex conjugate multiply-add for half-precision. |
| vfixupimmpd | VFIXUPIMMPD zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Fixes special cases (NaN, Inf) using a table. |
| vfixupimmps | VFIXUPIMMPS zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Fixes special cases (NaN, Inf) using a table (Float32). |
| vfixupimmss | VFIXUPIMMSS xmm1 {k1}, xmm2, xmm3/m32, imm8 | EVEX | AVX-512F | Fixes special cases (NaN, Inf) in low float using table. |
| vfmadd132ph | VFMADD132PH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Computes (Dest * Src2) + Src1 in half-precision. |
| vfmadd132ps | VFMADD132PS ymm1, ymm2, ymm3/m256 | VEX | FMA3 | Computes (Dest * Src2) + Src1. |
| vfmadd132sh | VFMADD132SH xmm1 {k1}, xmm2, xmm3/m16 | EVEX | AVX-512-FP16 | Scalar FMA (Dest * Src2 + Src1) for FP16. |
| vfmadd132ss | VFMADD132SS xmm1, xmm2, xmm3/m32 | FMA3 | FMA3 | Scalar FMA: Dest = (Dest * Src2) + Src1. |
| vfmadd213ph | VFMADD213PH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Computes (Src1 * Dest) + Src2 in half-precision. |
| vfmadd213ps | VFMADD213PS ymm1, ymm2, ymm3/m256 | VEX | FMA3 | Computes (Src1 * Dest) + Src2. |
| vfmadd213ss | VFMADD213SS xmm1, xmm2, xmm3/m32 | FMA3 | FMA3 | Scalar FMA: Dest = (Src1 * Dest) + Src2. |
| vfmadd231ph | VFMADD231PH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Computes (Src1 * Src2) + Dest in half-precision. |
| vfmadd231ps | VFMADD231PS ymm1, ymm2, ymm3/m256 | VEX | FMA3 | Computes (Dest * Src2) + Src1. |
| vfmadd231ss | VFMADD231SS xmm1, xmm2, xmm3/m32 | FMA3 | FMA3 | Scalar FMA: Dest = (Src1 * Src2) + Dest. |
| vfmaddcph | VFMADDCPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Complex multiply-add for half-precision. |
| vfmaddcsh | VFMADDCSH xmm1 {k1}, xmm2, xmm3/m32 | EVEX | AVX-512-FP16 | Complex multiply-add for scalar half-precision. |
| vfmsub132ps | VFMSUB132PS ymm1, ymm2, ymm3/m256 | VEX | FMA3 | Computes (Dest * Src2) - Src1. |
| vfnmadd132ps | VFNMADD132PS ymm1, ymm2, ymm3/m256 | VEX | FMA3 | Computes -(Dest * Src2) + Src1. |
| vfpclasspd | VFPCLASSPD k1 {k2}, zmm2/m512, imm8 | EVEX | AVX-512DQ | Tests for category (NaN, Inf, Denormal) for doubles. |
| vfpclassps | VFPCLASSPS k1 {k2}, zmm2/m512, imm8 | EVEX | AVX-512DQ | Tests for category (NaN, Inf, Denormal) for floats. |
| vgatherdpd | VGATHERDPD ymm1, [base+xmm_idx*scale], ymm_mask | VEX | AVX2 | Loads doubles from non-contiguous memory using indices. |
| vgatherdps | VGATHERDPS ymm1, [base+ymm_idx*scale], ymm_mask | VEX | AVX2 | Loads floats from non-contiguous memory using indices. |
| vgatherpf0dpd | VGATHERPF0DPD {k1}, [base+ymm_idx] | EVEX | AVX-512PF | Prefetches doubles to L1 cache using indices. |
| vgatherpf0dps | VGATHERPF0DPS {k1}, [base+zmm_idx] | EVEX | AVX-512PF | Prefetches floats to L1 cache using indices. |
| vgatherpf0qpd | VGATHERPF0QPD {k1}, [base+zmm_idx] | EVEX | AVX-512PF | Prefetches doubles to L1 using 64-bit indices. |
| vgatherpf0qps | VGATHERPF0QPS {k1}, [base+zmm_idx] | EVEX | AVX-512PF | Prefetches floats to L1 using 64-bit indices. |
| vgetexppd | VGETEXPPD zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Extracts exponents from doubles as float values. |
| vgetexpss | VGETEXPSS xmm1 {k1}, xmm2, xmm3/m32 | EVEX | AVX-512F | Extracts exponent from low float. |
| vgetmantpd | VGETMANTPD zmm1 {k1}, zmm2/m512, imm8 | EVEX | AVX-512F | Extracts mantissas from doubles. |
| vgetmantsd | VGETMANTSD xmm1 {k1}, xmm2, xmm3/m64, imm8 | EVEX | AVX-512F | Extracts mantissa from low double. |
| vinsertf128 | VINSERTF128 ymm1, ymm2, xmm3/m128, imm8 | VEX | AVX | Inserts 128-bits into a YMM register. |
| vinserti128 | VINSERTI128 ymm1, ymm2, xmm3/m128, imm8 | VEX | AVX2 | Inserts 128-bits of integer data into a YMM register. |
| vmaskmovpd | VMASKMOVPD ymm1, ymm2, m256 | VEX | AVX | Conditionally loads/stores doubles based on mask. |
| vmaskmovps | VMASKMOVPS ymm1, ymm2, m256 | VEX | AVX | Conditionally loads/stores floats based on mask. |
| vmaxph | VMAXPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Maximum of half-precision values. |
| vmcall | VMCALL | VMX | VMX | Guest VM calls the Hypervisor (VM Exit). |
| vmclear | VMCLEAR m64 | VMX | VMX | Initializes a VMCS region in memory. |
| vmfunc | VMFUNC | VMX | VMX | Invoke VM function specified in EAX. |
| vminph | VMINPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Minimum of half-precision values. |
| vmlaunch | VMLAUNCH | VMX | VMX | Launches a VM managed by the current VMCS. |
| vmload | VMLOAD | SVM | SVM | Loads processor state from VMCB (AMD SVM). |
| vmptrld | VMPTRLD m64 | VMX | VMX | Loads the current VMCS pointer from memory. |
| vmptrst | VMPTRST m64 | VMX | VMX | Stores the current VMCS pointer to memory. |
| vmread | VMREAD r/m64, r64 | VMX | VMX | Reads a field from the Virtual Machine Control Structure. |
| vmresume | VMRESUME | VMX | VMX | Resumes a VM from the current VMCS. |
| vmrun | VMRUN | SVM | SVM | Switch to guest VM (AMD SVM). |
| vmsave | VMSAVE | SVM | SVM | Saves processor state to VMCB (AMD SVM). |
| vmulph | VMULPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Multiplies half-precision floating-point values. |
| vmulps | VMULPS ymm1, ymm2, ymm3/m256 | VEX | AVX | Multiplies packed floats (256-bit). |
| vmulsh | VMULSH xmm1 {k1}, xmm2, xmm3/m16 | EVEX | AVX-512-FP16 | Multiplies low FP16 value. |
| vmulss | VMULSS xmm1 {k1}, xmm2, xmm3/m32 | EVEX | AVX-512F | Multiplies scalar single precision (EVEX encoded with masking). |
| vmwrite | VMWRITE r64, r/m64 | VMX | VMX | Writes a field to the Virtual Machine Control Structure. |
| vmxoff | VMXOFF | VMX | VMX | Leaves VMX root operation. |
| vmxon | VMXON m64 | VMX | VMX | Enters VMX root operation (Host Mode). |
| vp2intersectd | VP2INTERSECTD k1+1, zmm2, zmm3/m512 | EVEX | AVX-512-VP2INTERSECT | Computes intersection of two ZMM registers into mask pair. |
| vp2intersectq | VP2INTERSECTQ k1+1, zmm2, zmm3/m512 | EVEX | AVX-512-VP2INTERSECT | Computes intersection of two ZMM registers into mask pair. |
| vp4dpwssd | VP4DPWSSD zmm1 {k1}, zmm2+3, m128 | EVEX | AVX-512-4VNNIW | Neural Net 4-way dot product. |
| vp4dpwssds | VP4DPWSSDS zmm1 {k1}, zmm2+3, m128 | EVEX | AVX-512-4VNNIW | Neural Net 4-way dot product with saturation. |
| vpabsd | VPABSD zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Computes absolute value of 32-bit integers. |
| vpabsq | VPABSQ zmm1 {k1}, zmm2/m512 | EVEX | AVX-512F | Computes absolute value of 64-bit integers. |
| vpaddb | VPADDB ymm1, ymm2, ymm3/m256 | VEX | AVX2 | Adds 32 bytes (256-bit). |
| vpaddd | VPADDD ymm1, ymm2, ymm3/m256 | VEX | AVX2 | Adds 8 integers (256-bit). |
| vpbroadcastb | VPBROADCASTB ymm1, xmm2/m8 | VEX | AVX2 | Broadcasts a byte from memory/register to all elements of YMM. |
| vpbroadcastd | VPBROADCASTD ymm1, xmm2/m32 | AVX2 | AVX2 | Loads one integer and replicates it to all YMM elements. |
| vpbroadcastq | VPBROADCASTQ ymm1, xmm2/m64 | VEX | AVX2 | Broadcasts a quadword to all elements of YMM. |
| vpbroadcastw | VPBROADCASTW ymm1, xmm2/m16 | VEX | AVX2 | Broadcasts a word to all elements of YMM. |
| vpclmulqdq | VPCLMULQDQ zmm1, zmm2, zmm3/m512, imm8 | EVEX | AVX-512-VPCLMULQDQ | Carry-less multiply on 512-bit vector. |
| vpcmov | VPCMOV xmm1, xmm2, xmm3, xmm4 | XOP | XOP | Bitwise conditional move based on selector. |
| vpcmpb | VPCMPB k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512BW | Compares bytes and stores result in k-register mask. |
| vpcmpd | VPCMPD k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Compares doublewords and stores result in k-register mask. |
| vpcmpq | VPCMPQ k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Compares quadwords and stores result in k-register mask. |
| vpcmpub | VPCMPUB k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512BW | Compares unsigned bytes and stores result in k-register. |
| vpcmpud | VPCMPUD k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Compares unsigned doublewords and stores result in k-register. |
| vpcmpuq | VPCMPUQ k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Compares unsigned quadwords and stores result in k-register. |
| vpcmpuw | VPCMPUW k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512BW | Compares unsigned words and stores result in k-register. |
| vpcmpw | VPCMPW k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512BW | Compares words and stores result in k-register mask. |
| vpcomb | VPCOMB xmm1, xmm2, xmm3/m128, imm8 | XOP | XOP | Compares bytes using immediate condition. |
| vpcompressb | VPCOMPRESSB m512 {k1}, zmm1 | EVEX | AVX-512-VBMI2 | Compresses active bytes from ZMM to memory. |