无法通过 gcc 中的“-march=native”或 Core2 芯片中的任何其他标志激活 SSE 指令集

use*_*257 2 gcc sse simd mmx

我的机器是Core2微架构,我尝试编译一些针对SSE指令集的算术代码。我在网上和官方手册上搜索过,我认为我需要做的就是添加flag-march=native,因为我的芯片支持SSE。

\n\n

但是当我用来 gcc -march=native -Q --help=target -v检查该标志是否确实有效时,屏幕上显示的结果并不是我所期望的。例如\xef\xbc\x9a

\n\n
-msse                               [disabled]\n-msse2                              [disabled]\n-msse2avx                           [disabled]\n-msse3                              [disabled]\n-msse4                              [disabled]\n-msse4.1                            [disabled]\n-msse4.2                            [disabled]\n-msse4a                             [disabled]\n-msse5                              \n-msseregparm                        [disabled]\n-mssse3                             [disabled]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我发现所有 SSE(甚至 MMX)指令都被禁用。\n谁能告诉我原因以及如何解决它?\n非常感谢\xef\xbc\x81

\n

Phi*_*zes 5

的输出gcc -march=native -Q --help=target -v不包括 定义的覆盖-march,因为 gcc 在运行处理特定于体系结构的覆盖的代码之前返回输出。

请参阅有关此问题的错误报告,特别是它使用户(例如我自己)感到困惑。