CPUID
AVX
CPUID.01H:ECX[28]
Instructions
253 mnemonics
Processors
Sandy Bridge, Ivy Bridge, 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, Bulldozer, Piledriver, Zen, Zen+, Zen 2, Zen 3, Zen 4, Zen 5, Zen 6
Linux flag
avx

AVX doubled the width of the vector registers: the 16 YMM registers hold 256 bits, and the XMM registers are their low halves. Its VEX prefix changed how vector instructions are written. They take three operands, so the destination need not be one of the sources, most memory operands need no alignment, and a VEX instruction that writes an XMM register clears the rest of the YMM register. Most SSE instructions have a VEX form with a V in front of their name, such as VADDPS, and the floating-point ones reach 256 bits; integer instructions stayed at 128 bits until AVX2.

Using AVX needs the operating system to save the YMM state: it enables it in XCR0, which programs check with XGETBV together with the OSXSAVE bit (see XSAVE). Mixing VEX and legacy SSE code without VZEROUPPER in between costs time on many processors. AVX is part of x86-64-v3.

Instructions

Mnemonics with at least one form in AVX. Each page lists all forms of the mnemonic, including those of other extensions.
MnemonicSummaryForms
VADDPDAdds packed doubles.4
VADDPSAdds packed singles.4
VADDSDAdds the low doubles; the other elements come from the first source.2
VADDSSAdds the low singles; the other elements come from the first source.2
VADDSUBPDSubtracts in the even-numbered doubles and adds in the odd-numbered ones of two XMM or YMM sources, into a separate destination.4
VADDSUBPSSubtracts in the even-numbered singles and adds in the odd-numbered ones of two XMM or YMM sources, into a separate destination.4
VANDNPDComputes the bitwise AND of the inverted first source with the second, as packed doubles.4
VANDNPSComputes the bitwise AND of the inverted first source with the second, as packed singles.4
VANDPDComputes the bitwise AND of packed doubles.4
VANDPSComputes the bitwise AND of packed singles.4
VBLENDPDPicks each double from the first or the second source, as a bit of an immediate says, into a separate XMM or YMM destination.4
VBLENDPSPicks each single from the first or the second source, as a bit of an immediate says, into a separate XMM or YMM destination.4
VBLENDVPDPicks each double from the first or the second source by the sign bit of the matching element of a fourth register operand.4
VBLENDVPSPicks each single from the first or the second source by the sign bit of the matching element of a fourth register operand.4
VBROADCASTF128Loads 128 bits of floating-point data from memory into both halves of a YMM register.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
VCMPPDCompares packed doubles with one of 32 predicates chosen by an immediate; the VEX form writes all-ones or zero elements, the EVEX form a mask register.4
VCMPPSCompares packed singles with one of 32 predicates chosen by an immediate; the VEX form writes all-ones or zero elements, the EVEX form a mask register.4
VCMPSDCompares the low doubles with one of 32 predicates an immediate selects, into an all-ones or zero element (VEX) or a mask register (EVEX).2
VCMPSSCompares the low singles with one of 32 predicates an immediate selects, into an all-ones or zero element (VEX) or a mask register (EVEX).2
VCOMISDCompares the low doubles and sets ZF, PF and CF, clearing OF, SF and AF; any NaN signals an invalid exception.2
VCOMISSCompares the low singles and sets ZF, PF and CF, clearing OF, SF and AF; any NaN signals an invalid exception.2
VCVTDQ2PDConverts packed signed doublewords to doubles.4
VCVTDQ2PSConverts packed signed doublewords to singles.4
VCVTPD2DQConverts packed doubles to signed doublewords, rounding as MXCSR or the instruction selects.4
VCVTPD2PSConverts packed doubles to singles, rounding as MXCSR or the instruction selects.4
VCVTPS2DQConverts packed singles to signed doublewords, rounding as MXCSR or the instruction selects.4
VCVTPS2PDConverts packed singles to doubles, which is exact.4
VCVTSD2SIConverts the low double to a signed 32- or 64-bit integer in a general-purpose register, rounding as MXCSR or the instruction selects.4
VCVTSD2SSConverts the low double of the second source to single, rounding as MXCSR or the instruction selects; the other elements come from the first source.2
VCVTSI2SDConverts a signed 32- or 64-bit integer to double in the low element; the other elements come from the first source.4
VCVTSI2SSConverts a signed 32- or 64-bit integer to single in the low element; the other elements come from the first source.4
VCVTSS2SDConverts the low single of the second source to double, which is exact; the other elements come from the first source.2
VCVTSS2SIConverts the low single to a signed 32- or 64-bit integer in a general-purpose register, rounding as MXCSR or the instruction selects.4
VCVTTPD2DQConverts packed doubles to signed doublewords, truncating toward zero.4
VCVTTPS2DQConverts packed singles to signed doublewords, truncating toward zero.4
VCVTTSD2SIConverts the low double to a signed 32- or 64-bit integer in a general-purpose register, truncating toward zero.4
VCVTTSS2SIConverts the low single to a signed 32- or 64-bit integer in a general-purpose register, truncating toward zero.4
VDIVPDDivides packed doubles.4
VDIVPSDivides packed singles.4
VDIVSDDivides the low doubles; the other elements come from the first source.2
VDIVSSDivides the low singles; the other elements come from the first source.2
VDPPDComputes a dot product of two packed doubles, with an immediate choosing which products to add and where the sum goes.2
VDPPSComputes a dot product of the singles in each 128-bit lane, with an immediate choosing which products to add and where the sums go.4
VEXTRACTF128Copies the 128-bit half of a YMM register that an immediate selects to an XMM register or memory.2
VEXTRACTPSCopies the single that an immediate selects from an XMM register to a general-purpose register or memory.2
VHADDPDAdds the pair of doubles within each 128-bit lane of two sources, the first source's sums going to the even positions.4
VHADDPSAdds adjacent pairs of singles within each 128-bit lane of two sources, the first source's two sums going low in the lane.4
VHSUBPDSubtracts the high double from the low one within each 128-bit lane of two sources, the first source's results going to the even positions.4
VHSUBPSSubtracts the odd single from the even one in adjacent pairs within each 128-bit lane, the first source's results going low.4
VINSERTF128Copies the first source to a YMM register and replaces the half an immediate selects with 128 bits from an XMM register or memory.2
VINSERTPSInserts a single from a register or memory into an XMM register at the position an immediate gives, and can zero other elements.2
VLDDQULoads 128 or 256 unaligned bits like VMOVDQU, but may read more bytes around them, for loads that cross cache lines.2
VLDMXCSRLoads the MXCSR register, the SSE control and status bits, from memory; the VEX form of LDMXCSR.1
VMASKMOVDQUStores the bytes of an XMM register whose mask byte has its top bit set to [RDI], non-temporally; the VEX form of MASKMOVDQU.1
VMASKMOVPDLoads or stores packed doubles only where the sign bit of the matching mask element is set; in Intel's manual, masked-off elements cannot fault.4
VMASKMOVPSLoads or stores packed singles only where the sign bit of the matching mask element is set; in Intel's manual, masked-off elements cannot fault.4
VMAXPDReturns the larger of each pair of packed doubles, or the second operand if either is NaN or both are zero.4
VMAXPSReturns the larger of each pair of packed singles, or the second operand if either is NaN or both are zero.4
VMAXSDReturns the larger of the low doubles, or the second operand if either is NaN or both are zero; the other elements come from the first source.2
VMAXSSReturns the larger of the low singles, or the second operand if either is NaN or both are zero; the other elements come from the first source.2
VMINPDReturns the smaller of each pair of packed doubles, or the second operand if either is NaN or both are zero.4
VMINPSReturns the smaller of each pair of packed singles, or the second operand if either is NaN or both are zero.4
VMINSDReturns the smaller of the low doubles, or the second operand if either is NaN or both are zero; the other elements come from the first source.2
VMINSSReturns the smaller of the low singles, or the second operand if either is NaN or both are zero; the other elements come from the first source.2
VMOVAPDMoves packed doubles between registers and memory that must be aligned to the vector size.8
VMOVAPSMoves packed singles between registers and memory that must be aligned to the vector size.8
VMOVDMoves 32 bits between an XMM register and a general-purpose register or memory, zeroing the rest of an XMM destination; AVX10.2 adds an XMM-to-XMM form.4
VMOVDDUPDuplicates each even-numbered double into the next odd position.4
VMOVDQAMoves 128 or 256 bits of integer data between vector registers and memory, which must be aligned to the vector size.8
VMOVDQUMoves 128 or 256 bits of integer data between vector registers and memory without an alignment requirement.8
VMOVHLPSMoves the high two singles of the second source into the low half of the result, the high half coming from the first source.1
VMOVHPDLoads a double from memory into the high half of an XMM register, or stores the high double to memory.2
VMOVHPSLoads two singles from memory into the high half of an XMM register, or stores the high two to memory.2
VMOVLHPSMoves the low two singles of the second source into the high half of the result, the low half coming from the first source.1
VMOVLPDLoads a double from memory into the low half of an XMM register, or stores the low double to memory.2
VMOVLPSLoads two singles from memory into the low half of an XMM register, or stores the low two to memory.2
VMOVMSKPDCopies the sign bits of the packed doubles of an XMM or YMM register into the low bits of a general-purpose register.2
VMOVMSKPSCopies the sign bits of the packed singles of an XMM or YMM register into the low bits of a general-purpose register.2
VMOVNTDQStores an integer vector to aligned memory with a non-temporal hint that avoids polluting the caches.2
VMOVNTDQALoads a vector from aligned memory with a non-temporal hint, which lets it read write-combining memory efficiently.1
VMOVNTPDStores packed doubles to aligned memory with a non-temporal hint that avoids polluting the caches.2
VMOVNTPSStores packed singles to aligned memory with a non-temporal hint that avoids polluting the caches.2
VMOVQMoves a quadword between an XMM register and a general-purpose register, memory or another XMM register, zeroing the rest of a vector destination.8
VMOVSDMoves the low double between XMM registers or to and from memory; a load zeroes the rest of the register.4
VMOVSHDUPDuplicates each odd-numbered single into the even position below it.4
VMOVSLDUPDuplicates each even-numbered single into the odd position above it.4
VMOVSSMoves the low single between XMM registers or to and from memory; a load zeroes the rest of the register.4
VMOVUPDMoves packed doubles between registers and memory without an alignment requirement.8
VMOVUPSMoves packed singles between registers and memory without an alignment requirement.8
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
VMULPDMultiplies packed doubles.4
VMULPSMultiplies packed singles.4
VMULSDMultiplies the low doubles; the other elements come from the first source.2
VMULSSMultiplies the low singles; the other elements come from the first source.2
VORPDComputes the bitwise OR of packed doubles.4
VORPSComputes the bitwise OR of packed singles.4
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
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
VPCLMULQDQCarry-less multiplies one quadword of each source, chosen by an immediate, into a 128-bit product in each 128-bit lane.2
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
VPCMPESTRICompares two strings of explicit lengths in EAX and EDX (RAX and RDX with VEX.W1) as an immediate says, returning an index in ECX.4
VPCMPESTRMCompares two strings of explicit lengths in EAX and EDX (RAX and RDX with VEX.W1) as an immediate says, returning a mask in XMM0.4
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
VPCMPISTRICompares two zero-terminated strings in XMM registers as an immediate says, returning an index in ECX; VEX form.4
VPCMPISTRMCompares two zero-terminated strings in XMM registers as an immediate says, returning a mask in XMM0; VEX form.2
VPERM2F128Builds each 128-bit half of a YMM result from either half of two sources, or zero, as an immediate selects.2
VPERMILPDRearranges doubles within each 128-bit lane, controlled by an immediate or by a vector.8
VPERMILPSRearranges singles within each 128-bit lane, controlled by an immediate or by a vector.8
VPEXTRBCopies the byte selected by an immediate from an XMM register to a general-purpose register or memory.2
VPEXTRDCopies the doubleword selected by an immediate from an XMM register to a general-purpose register or memory.2
VPEXTRQCopies the quadword selected by an immediate from an XMM register to a general-purpose register or memory.2
VPEXTRWCopies the word selected by an immediate from an XMM register to a general-purpose register or memory.3
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
VPHMINPOSUWFinds the smallest unsigned word of an XMM operand and returns it with its index in the low two words; VEX form.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
VPINSRBInserts a byte from a register or memory into an XMM register at the position an immediate gives.2
VPINSRDInserts a doubleword from a register or memory into an XMM register at the position an immediate gives.2
VPINSRQInserts a quadword from a register or memory into an XMM register at the position an immediate gives.2
VPINSRWInserts a word from a register or memory into an XMM register at the position an immediate gives.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
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
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
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
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
VPTESTSets ZF if the AND of two XMM or YMM operands is all zeros and CF if the AND of the inverted first with the second is.4
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
VRCPPSApproximates the reciprocals of packed singles in an XMM or YMM register, with a relative error of at most 1.5 times 2^-12.4
VRCPSSApproximates the reciprocal of the low single to within 1.5 times 2^-12; the other elements come from the first source.2
VROUNDPDRounds packed doubles in an XMM or YMM register to integral values, with the rounding mode of an immediate or MXCSR.4
VROUNDPSRounds packed singles in an XMM or YMM register to integral values, with the rounding mode of an immediate or MXCSR.4
VROUNDSDRounds the low double of the second source to an integral value, by an immediate or MXCSR; the upper half comes from the first.2
VROUNDSSRounds the low single of the second source to an integral value, by an immediate or MXCSR; the rest comes from the first.2
VRSQRTPSApproximates the reciprocal square roots of packed singles in an XMM or YMM register, to within 1.5 times 2^-12.4
VRSQRTSSApproximates the reciprocal square root of the low single to within 1.5 times 2^-12; the other elements come from the first source.2
VSHUFPDPicks doubles from the two sources for each position within each 128-bit lane, as an immediate selects.4
VSHUFPSPicks singles from the two sources for each position within each 128-bit lane, as an immediate selects.4
VSQRTPDComputes the square root of packed doubles.4
VSQRTPSComputes the square root of packed singles.4
VSQRTSDComputes the square root of the low double of the second source; the other elements come from the first source.2
VSQRTSSComputes the square root of the low single of the second source; the other elements come from the first source.2
VSTMXCSRStores the MXCSR register, the SSE control and status bits, to memory; the VEX form of STMXCSR.1
VSUBPDSubtracts packed doubles.4
VSUBPSSubtracts packed singles.4
VSUBSDSubtracts the low doubles; the other elements come from the first source.2
VSUBSSSubtracts the low singles; the other elements come from the first source.2
VTESTPDSets ZF and CF like VPTEST, but from the sign bits of the packed doubles alone.4
VTESTPSSets ZF and CF like VPTEST, but from the sign bits of the packed singles alone.4
VUCOMISDCompares the low doubles and sets ZF, PF and CF, clearing OF, SF and AF; only a signaling NaN raises an invalid exception.2
VUCOMISSCompares the low singles and sets ZF, PF and CF, clearing OF, SF and AF; only a signaling NaN raises an invalid exception.2
VUNPCKHPDInterleaves the high doubles of each 128-bit lane of two sources.4
VUNPCKHPSInterleaves the high singles of each 128-bit lane of two sources.4
VUNPCKLPDInterleaves the low doubles of each 128-bit lane of two sources.4
VUNPCKLPSInterleaves the low singles of each 128-bit lane of two sources.4
VXORPDComputes the bitwise XOR of packed doubles.4
VXORPSComputes the bitwise XOR of packed singles.4
VZEROALLZeroes vector registers 0 to 15 (0 to 7 outside 64-bit mode) in full.1
VZEROUPPERZeroes the bits above 127 of vector registers 0 to 15, which compilers do before running or calling code that may use legacy SSE.1

CPUID and processors

XED splits AVX into 1 ISA set. 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 AVX. 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)
  4. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 1 (253665-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.