PSIMD

Written 2018-08-03

Tags:SSE NEON ARM PSIMD Intel 

PSIMD is a set of Single Instruction, Multiple Data intrinsics portable across multiple CPU backends for GCC and Clang. These instrinsics map nicely to 128-bit SIMD units like Cortex-A ARM NEON, as well as SSE2 on Intel. It may also take advantage of SIMD units on other processors as supported by GCC and Clang, but these are the only ones I'm familiar with.

PSIMD is the first attempt I'm aware of to fully abstract the underlying hardware into a medium level compiler intrinsic. For another post, I'm working on replacing an example of Marsaglia's XORSHIFT PRNG using PSIMD, and I haven't yet had to worry at all about running on ARM or Intel.