gcc 4.8.1默认启用sse吗?

Mar*_* A. 16 c c++ gcc gcc4.8

我遇到了在不支持SSE4.1的系统上运行我的旧代码的崩溃,我调试了一下并在glibc中找到了SSE指令,这可能吗?为什么不在gcc 4.8.1发布说明中报告这个?

Chr*_*ier 51

您可以使用以下命令查看GCC使用的优化:

$ gcc -Q --help=target
Run Code Online (Sandbox Code Playgroud)

例如,在我的机器上,GCC默认不启用sse4.1:

$ gcc -Q --help=target | grep msse4.1
  -msse4.1                              [disabled]
Run Code Online (Sandbox Code Playgroud)

但是,它受支持,因为它出现在/proc/cpuinfo.事实上,如果我要求GCC优化我的机器生成的代码,它将启用sse4.1:

$ gcc -Q --help=target -march=native | grep msse4.1
  -msse4.1                              [enabled]
Run Code Online (Sandbox Code Playgroud)