13#if !defined(__i386__) && !defined(__x86_64__)
14#error "This header is only meant to be used on x86 and x64 architecture"
20#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128)))
46#define _mm_extracti_si64(x, len, idx) \
47 ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \
48 (char)(len), (char)(idx)))
72 return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)
__y);
108#define _mm_inserti_si64(x, y, len, idx) \
109 ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \
110 (__v2di)(__m128i)(y), \
111 (char)(len), (char)(idx)))
142 return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)
__y);
160 __builtin_ia32_movntsd((
double *)
__p, (__v2df)
__a);
178 __builtin_ia32_movntss((
float *)
__p, (__v4sf)
__a);
181#undef __DEFAULT_FN_ATTRS
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_insert_si64(__m128i __x, __m128i __y)
Inserts bits of a specified length from the source integer vector __y into the lower 64 bits of the d...
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ss(void *__p, __m128 __a)
Stores a 32-bit single-precision floating-point value in a 32-bit memory location.
#define __DEFAULT_FN_ATTRS
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_extract_si64(__m128i __x, __m128i __y)
Extracts the specified bits from the lower 64 bits of the 128-bit integer vector operand at the index...
static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_sd(void *__p, __m128d __a)
Stores a 64-bit double-precision value in a 64-bit memory location.
static __inline__ uint32_t volatile uint32_t * __p
static __inline__ uint32_t uint32_t __y
static __inline__ void int __a