CPUID
AVX2
CPUID.(EAX=07H,ECX=0):EBX[5]
Instructions
138 mnemonics
Processors
Haswell, Broadwell, Skylake, Comet Lake, Cannon Lake, Ice Lake (client), Tiger Lake, Alder Lake, Arrow Lake, Panther Lake, Nova Lake, Skylake-SP, Cascade Lake, Cooper Lake, Ice Lake (server), Sapphire Rapids, Emerald Rapids, Granite Rapids, Diamond Rapids, Sierra Forest, Clearwater Forest, Knights Landing, Knights Mill, Zen, Zen+, Zen 2, Zen 3, Zen 4, Zen 5, Zen 6
Linux flag
avx2

AVX2 extended the integer instructions of SSE2 to SSE4.2 to 256-bit YMM registers and added operations that SSE lacked: gathers that load elements from a vector of addresses (VPGATHERDD and relatives), permutes across the two 128-bit lanes (VPERMD, VPERM2I128), shifts by a count per element (VPSLLVD), broadcasts, and masked loads and stores (VPMASKMOVD). Most 256-bit integer instructions still work within each 128-bit lane, like two SSE instructions side by side. AVX2 is part of x86-64-v3, the level that RHEL 10 requires.

Instructions

Mnemonics with at least one form in AVX2. Each page lists all forms of the mnemonic, including those of other extensions.
MnemonicSummaryForms
VBROADCASTI128Loads 128 bits of integer data from memory into both halves of a YMM register; AVX2.1
VBROADCASTSDCopies one double from memory or an XMM register to every element of a vector.1
VBROADCASTSSCopies one single from memory or an XMM register to every element of a vector.2
VEXTRACTI128Copies the 128-bit half of a YMM register that an immediate selects to an XMM register or memory; AVX2.2
VGATHERDPDLoads doubles from memory at addresses formed with a vector of 32-bit indices, for the elements a mask selects.2
VGATHERDPSLoads singles from memory at addresses formed with a vector of 32-bit indices, for the elements a mask selects.2
VGATHERQPDLoads doubles from memory at addresses formed with a vector of 64-bit indices, for the elements a mask selects.2
VGATHERQPSLoads singles from memory at addresses formed with a vector of 64-bit indices, for the elements a mask selects.2
VINSERTI128Copies the first source to a YMM register and replaces the half an immediate selects with 128 bits of an XMM register or memory; AVX2.2
VMOVNTDQALoads a vector from aligned memory with a non-temporal hint, which lets it read write-combining memory efficiently.1
VMPSADBWComputes, per 128-bit lane, word sums of absolute differences between a 4-byte block of the second source and eight sliding blocks of the first.2
VPABSBComputes the absolute value of packed signed bytes.2
VPABSDComputes the absolute value of packed signed doublewords.2
VPABSWComputes the absolute value of packed signed words.2
VPACKSSDWNarrows signed doublewords from two sources to words with signed saturation.2
VPACKSSWBNarrows signed words from two sources to bytes with signed saturation.2
VPACKUSDWNarrows signed doublewords from two sources to words with unsigned saturation.2
VPACKUSWBNarrows signed words from two sources to bytes with unsigned saturation.2
VPADDBAdds packed bytes, wrapping around on overflow.2
VPADDDAdds packed doublewords, wrapping around on overflow.2
VPADDQAdds packed quadwords, wrapping around on overflow.2
VPADDSBAdds packed signed bytes with signed saturation.2
VPADDSWAdds packed signed words with signed saturation.2
VPADDUSBAdds packed unsigned bytes with unsigned saturation.2
VPADDUSWAdds packed unsigned words with unsigned saturation.2
VPADDWAdds packed words, wrapping around on overflow.2
VPALIGNRConcatenates two sources in each 128-bit lane and extracts 16 bytes starting at a byte offset given by an immediate.2
VPANDComputes the bitwise AND of two XMM or YMM sources into a separate destination (YMM with AVX2).2
VPANDNComputes the bitwise AND of the inverted first source with the second, in XMM or YMM registers (YMM with AVX2).2
VPAVGBComputes the rounded average of packed unsigned bytes.2
VPAVGWComputes the rounded average of packed unsigned words.2
VPBLENDDPicks each doubleword from the first or the second source, as a bit of an immediate says; AVX2.4
VPBLENDVBPicks each byte from the first or the second source by the top bit of the matching byte of a fourth register operand.2
VPBLENDWPicks each word from the first or the second source by a bit of an immediate, the same eight bits for each 128-bit lane.2
VPBROADCASTBCopies one byte from a register or memory to every byte of a vector.4
VPBROADCASTDCopies one doubleword from a register or memory to every doubleword of a vector.4
VPBROADCASTQCopies one quadword from a register or memory to every quadword of a vector.4
VPBROADCASTWCopies one word from a register or memory to every word of a vector.4
VPCMPEQBCompares packed bytes for equality; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPEQDCompares packed doublewords for equality; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPEQQCompares packed quadwords for equality; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPEQWCompares packed words for equality; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPGTBTests packed signed bytes for greater than; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPGTDTests packed signed doublewords for greater than; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPGTQTests packed signed quadwords for greater than; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPCMPGTWTests packed signed words for greater than; the VEX form writes all-ones or zero elements, the EVEX form a mask register.2
VPERM2I128Builds each 128-bit half of a YMM result from either half of two integer sources, or zero, as an immediate selects; AVX2.2
VPERMDRearranges the doublewords of a vector across the whole register using an index vector.2
VPERMPDRearranges doubles across the whole register, controlled by an immediate or by an index vector.2
VPERMPSRearranges singles across the whole register using an index vector.2
VPERMQRearranges quadwords across the whole register, controlled by an immediate or by an index vector.2
VPGATHERDDLoads doublewords from memory at addresses formed with a vector of 32-bit indices, for the elements a mask selects.2
VPGATHERDQLoads quadwords from memory at addresses formed with a vector of 32-bit indices, for the elements a mask selects.2
VPGATHERQDLoads doublewords from memory at addresses formed with a vector of 64-bit indices, for the elements a mask selects.2
VPGATHERQQLoads quadwords from memory at addresses formed with a vector of 64-bit indices, for the elements a mask selects.2
VPHADDDAdds adjacent pairs of doublewords within each 128-bit lane of two sources, the first source's sums going low in the lane.2
VPHADDSWAdds adjacent pairs of signed words within each 128-bit lane with signed saturation, the first source's sums going low.2
VPHADDWAdds adjacent pairs of words within each 128-bit lane of two sources, the first source's sums going low in the lane.2
VPHSUBDSubtracts the odd doubleword from the even one in adjacent pairs within each 128-bit lane of two sources.2
VPHSUBSWSubtracts the odd signed word from the even one in adjacent pairs within each 128-bit lane, with signed saturation.2
VPHSUBWSubtracts the odd word from the even one in adjacent pairs within each 128-bit lane of two sources.2
VPMADDUBSWMultiplies unsigned bytes of the first source by signed bytes of the second and adds adjacent products into words with signed saturation.2
VPMADDWDMultiplies signed words and adds adjacent products into doublewords.2
VPMASKMOVDLoads or stores packed doublewords only where the top bit of the matching mask element is set; in Intel's manual, masked-off elements cannot fault.4
VPMASKMOVQLoads or stores packed quadwords only where the top bit of the matching mask element is set; in Intel's manual, masked-off elements cannot fault.4
VPMAXSBReturns the larger of each pair of signed bytes.2
VPMAXSDReturns the larger of each pair of signed doublewords.2
VPMAXSWReturns the larger of each pair of signed words.2
VPMAXUBReturns the larger of each pair of unsigned bytes.2
VPMAXUDReturns the larger of each pair of unsigned doublewords.2
VPMAXUWReturns the larger of each pair of unsigned words.2
VPMINSBReturns the smaller of each pair of signed bytes.2
VPMINSDReturns the smaller of each pair of signed doublewords.2
VPMINSWReturns the smaller of each pair of signed words.2
VPMINUBReturns the smaller of each pair of unsigned bytes.2
VPMINUDReturns the smaller of each pair of unsigned doublewords.2
VPMINUWReturns the smaller of each pair of unsigned words.2
VPMOVMSKBCopies the top bit of each byte of an XMM or YMM register into the low bits of a general-purpose register.1
VPMOVSXBDSign-extends packed bytes to doublewords.2
VPMOVSXBQSign-extends packed bytes to quadwords.2
VPMOVSXBWSign-extends packed bytes to words.2
VPMOVSXDQSign-extends packed doublewords to quadwords.2
VPMOVSXWDSign-extends packed words to doublewords.2
VPMOVSXWQSign-extends packed words to quadwords.2
VPMOVZXBDZero-extends packed bytes to doublewords.2
VPMOVZXBQZero-extends packed bytes to quadwords.2
VPMOVZXBWZero-extends packed bytes to words.2
VPMOVZXDQZero-extends packed doublewords to quadwords.2
VPMOVZXWDZero-extends packed words to doublewords.2
VPMOVZXWQZero-extends packed words to quadwords.2
VPMULDQMultiplies the signed low doublewords of each quadword into 64-bit products.2
VPMULHRSWMultiplies packed signed words as Q15 fixed-point numbers, rounding each product to a Q15 result.2
VPMULHUWMultiplies unsigned words and keeps the high 16 bits of each product.2
VPMULHWMultiplies signed words and keeps the high 16 bits of each product.2
VPMULLDMultiplies packed doublewords and keeps the low 32 bits of each product.2
VPMULLWMultiplies packed words and keeps the low 16 bits of each product.2
VPMULUDQMultiplies the unsigned low doublewords of each quadword into 64-bit products.2
VPORComputes the bitwise OR of two XMM or YMM sources into a separate destination (YMM with AVX2).2
VPSADBWSums the absolute differences of unsigned bytes over each group of eight, giving one 16-bit sum per quadword.2
VPSHUFBRearranges bytes within each 128-bit lane using an index byte per result, which zeroes the byte when its top bit is set.2
VPSHUFDRearranges doublewords within each 128-bit lane as an immediate selects.2
VPSHUFHWRearranges the upper four words of each 128-bit lane as an immediate selects.2
VPSHUFLWRearranges the lower four words of each 128-bit lane as an immediate selects.2
VPSIGNBNegates, zeroes or keeps each signed byte of the first source as the matching byte of the second is negative, zero or positive.2
VPSIGNDNegates, zeroes or keeps each doubleword of the first source as the matching one of the second is negative, zero or positive.2
VPSIGNWNegates, zeroes or keeps each signed word of the first source as the matching word of the second is negative, zero or positive.2
VPSLLDShifts doublewords left by one count from a register or an immediate.3
VPSLLDQShifts each 128-bit lane left by a number of bytes given by an immediate.1
VPSLLQShifts quadwords left by one count from a register or an immediate.3
VPSLLVDShifts each doubleword left by the count in the matching element of the second source.4
VPSLLVQShifts each quadword left by the count in the matching element of the second source.4
VPSLLWShifts words left by one count from a register or an immediate.3
VPSRADShifts doublewords right arithmetically by one count from a register or an immediate.3
VPSRAVDShifts each doubleword right arithmetically by the count in the matching element of the second source.4
VPSRAWShifts words right arithmetically by one count from a register or an immediate.3
VPSRLDShifts doublewords right logically by one count from a register or an immediate.3
VPSRLDQShifts each 128-bit lane right by a number of bytes given by an immediate.1
VPSRLQShifts quadwords right logically by one count from a register or an immediate.3
VPSRLVDShifts each doubleword right logically by the count in the matching element of the second source.4
VPSRLVQShifts each quadword right logically by the count in the matching element of the second source.4
VPSRLWShifts words right logically by one count from a register or an immediate.3
VPSUBBSubtracts packed bytes, wrapping around on overflow.2
VPSUBDSubtracts packed doublewords, wrapping around on overflow.2
VPSUBQSubtracts packed quadwords, wrapping around on overflow.2
VPSUBSBSubtracts packed signed bytes with signed saturation.2
VPSUBSWSubtracts packed signed words with signed saturation.2
VPSUBUSBSubtracts packed unsigned bytes with unsigned saturation.2
VPSUBUSWSubtracts packed unsigned words with unsigned saturation.2
VPSUBWSubtracts packed words, wrapping around on overflow.2
VPUNPCKHBWInterleaves the high bytes of each 128-bit lane of two sources.2
VPUNPCKHDQInterleaves the high doublewords of each 128-bit lane of two sources.2
VPUNPCKHQDQInterleaves the high quadwords of each 128-bit lane of two sources.2
VPUNPCKHWDInterleaves the high words of each 128-bit lane of two sources.2
VPUNPCKLBWInterleaves the low bytes of each 128-bit lane of two sources.2
VPUNPCKLDQInterleaves the low doublewords of each 128-bit lane of two sources.2
VPUNPCKLQDQInterleaves the low quadwords of each 128-bit lane of two sources.2
VPUNPCKLWDInterleaves the low words of each 128-bit lane of two sources.2
VPXORComputes the bitwise XOR of two XMM or YMM sources into a separate destination (YMM with AVX2).2

CPUID and processors

XED splits AVX2 into 2 ISA sets. Software can use a form when the processor reports every CPUID bit of one alternative of the form's ISA set.

XED ISA sets of AVX2. Alternatives are separated by “or”; processors follow XED’s chip model, whose AMD processors end with Zen 2, and the CPU data of this site for Zen 3 to Zen 6.

Sources

  1. Intel XED v2026.08.23 (commit 0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model.
  2. The CPU data of x86-64.net: Zen 3 to Zen 6, from GCC’s -march feature sets and AMD’s Processor Programming References, which the page of each processor cites.
  3. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026)

The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.