Reputation: 21
I am trying to compile source of milcv7.7.8/ks_spectrum on a cluster with MPICC using version 11.1 20090511 when make the source in milcv7.7.8/ks_spectrum by 'make ks_spectrum_hisq' command then at last the error comes out as
com_mpi.o: In function initialize_machine':
../generic/com_mpi.c:(.text+0xb447): undefined reference to
_mm_idivrem_epi32'
I know now that this function _mm_idivrem_epi32 is a part of ia32intrin.h file in intel compiler.
When I use the latest intel mpiicc on new cluster with 14.0.0 20130728 version of intel compiler then code compiles successfully. So is there any way to tell linker to include function _mm_idivrem_epi32 location...
Upvotes: 2
Views: 585
Reputation: 74355
_mm_idivrem_epi32()
is not a function but rather a compiler intrinsic. When properly handled, it is replaced with a call to __svml_idivrem4()
from the Intel's Short Vector Math Library libsvml
.
You are most likely being hit by a bug in ICC's auto-vectoriser. Try compiling the same source file with -no-vec
and see it this has any effect. Or better use the newest ICC version that you have at your disposal.
Upvotes: 0