我在使用SSE4.1的应用程序中有一些SSE4.1 Blob 。

有什么方法可以让我的应用程序在较新的系统上与SSE4.1一起运行,并在较旧的系统上自动执行类似“后备”的操作?我阅读了-mtune选项,但无法理解它是否满足我的要求。

最佳答案

不存在自动回退。
您应该使用__cpuid内在函数来查询SSE4.1 ISA:
这里是怎么做的:

bool IsSSE41Enabled()
{
   int CPUInfo[4];
    __cpuid(CPUInfo, 1);

    return 0 != (CPUInfo[2] & (1<<19)); // 19th bit of 2nd reg means sse4.1 is enabled
}

关于c++ - 带gcc的SSE4.1,如何有旧兼容代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20201935/

10-10 23:45