コンパイラをGCCからXCode 4.2のLLVM GCC
4.2に切り替えましたが、OpenMPの_mm_shuffle_ps組み込み関数で奇妙なリンカエラーが発生しました。この関数は動作しますが、一度ompブロック内に置くと、次のリンカーエラーが生成されます。
"___builtin_ia32_shufps", referenced from:
__ZN7Annulus12traceFactorsEP9PrimitiveP8VFMatrix.omp_fn.0 in Annulus.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
私のコードの基本的な構造は次のとおりです:
#pragma omp parallel {
//Some stuff
#pragma omp for {
//Do more stuff including _mm_shuffle_ps
}
}
コードはGCC 4.2でうまくいきますので、これはOpenMPのLLVM
GCC実装のバグですか、エキゾチックなコンパイラフラグが必要ですか?