我有一台搭载Xeon W3550处理器的电脑,该处理器应该支持SSE4.2指令集,但是当我在C程序中尝试使用超过SSE2的内容时,编译器报错。
#error "SSE4.2 instruction set not enabled"
当我使用
$cat /procs/cpuinfo
它能检测到所有相关的SSE指令集,但是
$cpuid
只能检测SSE和SSE2。
我的操作系统是带有内核2.6.38-11-generic的Ubuntu 11.04。
有没有什么办法可以解决这个问题?谢谢。
编辑:根据Steve-o在下面的评论,更新了一下。头文件<*mmintrin.h>使用#ifndef预处理指令来执行与它们相关的sse版本的检查,例如
#ifndef __SSSE3__
#error "SSSE3 instruction set not enabled".
所以我猜问题是为什么尽管CPU启用了SSSE3,但这个值却返回false。