28 #error "SSE3 instruction set not enabled"
34 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
37 _mm_lddqu_si128(__m128i
const *__p)
39 return (__m128i)__builtin_ia32_lddqu((
char const *)__p);
43 _mm_addsub_ps(__m128 __a, __m128
__b)
45 return __builtin_ia32_addsubps(__a, __b);
49 _mm_hadd_ps(__m128 __a, __m128
__b)
51 return __builtin_ia32_haddps(__a, __b);
55 _mm_hsub_ps(__m128 __a, __m128
__b)
57 return __builtin_ia32_hsubps(__a, __b);
61 _mm_movehdup_ps(__m128 __a)
63 return __builtin_shufflevector(__a, __a, 1, 1, 3, 3);
67 _mm_moveldup_ps(__m128 __a)
69 return __builtin_shufflevector(__a, __a, 0, 0, 2, 2);
73 _mm_addsub_pd(__m128d __a, __m128d
__b)
75 return __builtin_ia32_addsubpd(__a, __b);
79 _mm_hadd_pd(__m128d __a, __m128d
__b)
81 return __builtin_ia32_haddpd(__a, __b);
85 _mm_hsub_pd(__m128d __a, __m128d
__b)
87 return __builtin_ia32_hsubpd(__a, __b);
90 #define _mm_loaddup_pd(dp) _mm_load1_pd(dp)
93 _mm_movedup_pd(__m128d __a)
95 return __builtin_shufflevector(__a, __a, 0, 0);
98 #define _MM_DENORMALS_ZERO_ON (0x0040)
99 #define _MM_DENORMALS_ZERO_OFF (0x0000)
101 #define _MM_DENORMALS_ZERO_MASK (0x0040)
103 #define _MM_GET_DENORMALS_ZERO_MODE() (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)
104 #define _MM_SET_DENORMALS_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_DENORMALS_ZERO_MASK) | (x)))
107 _mm_monitor(
void const *__p,
unsigned __extensions,
unsigned __hints)
109 __builtin_ia32_monitor((
void *)__p, __extensions, __hints);
113 _mm_mwait(
unsigned __extensions,
unsigned __hints)
115 __builtin_ia32_mwait(__extensions, __hints);
118 #undef __DEFAULT_FN_ATTRS
static vector float vector float __b
#define __DEFAULT_FN_ATTRS