I have a code in which i used the SSSE3 inrtuctions, i wanted to compile in Ubuntu12.04 , the same code is compiling in Windows.My system is Intel Xeon which supports SSSE3.(Got the info from the following command "more /proc/cpuinfo" .
While compiling in Ubuntu i added compiler option "-mssse3 ", but still it is giving Error ."_mm_shuffle_epi8 was not declared in scope" , other instructions of SSSE3 are also not recognized.
Please let me know what might be the reason.Please reply.
Thanks in Advance.
Compilers have varying tactics for including the intrinsics header files. For example, in an installation of gcc, you would require
where you should see the inclusion of tmmintrin.h for the case where you have set -mssse3.
Likewise, in an icc installation, you should find immintrin.h chaining down into tmmintrin.h, but by a more obscure sequence, which you may need to verify by saving pre-processed source code (icc -E....).
Neither icc nor gcc normally want tmmintrin.h included directly, as immintrin.h provides for including tmmintrin.h when SSSE3 or hgiht option is set, as well as the intrinsics headers for earlier instruction sets.
Thanks for the reply.
1) I have included "immintrin.h" which includes "tmmintrin.h" ,if SSSE3 is enabled in System.But if add "tmmintrin.h" again it gives an error "SSSE3 instruction Set is not enabled".
2) if i give this command in terminal " gcc -Q -march=native --help=target " it shows that -mssse3 is disabled how to enabled it .
3) I tried the same code in another System (HP Z400 Workstation) where -mssse3 is enabled , i got the error when i am using _mm_load_si128 insruction as "Segmentation Fault" ,though the argunment i am passing is filled Buffer(Frame Buffer of 1920x1080)
Please reply , Thanks in advance.