C SIMD版本检查

C SIMD版本检查,c,gcc,simd,C,Gcc,Simd,我使用的是英特尔Core2Duo E4500处理器。它应该有SSE3,SSSE3设施。但是如果我尝试在程序中使用它们,它会显示以下错误“SSE3指令集未启用” 有什么想法吗?用于检查可用的指令集 如果您使用的是Visual Studio,则在C/C++->code Generation->Enable Enhanced Instruction Set中有一个选项 下面是如何在中启用它 从以上链接: -msse3 -mssse3 尝试添加此gcc命令行选项: -march=core2 -msse

我使用的是英特尔Core2Duo E4500处理器。它应该有SSE3,SSSE3设施。但是如果我尝试在程序中使用它们,它会显示以下错误“SSE3指令集未启用”

有什么想法吗?

用于检查可用的指令集

如果您使用的是Visual Studio,则在
C/C++->code Generation->Enable Enhanced Instruction Set
中有一个选项

下面是如何在中启用它

从以上链接:

-msse3
-mssse3

尝试添加此gcc命令行选项:

-march=core2 -msse3
对浮点操作启用sse优化可能也是一个好主意:

-mfpmath=sse

在Linux上,如果您在执行代码的同一台机器上编译,那么可以查看
cat/proc/cpuinfo输出的
标志
字段,使用任何最新的gcc,您应该能够使用
-march=native
来利用所有CPU功能。如果您在
asm
中使用了不受支持的指令,那么在编译过程中它应该会告诉您

你能澄清一点吗,你的程序是什么,你能访问源代码吗?如果是,哪个编译器?…哪个编译器选项?我正在使用gcc4.4.1编写c程序。请提供更多信息。甚至是一个例子。您如何“使用”sse指令(汇编、编译器指令等)?您使用什么编译器选项,是谁发出错误?(复制粘贴用于编译任何操作的命令行)cat/proc/cpuinfo给出SSSE3,但它不显示SSSE3,但同样对于SSSE3,它也显示SSSE3指令集未启用。海报肯定是在尝试编写一个程序,该程序将在运行时选择是否使用SIMD指令?使用CPU-Z可以让人检查他们的硬件,但对于编程使用是无用的。@Edmund:答案被接受了;所以我认为可以肯定地说,这就是海报想要的。