LLVM Compiler Finally Ends Support For AMD's 3DNow!
The open-source LLVM compiler today dropped support for AMD's long forgotten 3DNow! instructions.
The 3DNow! SIMD extension has been deprecated for about a decade and a half and born during the K6-2 days. 3DNow! hasn't even been found on AMD processors since the Bulldozer era and now in 2024 the LLVM compiler is finally removing support for it.
The AMD A8-3870K from 2011 was the last processor supporting the 3DNow! instructions.
For those that really are catering to old AMD processors, 3DNow! instructions do remain supported in Assembly code, including inline Assembly code with LLVM. But the 3DNow! macros and options are removed along with the associated header file being deprecated and all of the 3DNow intrinsic functions having been cleared out along with the compiler built-ins.
This commit in the past hour to LLVM 19 Git has removed the 3DNow! support:
This effort is part of LLVM's plans for implementing MMX intrinsics with SSE equivalents and in turn removing MMX types/intrinsics from LLVM IR and LLVM back-ends.
LLVM 19 should be out in the September~October timeframe as the next stable LLVM compiler release and with the AMD 3DNow! support now removed.
The 3DNow! SIMD extension has been deprecated for about a decade and a half and born during the K6-2 days. 3DNow! hasn't even been found on AMD processors since the Bulldozer era and now in 2024 the LLVM compiler is finally removing support for it.
The AMD A8-3870K from 2011 was the last processor supporting the 3DNow! instructions.
For those that really are catering to old AMD processors, 3DNow! instructions do remain supported in Assembly code, including inline Assembly code with LLVM. But the 3DNow! macros and options are removed along with the associated header file being deprecated and all of the 3DNow intrinsic functions having been cleared out along with the compiler built-ins.
This commit in the past hour to LLVM 19 Git has removed the 3DNow! support:
"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."
This effort is part of LLVM's plans for implementing MMX intrinsics with SSE equivalents and in turn removing MMX types/intrinsics from LLVM IR and LLVM back-ends.
LLVM 19 should be out in the September~October timeframe as the next stable LLVM compiler release and with the AMD 3DNow! support now removed.
49 Comments