Sun Studio 12 Update 1:C++ 用户指南

A.2.22 -fma[={none|fused}]

(SPARC) 启用自动生成浮点乘加指令。-fma=none 禁用这些指令的生成。-fma=fused 允许编译器通过使用浮点乘加指令,尝试寻找改进代码性能的机会。

缺省值是 -fma=none

要使编译器生成乘加指令,最低要求是 -xarch=sparcfmaf 且优先级别至少为 -xO2。如果生成了乘加指令,编译器会标记此二进制程序,以防止该程序在不受支持的平台上执行。

乘加指令会消除乘与加之间的中间舍入步骤。因此,使用 -fma=fused 编译时程序可能会产生不同的结果,尽管精度是趋于提高而不是降低。