在ICC中,GCC/Clang与-fp model fast=1的等价物是什么

在ICC中,GCC/Clang与-fp model fast=1的等价物是什么,gcc,floating-point,clang,icc,fast-math,Gcc,Floating Point,Clang,Icc,Fast Math,正如我读到的: 英特尔编译器使用/fp model fast=1作为默认值。这种优化 支持速度而不是标准遵从性。您可以使用编译器选项 -mieee fp以获取符合要求的代码 我对ICC中选项的理解是(如果我错了,请纠正我): precise对应于GCC和Clang中的默认设置 fast=2类似于-ffast math fast=1介于两者之间 GCC或Clang中的哪些选项会使浮点数学与英特尔默认的-fp model fast=1最为相似?正如GCC的set\u fast\u math\u

正如我读到的:

英特尔编译器使用/fp model fast=1作为默认值。这种优化 支持速度而不是标准遵从性。您可以使用编译器选项 -mieee fp以获取符合要求的代码

我对ICC中选项的理解是(如果我错了,请纠正我):

  • precise
    对应于GCC和Clang中的默认设置
  • fast=2
    类似于
    -ffast math
  • fast=1
    介于两者之间

GCC或Clang中的哪些选项会使浮点数学与英特尔默认的
-fp model fast=1
最为相似?

正如GCC的set\u fast\u math\u flags函数所示,
ffast math
选项(至少在GCC 5.2中)相当于

(1) 不安全选项组:

-fno-trapping-math
-fassociative_math
-fno-signed-zeros
-freciprocal-math
(2) 其他人:

-ffinite-math-only
-fno-errno-math
-fno-signaling-nans
-fno-rounding-math
-fcx-limited-range
第一组缩写为
-funsafe\u math\u optimizations


你应该弄清楚ICC中出现了什么,并尝试将这些标志组合起来以达到预期效果。

好吧,它没有回答问题(关于
-fp model fast=1
而不是
-ffast math
),我不知道fp model fast=1以何种确切方式违反IEEE。我刚才解释了gcc中的ffast数学是由哪些选项组成的,这样你就可以和这9个人一起玩,从中寻找你想要的东西。