intel mpicc链接器错误未定义对`_mm_idivrem_epi32'的引用

时间:2014-01-16 07:26:21

标签: c compiler-construction mpi hpc intel-mpi

我正在尝试使用版本11.1 20090511在MPICC的集群上编译milcv7.7.8 / ks_spectrum的源代码时使用'make ks_spectrum_hisq'命令在milcv7.7.8 / ks_spectrum中创建源代码然后最后出现错误

com_mpi.o:功能initialize_machine': ../generic/com_mpi.c:(.text+0xb447): undefined reference to _mm_idivrem_epi32 '

我现在知道这个函数_mm_idivrem_epi32是intel编译器中ia32intrin.h文件的一部分。

当我使用14.0.0 20130728版本的intel编译器在新集群上使用最新的intel mpiicc时,代码编译成功。 那么有没有办法告诉链接器包含函数_mm_idivrem_epi32 location ...

1 个答案:

答案 0 :(得分:0)

_mm_idivrem_epi32()不是函数,而是编译器内在函数。如果处理得当,它将被英特尔短矢量数学库__svml_idivrem4()中的libsvml调用替换。

您最有可能被ICC的自动矢量化程序中的错误所击中。尝试使用-no-vec编译相同的源文件,并看到它有任何影响。或者更好地使用您拥有的最新ICC版本。