无法在启用的cpu上使用SSSE3

我有一个Xeon W3550处理器应该支持SSE4.2指令集但是当我尝试在我的c程序中使用SSE2之外的任何东西时,我得到编译器错误,例如
#error "SSE4.2 instruction set not enabled"

我用的时候

$cat /procs/cpuinfo

它检测所有相关的sse指令集但是

$cpuid

仅检测SSE和SSE2.

我的操作系统是ubuntu 11.04,内核2.6.38-11-generic.

有想法该怎么解决这个吗?谢谢.

编辑:基于Steve-o的评论下面的更新.头文件< * mmintrin.h>使用#ifndef预处理程序指令检查与之关联的sse版本,例如

#ifndef __SSSE3__ 
#error "SSSE3 instruction set not enabled".

所以我想问的是,尽管cpu启用了SSSE3,但为什么这会失败呢?

解决方法

你尝试用-msse4.2构建吗?

>支持SSE4.2内置函数代码生成
可通过-msse4.2获得.
>可以通过-msse4启用SSE4.1和SSE4.2支持.

http://gcc.gnu.org/gcc-4.3/changes.html

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...