我搜索了gcc 4.8.1文档但找不到答案:
我有一些SSE4.1代码和回退代码,在运行时我检测系统是否支持SSE4.1,如果没有,我使用回退代码。
到目前为止一直很好,但是最新的gcc版本就是这样:
- 我的应用程序崩溃,因为每次执行字符串比较时,SSE4.1指令都会在整个代码中传播
由于我用-msse41编译我的所有文件,这听起来很合理但是我的代码崩溃了。我的问题是:有没有办法将SSE41的使用限制在只使用SSE4.1的代码?不幸的是,这些是在任何地方使用的头文件,因此用msse41
编译这些翻译单元相当困难答案 0 :(得分:1)
从GCC 4.8开始,您可以使用多版本功能,请参阅http://gcc.gnu.org/gcc-4.8/changes.html,查找“使用G ++进行功能多版本支持”。免责声明:我没有使用它(截至目前)。