MinGW的mfpmath选项(甚至是gcc)

时间:2012-12-06 05:11:01

标签: gcc mingw sse avx

使用-march=corei7-avx -mtune=corei7-avx命令行选项(或甚至使用-march=corei7 -mtune=corei7 -mavx)的 MinGW -mfpmath=sse-mfpmath=both命令行选项是否支持使用数学例程的 AVX 指令?请注意,来自here--with-fpmath=avx不起作用(对于 MinGW 上的最近版本,这是“无法识别的选项”)。

1 个答案:

答案 0 :(得分:3)

AVX由-march=corei7-avx-mavx启用。 -mtune选项既不是必需也不足以启用AVX。

-mfpmath=avx没有任何意义,因为使用此开关可以控制标量浮点代码的生成。如果仅使用4个浮点向量寄存器中的一个浮点数或仅使用8个浮点向量寄存器中的一个元素,则没有区别。如果您启用了march=avx,则标量浮点指令将使用VEX编码,这将保存一些mov指令。

请注意,在x86_64 -mfpmath上默认为SSE,因此如果您不确切知道自己在做什么,使用此开关通常不是必需的,甚至是有害的。