导读 AMD近乎古老的3DNow!指令已逐渐淡出人们的视线。开源编译器LLVM最终取消了对自2011年以来AMDCPU不再支持的指令集的支持。3DNow!指令集于199...
AMD近乎古老的3DNow!指令已逐渐淡出人们的视线。开源编译器LLVM最终取消了对自2011年以来AMDCPU不再支持的指令集的支持。
3DNow!指令集于1998年推出,旨在与英特尔的MMX竞争。它在AMD的基础x86指令集中添加了单指令、多数据(SIMD)指令,帮助CPU使用矢量寄存器对浮点运算进行矢量处理。
AMD于2011年用更新的SSE等效产品取代了3DNow!,并从K10BulldozerCPU开始停止包含该功能标志位。不过,由于CPU仍在使用相当长一段时间,编译器确实花了一些时间才开始放弃对该指令集的支持。
2021年,Linux从其内核中淘汰了该指令集,但LLVM在其他所有人都放弃它之后仍然长期保持支持。LLVM编译器背后的开发人员还致力于从该工具中删除MMX类型和指令。
“这组指令仅受K6-2(1998年推出)及“Bulldozer”系列(2011年)之前的AMD支持。它们从未被广泛使用,因为它们实际上已被更广泛实施的SSE(2001年首次在AMD的AthlonXP中实施)所取代。
这是为了全面移除MMX寄存器的使用而采取的措施。由于3DNow!内部函数几乎没有用处,而且现代硬件甚至都没有实现它们,因此简单的移除似乎是最佳选择。”
AMD3DNow!指令在20世纪90年代末和21世纪初非常流行,用于改进游戏、视频播放和AdobePhotoshop工作流程。随后,英特尔发布了SSE指令,该指令在整体上占据了主导地位。当英特尔发布SSE2时,AMD采用了它并放弃了其较旧的SIMD指令集。
需要为旧AMD处理器编写代码的开发人员仍可使用汇编语言中的3DNow!指令,包括使用LLVM的内联汇编代码。除此之外,与3DNow!相关的所有内容都应视为已弃用且不再使用。