diff --git a/libsse/_sse.h b/libsse/_sse.h index 8754721..966a62b 100755 --- a/libsse/_sse.h +++ b/libsse/_sse.h @@ -4,11 +4,16 @@ #include #include -#ifdef __SSE2__ -#include + +#if defined(__SSE2__) +#define USE_SSE2 +#elif defined(__ARM_NEON) +#define USE_SSE2 +#include "sse2neon.h" #else +// no SSE2 support, use emulation typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); -#endif /* __SSE2__ */ +#endif #ifndef MAX #define MAX(x,y) (((x)>(y)) ? (x):(y)) @@ -55,7 +60,7 @@ typedef union } uint64_v; -#ifdef __SSE2__ +#ifdef USE_SSE2 static inline int8_t _s2_extract_epi8(__m128i r, const int p) {