AMD 3DNow! instructions finally extinct as LLVM compiler drops support

AMD K6 and FX-8350
(Image credit: AMD)

AMD’s near-ancient 3DNow! instructions have faded even further into obscurity. Open-source compiler LLVM is finally removing support for the set of instructions that hasn’t been supported by AMD’s CPUs since 2011.

The 3DNow! instruction set was introduced in 1998 as a competitor to Intel’s MMX. It added Single Instruction, Multiple Data (SIMD) instructions to AMD’s base x86 instruction set, which helped the CPUs do vector processing of floating-point operations using vector registers.

AMD replaced 3DNow! with the newer SSE equivalents in 2011 and stopped including that feature flag bit beginning with the K10 Bulldozer CPUs. It did take some time for compilers to start dropping support for the instruction set, though, since the CPUs remained in use for quite some time.

In 2021, Linux retired the instruction set from its kernel, but LLVM maintained support long after everyone else dropped it. The developers behind the LLVM compiler also work to remove MMX types and instructions from the tool.

A commit for LLVM 19, expected to be released in September or October, confirmed the impending removal.

“This set of instructions was only supported by AMD chips starting in the K6-2 (introduced 1998), and before the “Bulldozer” family (2011). They were never much used, as they were effectively superseded by the more-widely-implemented SSE (first implemented on the AMD side in Athlon XP in 2001).

This is being done as a predecessor towards general removal of MMX register usage. Since there is almost no usage of the 3DNow! intrinsics, and no modern hardware even implements them, simple removal seems like the best option.”

The AMD 3DNow! instructions were popular in the late 90s and early 2000s for improving gaming, video playback, and Adobe Photoshop workflows. Then, Intel released the SSE instructions, which became more dominant overall. When Intel released SSE2, AMD adopted it and dropped its older SIMD instruction set.

Developers who need to write for old AMD processors can still use 3DNow! instructions in Assembly, including inline Assembly code with LLVM. Other than that, anything related to 3DNow! should be considered deprecated and no longer used.

Jeff Butts
Contributing Writer

Jeff Butts has been covering tech news for more than a decade, and his IT experience predates the internet. Yes, he remembers when 9600 baud was “fast.” He especially enjoys covering DIY and Maker topics, along with anything on the bleeding edge of technology.

  • usertests
    I have a Llano APU that supports this. My 3D graphics are safe.
    Reply
  • DS426
    Oh yeah, AMD K6-2... that was the first CPU that I used when my dad taught me how to build a PC way back when. :) 380 MHz if I recall?
    Seems to have also intentionally or unintentionally planted a spirit of underdog enthusiasm in me ever since.

    Anyways, I imagine everyone expect for maybe one or two yahoos in the Universe are safe with 3DNow! being dropped. Seemed like a neatly marketed instruction way back when, even if it wasn't nearly implemented as much as Commander Intel's SSE instruction line. Gaming was more of a shock and awe thing for me back then -- if I could even play the game (if it would run, have sound, and have enough playable FPS), it was awesome.
    Reply