yay*_*aya 18 gcc sse gnu g++ compiler-flags
对于GCC CFLAGS
选项:-msse
,-msse2
,-mssse3
,-msse4
,-msse4.1
,-msse4.2
.它们是独家使用还是可以一起使用?
我的理解是,选择要设置的位置取决于程序将运行的目标拱,是否支持,这是正确的吗?
如果是这样,我怎么知道我的目标拱支持什么?在Linux中,我是cat/proc/cpuinfo,但是如果是mac还是Windows呢?
谢谢!
Gun*_*iez 30
该-m
切换可以并行地使用,此外它们中的一些由所述体系结构或其它开关暗示.例如,如果您为x86_64构建代码,-msse -msse2
则始终启用.
对于要在系统上运行的代码,您应该选择-march=native
,它将选择处理器上可用的代码.例如,如果你有一个Sandy Bridge,这将启用-msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx
.
如果要详细指定要使用的指令集,则应仅使用可用的指令,而不是始终使用"最新"指令集.目前是"最新"的-mavx2
,我不推荐:第一款支持它的处理器将于2013年上市.