AVX2 Instructions
28 x86 instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| vbroadcasti128 | VBROADCASTI128 ymm1, m128 | VEX | Broadcasts 128-bit integer block to YMM. |
| vbroadcastsd | VBROADCASTSD ymm1, m64 | VEX | Broadcasts a double to all elements of YMM. |
| vextracti128 | VEXTRACTI128 xmm1/m128, ymm2, imm8 | VEX | Extracts 128-bits of integer data from YMM. |
| vgatherdpd | VGATHERDPD ymm1, [base+xmm_idx*scale], ymm_mask | VEX | Loads doubles from non-contiguous memory using indices. |
| vgatherdps | VGATHERDPS ymm1, [base+ymm_idx*scale], ymm_mask | VEX | Loads floats from non-contiguous memory using indices. |
| vinserti128 | VINSERTI128 ymm1, ymm2, xmm3/m128, imm8 | VEX | Inserts 128-bits of integer data into a YMM register. |
| vpaddb | VPADDB ymm1, ymm2, ymm3/m256 | VEX | Adds 32 bytes (256-bit). |
| vpaddd | VPADDD ymm1, ymm2, ymm3/m256 | VEX | Adds 8 integers (256-bit). |
| vpbroadcastb | VPBROADCASTB ymm1, xmm2/m8 | VEX | Broadcasts a byte from memory/register to all elements of YMM. |
| vpbroadcastd | VPBROADCASTD ymm1, xmm2/m32 | AVX2 | Loads one integer and replicates it to all YMM elements. |
| vpbroadcastq | VPBROADCASTQ ymm1, xmm2/m64 | VEX | Broadcasts a quadword to all elements of YMM. |
| vpbroadcastw | VPBROADCASTW ymm1, xmm2/m16 | VEX | Broadcasts a word to all elements of YMM. |
| vperm2i128 | VPERM2I128 ymm1, ymm2, ymm3/m256, imm8 | VEX | Shuffles two 128-bit lanes between registers. |
| vpermd | VPERMD ymm1, ymm2, ymm3/m256 | VEX | Full permutation of 8 integers using indices from a register. |
| vpermps | VPERMPS ymm1, ymm2, ymm3/m256 | VEX | Full permutation of 8 floats using indices. |
| vpermq | VPERMQ ymm1, ymm2/m256, imm8 | VEX | Shuffles quadwords within 256-bit lanes using immediate. |
| vpgatherdd | VPGATHERDD ymm1, [base+ymm_idx*scale], ymm_mask | VEX | Gathers 32-bit integers using 32-bit indices. |
| vpgatherdq | VPGATHERDQ ymm1, [base+xmm_idx*scale], ymm_mask | VEX | Gathers 64-bit integers using 32-bit indices. |
| vpgatherqd | VPGATHERQD xmm1, [base+ymm_idx*scale], xmm_mask | VEX | Gathers 32-bit integers using 64-bit indices. |
| vpgatherqq | VPGATHERQQ ymm1, [base+ymm_idx*scale], ymm_mask | VEX | Gathers 64-bit integers using 64-bit indices. |
| vpmulld | VPMULLD ymm1, ymm2, ymm3/m256 | VEX | Multiplies 8 integers (256-bit). |
| vpshufb | VPSHUFB ymm1, ymm2, ymm3/m256 | VEX | Shuffles 32 bytes based on indices. |
| vpsllvd | VPSLLVD ymm1, ymm2, ymm3/m256 | AVX2 | Shifts doublewords left by individual counts. |
| vpsllvq | VPSLLVQ ymm1, ymm2, ymm3/m256 | AVX2 | Shifts quadwords left by individual counts. |
| vpsravd | VPSRAVD ymm1, ymm2, ymm3/m256 | AVX2 | Shifts doublewords right arithmetic by individual counts. |
| vpsrlvd | VPSRLVD ymm1, ymm2, ymm3/m256 | AVX2 | Shifts doublewords right logical by individual counts. |
| vpsrlvq | VPSRLVQ ymm1, ymm2, ymm3/m256 | AVX2 | Shifts quadwords right logical by individual counts. |
| vpsubd | VPSUBD ymm1, ymm2, ymm3/m256 | VEX | Subtracts 8 integers (256-bit). |