我正在寻找GCC选项(如果存在)来自动优化我的代码,以适应现代英特尔体系结构(如AVX或更高版本)。
据我所知,GCC有-march=core-avx2
编译选项,但它生成的代码不能在以前的架构上运行。
据我所知,英特尔编译器有-axAVX
(在-xarch之前注释字母“a”)编译选项,在AVX特别优化的地方生成函数版本控制。
这使得在现代架构上编译后的二进制文件可以更快(使用AVX扩展),并保持与以前的架构的兼容性。 你可以请我推荐GCC编译器选项类似于英特尔编译器-axAVX
?
我看到__attribute__(target_clones ...)
的解决scheme,但这是不可接受的,因为需要大量的代码更改。
操作系统:Linux
编译器:gcc版本4.4.7 20120313(Red Hat 4.4.7-17)(GCC)