在 GCC 中启用严格浮点模式

2024-04-25

我还没有创建一个程序来查看 GCC 是否需要它通过,当我这样做时,我想知道如何启用严格的浮点模式,这将允许在运行和计算机之间重现结果,谢谢。


编译用-msse2在支持它的 Intel/AMD 处理器上,您几乎就可以实现这一目标。不要让任何库将 FPU 置于 FTZ/DNZ 模式,这样您就基本上已经准备好了(尽管存在处理器错误)。

对于其他架构,答案会有所不同。那些不提供任何便捷方式来获取精确 IEEE 754 语义的架构(例如,SSE2 之前的 IA32 CPU)将需要使用浮点仿真库来获得您想要的结果,但性能会受到非常高的损失。

如果您的目标架构支持fmadd(没有中间舍入的乘法和加法)指令,请确保当源代码中有显式乘法和加法时,编译器不会使用它。除非您使用 -ffast-math 选项,否则 GCC 不应该执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GCC 中启用严格浮点模式 的相关文章

随机推荐