我已将我的编译器从 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 实现中的一个错误,还是我需要一个异国情调的编译器标志?