CPUID
See the ISA sets below.
Instructions
25 mnemonics
Processors
K10 (Family 10h)

3DNow! computes with two single-precision values in an MMX register, so it shares the MMX registers and needs FEMMS or EMMS before x87 code runs again. Its encoding is unusual: every instruction but FEMMS is 0F 0F with a ModR/M byte, and a byte after the operands selects the operation, which the encoding column writes last. The reciprocal and reciprocal square root come as an approximation (PFRCP, PFRSQRT) and Newton-Raphson steps that refine it (PFRCPIT1, PFRCPIT2). AMD’s extensions to 3DNow!, such as PSWAPD, have a CPUID bit of their own (3DNowExt). PREFETCH and PREFETCHW, which came with 3DNow!, outlived it.

Instructions

Mnemonics with at least one form in 3DNow!. Each page lists all forms of the mnemonic, including those of other extensions.
MnemonicSummaryForms
FEMMSMarks every x87 register empty at the end of 3DNow! or MMX code, exactly as EMMS does; AMD keeps it for older software.1
PAVGUSBComputes the averages of packed unsigned bytes of two MMX operands, rounded up; 3DNow!.2
PF2IDConverts two packed singles of an MMX register or memory to signed doublewords, saturating out-of-range values; 3DNow!.2
PF2IWConverts two packed singles to signed words, saturated and sign-extended to doublewords; AMD's 3DNow! extensions.2
PFACCAdds the two singles of each MMX operand, the first operand's sum going to the low half of the result; 3DNow!.2
PFADDAdds the two packed singles of two MMX operands; 3DNow!.2
PFCMPEQCompares the packed singles of two MMX operands for equality, into all-ones or all-zeros doublewords; 3DNow!.2
PFCMPGETests the packed singles of two MMX operands for greater than or equal, into all-ones or all-zeros doublewords; 3DNow!.2
PFCMPGTTests the packed singles of two MMX operands for greater than, into all-ones or all-zeros doublewords; 3DNow!.2
PFMAXReturns the larger of each pair of packed singles of two MMX operands; 3DNow!.2
PFMINReturns the smaller of each pair of packed singles of two MMX operands; 3DNow!.2
PFMULMultiplies the two packed singles of two MMX operands; 3DNow!.2
PFNACCSubtracts the high single from the low one within each MMX operand, the first operand's result going low; 3DNow! extensions.2
PFPNACCSubtracts the high single from the low one of the first operand and adds the singles of the second; 3DNow! extensions.2
PFRCPApproximates the reciprocal of the low single of an MMX register or memory, into both halves of the destination; 3DNow!.2
PFRCPIT1Performs the first Newton-Raphson step that refines a PFRCP reciprocal approximation; 3DNow!.2
PFRCPIT2Performs the second and last Newton-Raphson step that refines a PFRCP or PFRSQRT approximation; 3DNow!.2
PFRSQIT1Performs the first Newton-Raphson step that refines a PFRSQRT reciprocal square root approximation; 3DNow!.2
PFRSQRTApproximates the reciprocal square root of the low single of an MMX register or memory, into both halves; 3DNow!.2
PFSUBSubtracts the packed singles of the second MMX operand from those of the first; 3DNow!.2
PFSUBRSubtracts the packed singles of the first MMX operand from those of the second, into the first; 3DNow!.2
PI2FDConverts two packed signed doublewords of an MMX register or memory to singles; 3DNow!.2
PI2FWConverts the signed words in the low halves of two doublewords to packed singles; AMD's 3DNow! extensions.2
PMULHRWMultiplies packed signed words of two MMX operands and keeps the high 16 bits of each product, rounded; 3DNow!.2
PSWAPDSwaps the two doublewords of an MMX register or memory into another MMX register; AMD's 3DNow! extensions.2

CPUID and processors

XED splits 3DNow! 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 3DNow!. 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
3DNOW

3DNow
CPUID.80000001H:EDX[31] 3DNow

K10 (Family 10h)
3DNOW_EXT

3DNowExt
CPUID.80000001H:EDX[30] 3DNowExt

K10 (Family 10h)

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 5: 64-Bit Media and x87 Floating-Point Instructions (26569, rev. 3.16, November 2021), Wayback Machine copy of AMD's PDF
  3. AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions (24594, rev. 3.36, March 2024), 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.