dinesh_mali
dinesh_mali

Reputation: 21

intel mpicc linker error undefined reference to `_mm_idivrem_epi32'

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

Answers (1)

Hristo Iliev
Hristo Iliev

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

Related Questions