SSE4.1自动在更新的gcc上进行字符串比较

SSE4.1 automatically put in string comparison on newer gcc

本文关键字:字符串 比较 gcc 更新 SSE4      更新时间:2023-10-16

我搜索了gcc 4.8.1文档,但找不到答案:

我有一些SSE4.1代码和回退代码,在运行时我会检测系统是否支持SSE4.1,如果不支持,我会使用回退代码。

到目前为止还不错,但最新的gcc版本就是这样:

-我的应用程序崩溃,因为每次执行字符串比较时,SSE4.1指令都会散布在整个代码中

由于我使用-msse41编译所有文件,这听起来很合理,但会破坏我的代码。我的问题是:有没有办法将SSE41的使用限制在使用SSE4.1的代码上?不幸的是,这些都是到处使用的头文件,因此很难用msse41 编译这些翻译单元

从GCC 4.8开始,您可以使用多版本的函数,请参阅http://gcc.gnu.org/gcc-4.8/changes.html,查找"使用G++支持功能多版本控制"。免责声明:我没有使用这个(到目前为止)。