SSE4.2命令セットをサポートするはずのXeon W3550プロセッサがありますが、SSE2を使ってCプログラムでSSE2を使用しようとするとコンパイラエラーが発生します。有効になっているCPUでSSSE3を使用できません
#error "SSE4.2 instruction set not enabled"
私は
$cat /procs/cpuinfo
を使用する場合、それは、関連するすべてのSSE命令セットを検出したが、
$cpuid
のみSSEとSSE2を検出します。
私のオペレーティングシステムは、ubuntu 11.04(カーネル2.6.38-11-ジェネリック)です。
これを修正する方法についてのご意見はありますか?ありがとう。
EDIT:下記のSteve-oのコメントに基づくアップデート。ヘッダファイル< * mmintrin.h> #ifndefプリプロセッサディレクティブを使用して、関連付けられているsseバージョンのチェックを実行します。
#ifndef __SSSE3__
#error "SSSE3 instruction set not enabled".
だから私は、質問は、なぜこれがSSSE3が有効になっているCPUにもかかわらず、偽戻って来れていると思います。
命令のコンパイルがホストプラットフォームまたはアーキテクチャに限定されるものではないが、GCC制限ように聞こえます。プロセッサ制限は、実行時にsegフォルトまたはそれに類するものにのみ気付きます。 –