3DNow!

is a deprecated extension to the x86 instruction set developed by Advanced Micro Devices (AMD).

[1] However, the instruction set never gained much popularity, and AMD announced in August 2010 that support for 3DNow!

would be dropped in future AMD processors, except for two instructions, PREFETCH and PREFETCHW.

was developed at a time when 3D graphics were becoming mainstream in PC multimedia and games.

Realtime display of 3D graphics depended heavily on the host CPU's floating-point unit (FPU) to perform floating-point calculations, a task in which AMD's K6 processor was easily outperformed by its competitor, the Intel Pentium II.

instruction-set augmented the MMX SIMD registers to support common arithmetic operations (add/subtract/multiply) on single-precision (32-bit) floating-point data.

instead of the slower x87 FPU could execute up to four times faster, depending on the instruction mix.

technology contains 21 new instructions that support SIMD floating-point operations.

Later, Intel would add similar (but incompatible) instructions to the Pentium III, known as SSE (Streaming SIMD Extensions).

can be found in a few locations on the AMD website but the capitalization of "Enhanced" appears to be either purely grammatical or used for emphasis on processors that may or may not have these extensions (the most notable of which references a benchmark page for the K6-III-P that does not have these extensions).

[4] In AMD customer product literature, however, this segregation is less clear where the benefits of all 24 new instructions are credited to enhanced 3DNow!

[7] SSEMMX and MMX2 are also found in video filter documentation from the public domain sector.

Professional trade name, and was the first product in the Athlon family to support the complete SSE instruction set (for the total of: 21 original 3DNow!

This capability, known as horizontal in Intel terminology, was the major addition to the SSE3 instruction set.

with no explicit modifications, whereas SSE registers required explicit operating system support to properly save and restore the new XMM registers (via the added FXSAVE and FXRSTOR instructions.)

and SSE instructions to reduce register pressure, but in practice it is difficult to improve performance due to the instructions executing on shared functional units.