SSE intrinsic functions reference
As well as all the online PDF documentation already mentioned, there is also a very useful utility which summarizes all the instructions and intrinsics and groups them by technology. It runs on Linux, Windows and Mac OS X. It's hidden away on Intel's AVX technology page but it's equally useful for SSE programming. Go to http://software.intel.com/en-us/articles/intel-intrinsics-guide and then select the Intel Intrinsics Guide for your platform of choice.
UPDATE
There is now an online version of the intrinsics guide, so you no longer need to install anything, and it's always up-to-date.
I found these headers were needed for invoking the different versions of SSE from GCC:
- For SSE2:
extern "C"
{
#include <emmintrin.h>
#include <mmintrin.h>
}
- For SSE3:
extern "C"
{
#include <pmmintrin.h>
#include <immintrin.h> // (Meta-header)
}
- For SSE4:
extern "C"
{
#include <smmintrin.h>
}
In modern versions of the compilers, all the headers seem to be common to Visual Studio and GCC.
SSEPlus table on intrinsics is very easy to use for most cases.