sse2neon
A C/C++ header file that converts Intel SSE intrinsics to Arm/Aarch64 NEON intrinsics.
Info
The SIMD instruction set of Intel, which is known as SSE is used in many applications for improved performance. ARM also have introduced an SIMD instruction set called Neon to their processors. Rewriting code written for SSE to work on Neon is very time consuming. and this is a header file that can automatically convert some of the SSE instricts into NEON instricts.
Usage
-
Put the file
sse2neon.h
in to your source code directory. -
Locate the following SSE header files included in the code:
#include <xmmintrin.h>
#include <emmintrin.h>
- Replace them with :
#include "sse2neon.h"
- On ARMv7-A targets, you need to append the following compiler option:
-mfpu=neon
Reference
- SIMDe: fast and portable implementations of SIMD intrinsics on hardware which doesn't natively support them, such as calling SSE functions on ARM.
- SSE2NEON.h : A porting guide and header file to convert SSE intrinsics to their ARM NEON equivalent
- CatBoost's sse2neon
- ARM_NEON_2_x86_SSE
- SSE2NEON - High Performance MPC on ARM
Licensing
sse2neon
is freely redistributable under the MIT License.