Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

icpc 15 - Compiling Intrinsics

Daniele_S_1
Beginner
1,003 Views

Hi All,

I installed the latest release of icpc for Linux (v15) and it seems that intrinsics header files are missing (typically in <composer>/compiler/include). If I try to compile avx code including immintrin.h, I get a whole bunch of errors similar to the following:

/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/avxintrin.h(1158): error: identifier "__builtin_ia32_movmskps256" is undefined

which means that icpc is including gcc's header file and fails to recognize gcc's builtin functions. Could anyone help with this?

Thanks,

Daniele

0 Kudos
6 Replies
KitturGanesh
Employee
1,003 Views

Hi Daniele,

Actually, you should find all the intrinsics header files in the compiler include directory such as: xmmintrin.h, immintrin.h and so on. Of course, including one may include others it it automatically. That said, yes, looks like the _builtin_ia32_movmskps256   is not supported. I'll file this issue (as a feature request) with the developers as not all of the builtin intrinsics that gcc supports are implemented.  As a workaround, you can use _mm256_movemask_ps  and see if that can help. I'll let you know as soon as the release with support for the one you were using in out, appreciate much.


_Kittur 

0 Kudos
KitturGanesh
Employee
1,003 Views

Hi Danielle,
   1) Can you please confirm you are able to see the intrinsic header files I mention below under compiler/include? If you don't then the product installation wasn't successful and you need to get that resoved first.

       emmintrin.h   immintrin.h  nmmintrin.h  smmintrin.h  wmmintrin.h  xmmintrin.h, 
       ia32intrin.h  mmintrin.h   pmmintrin.h  tmmintrin.h  x86intrin.h  zmmintrin.h

   2) If you see the intrinsic header files above, and are able to do %icc -V and it does output proper version and build number then I agree you have an intrinsic undefined issue as it's not supported for which I've filed an issue.

    Can you please use the -P  option in your compile command line and execute to produce a .i preprocessed file? Please attach the pre-processed file to this post as that's needed to check and see what files were included etc., to help developers address the undefined intrinsic _builtin_ia32_movmskps256 issue.  Appreciate much for your input.

_Kittur 

0 Kudos
Daniele_S_1
Beginner
1,003 Views

Hi Kittur,

Thanks the problem was related to partial installation on the server. So now we have restored the Intel's headers under the compiler folder and everything works as expected.

Thanks for your support.

Daniele

0 Kudos
KitturGanesh
Employee
1,003 Views

Thanks Daniele, for letting me know and glad it works fine now, appreciate much.

_Kittur

0 Kudos
KitturGanesh
Employee
1,003 Views

BTW Daniele, I've also filed a feature request to support the intrinsic that isn't supported by the compiler as well, fyi.

_Kittur 

0 Kudos
Martins__Rodrigo
Beginner
1,003 Views

Daniele S. wrote:

Hi Kittur,

Thanks the problem was related to partial installation on the server. So now we have restored the Intel's headers under the compiler folder and everything works as expected.

Thanks for your support.

Daniele

Hi Daniele, I saw your private message about the xdk  intel xdk 3900 from my email, but I was unable to login into my account to reply you back due my account was deactivated for long time without use it.

So I had to create this new account, and figure out a way to contact you, but your profile is giving me access denied, so can't send you private messages...

So, I'm sorry I don't have it on my computer, but may I have it on some of my backups external hdds ... I'll take a look and let you know!

Hope you see this message, and if you do, try to send me a PM on this new profile I've created, and may I'm able to reply back to you, or you may include your email on your PM, due I'm able to see the message by email at least!

Regards,

Rodrigo

0 Kudos
Reply