-mavx2 是否意味着 -mavx 和 -msse4.2

问题描述 投票:0回答:1

据我了解,每个支持AVX2的CPU都支持AVX,每个支持AVX的CPU都支持SSE4.2。 这是否意味着仅指定

-mavx2
就足够了,还是有区别:

-msse4.2 -mavx -mavx2

-mavx2

我在 GCC 文档中找到的就是这个(AVX SSE 关系):

使用 -mavx 时,GCC 会抑制 SSEx 指令。相反,它会在需要时为所有 SSEx 指令生成新的 AVX 指令或 AVX 等效项。

我认为这只是意味着 GCC 将使用更好的 AVX 指令而不是 SSE 指令,所以我想这意味着当你有 -mavx 时 msse4.2 是无用的,但我找不到任何

-mavx2
-mavx
关系。

我还查阅了 clang 文档,但找不到任何东西。

注意:我正在编译 C++ 代码,但我认为 C 和 C++ 编译器的答案是相同的。

assembly gcc x86 clang x86-64
1个回答
0
投票

您可以通过在命令行中添加

-Q --help=target
来查看 gcc 的活动标志。

通过管道传输到文件中,进行比较。两组选项为我提供了相同的设置。

© www.soinside.com 2019 - 2024. All rights reserved.