Common: move _mm_shuffle_epi8 to Intrinsics.h

This commit is contained in:
Tillmann Karras
2015-02-23 21:47:42 +01:00
parent f298f00e1b
commit 9aa463c590
2 changed files with 20 additions and 18 deletions

View File

@ -34,24 +34,6 @@ struct ArraySizeImpl : public std::extent<T>
#define b32(x) (b16(x) | (b16(x) >>16) )
#define ROUND_UP_POW2(x) (b32(x - 1) + 1)
#ifndef __GNUC_PREREQ
#define __GNUC_PREREQ(a, b) 0
#endif
#if (defined __GNUC__ && !__GNUC_PREREQ(4,9)) && \
!defined __SSSE3__ && defined _M_X86
#include <emmintrin.h>
static __inline __m128i __attribute__((__always_inline__))
_mm_shuffle_epi8(__m128i a, __m128i mask)
{
__m128i result;
__asm__("pshufb %1, %0"
: "=x" (result)
: "xm" (mask), "0" (a));
return result;
}
#endif
#ifndef _WIN32
#include <errno.h>