CPUID
XOP
CPUID.80000001H:ECX[11]
Instructions
55 mnemonics
Processors
Bulldozer, Piledriver, Excavator, Steamroller (from the CPU data, which follows GCC)
Linux flag
xop

Instructions

Mnemonics with at least one form in XOP. Each page lists all forms of the mnemonic, including those of other extensions.
MnemonicSummaryForms
VFRCZPDExtracts the fractional part of each packed double of an XMM or YMM operand, exactly; XOP.4
VFRCZPSExtracts the fractional part of each packed single of an XMM or YMM operand, exactly; XOP.4
VFRCZSDExtracts the fractional part of the low double of an XMM register or memory, exactly; XOP.2
VFRCZSSExtracts the fractional part of the low single of an XMM register or memory, exactly; XOP.2
VPCMOVTakes each bit from the first or the second source as the matching bit of a third source is set or clear; XOP.6
VPCOMBCompares packed signed bytes by the predicate an immediate selects, such as less than (VPCOMLTB), into all-ones or all-zeros bytes; XOP.2
VPCOMDCompares packed signed doublewords by the predicate an immediate selects, into all-ones or all-zeros doublewords; XOP.2
VPCOMQCompares packed signed quadwords by the predicate an immediate selects, into all-ones or all-zeros quadwords; XOP.2
VPCOMUBCompares packed unsigned bytes by the predicate an immediate selects, into all-ones or all-zeros bytes; XOP.2
VPCOMUDCompares packed unsigned doublewords by the predicate an immediate selects, into all-ones or all-zeros doublewords; XOP.2
VPCOMUQCompares packed unsigned quadwords by the predicate an immediate selects, into all-ones or all-zeros quadwords; XOP.2
VPCOMUWCompares packed unsigned words by the predicate an immediate selects, into all-ones or all-zeros words; XOP.2
VPCOMWCompares packed signed words by the predicate an immediate selects, into all-ones or all-zeros words; XOP.2
VPERMIL2PDPicks each double from either of two sources, or zero, by selectors in a third source and an immediate; XOP.6
VPERMIL2PSPicks each single from either of two sources, or zero, by selectors in a third source and an immediate; XOP.6
VPHADDBDAdds each group of four signed bytes into a signed doubleword; XOP.2
VPHADDBQAdds each group of eight signed bytes into a signed quadword; XOP.2
VPHADDBWAdds each pair of adjacent signed bytes into a signed word; XOP.2
VPHADDDQAdds each pair of adjacent signed doublewords into a signed quadword; XOP.2
VPHADDUBDAdds each group of four unsigned bytes into a doubleword; XOP.2
VPHADDUBQAdds each group of eight unsigned bytes into a quadword; XOP.2
VPHADDUBWAdds each pair of adjacent unsigned bytes into a word; XOP.2
VPHADDUDQAdds each pair of adjacent unsigned doublewords into a quadword; XOP.2
VPHADDUWDAdds each pair of adjacent unsigned words into a doubleword; XOP.2
VPHADDUWQAdds each group of four unsigned words into a quadword; XOP.2
VPHADDWDAdds each pair of adjacent signed words into a signed doubleword; XOP.2
VPHADDWQAdds each group of four signed words into a signed quadword; XOP.2
VPHSUBBWSubtracts the high signed byte from the low one of each word, into signed words; XOP.2
VPHSUBDQSubtracts the high signed doubleword from the low one of each quadword, into signed quadwords; XOP.2
VPHSUBWDSubtracts the high signed word from the low one of each doubleword, into signed doublewords; XOP.2
VPMACSDDMultiplies packed signed doublewords and adds a third source to the products, keeping the low 32 bits without saturation; XOP.2
VPMACSDQHMultiplies the odd signed doublewords of two sources into quadwords and adds the quadwords of a third source; XOP.2
VPMACSDQLMultiplies the even signed doublewords of two sources into quadwords and adds the quadwords of a third source; XOP.2
VPMACSSDDMultiplies packed signed doublewords and adds a third source to the products, with signed saturation to doublewords; XOP.2
VPMACSSDQHMultiplies the odd signed doublewords of two sources and adds a third source's quadwords, with signed saturation; XOP.2
VPMACSSDQLMultiplies the even signed doublewords of two sources and adds a third source's quadwords, with signed saturation; XOP.2
VPMACSSWDMultiplies the odd signed words of two sources and adds a third source's doublewords, with signed saturation; XOP.2
VPMACSSWWMultiplies packed signed words and adds a third source's words to the products, with signed saturation; XOP.2
VPMACSWDMultiplies the odd signed words of two sources and adds a third source's doublewords, without saturation; XOP.2
VPMACSWWMultiplies packed signed words and adds a third source's words to the products, keeping the low 16 bits; XOP.2
VPMADCSSWDMultiplies packed signed words, adds adjacent products and a third source's doublewords, with signed saturation; XOP.2
VPMADCSWDMultiplies packed signed words, adds adjacent products and a third source's doublewords, without saturation; XOP.2
VPPERMPicks each byte of the result from 32 bytes of two sources and optionally inverts, reverses or replaces it, by selectors in a third; XOP.3
VPROTBRotates each byte left or right by a signed count from an immediate or the matching byte of a register or memory; XOP.5
VPROTDRotates each doubleword left or right by a signed count from an immediate or a register or memory; XOP.5
VPROTQRotates each quadword left or right by a signed count from an immediate or a register or memory; XOP.5
VPROTWRotates each word left or right by a signed count from an immediate or a register or memory; XOP.5
VPSHABShifts each signed byte arithmetically left or right by the signed count in the matching byte of a second source; XOP.3
VPSHADShifts each signed doubleword arithmetically left or right by a signed count per element; XOP.3
VPSHAQShifts each signed quadword arithmetically left or right by a signed count per element; XOP.3
VPSHAWShifts each signed word arithmetically left or right by a signed count per element; XOP.3
VPSHLBShifts each byte logically left or right by the signed count in the matching byte of a second source; XOP.3
VPSHLDShifts each doubleword logically left or right by a signed count per element; XOP.3
VPSHLQShifts each quadword logically left or right by a signed count per element; XOP.3
VPSHLWShifts each word logically left or right by a signed count per element; XOP.3

CPUID and processors

XED splits XOP 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 XOP. 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.
ISA setCPUIDProcessors
XOP

XOP
CPUID.80000001H:ECX[11] XOP

Bulldozer, Piledriver

Sources

  1. Intel XED v2026.08.23 (commit 0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model.
  2. AMD64 Architecture Programmer's Manual, Volume 4: 128-Bit and 256-Bit Media Instructions (26568, rev. 3.25, November 2021), Wayback Machine copy of AMD's PDF

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.