41 #include <emmintrin.h>
43 #include <pmmintrin.h>
49 template<
typename Treal,
typename Treg>
50 inline static Treg
_mm_load_p (Treal
const * ptr);
53 return _mm_load_ps (ptr);
57 return _mm_load_pd (ptr);
61 template<
typename Treal,
typename Treg>
65 return _mm_load1_ps (ptr);
70 return _mm_load1_pd (ptr);
74 template<
typename Treal,
typename Treg>
75 inline static Treg
_mm_set1_p (Treal
const val);
78 return _mm_set1_ps (val);
83 return _mm_set1_pd (val);
88 template<
typename Treal,
typename Treg>
92 _mm_store_ps (ptr, A);
96 _mm_store_pd (ptr, A);
102 template<
typename Treg>
106 return _mm_add_ps(A, B);
110 return _mm_add_pd(A, B);
116 template<
typename Treg>
120 return _mm_mul_ps(A, B);
124 return _mm_mul_pd(A, B);
129 template<
typename Treg>
133 return _mm_xor_ps(A, B);
137 return _mm_xor_pd(A, B);
static void _mm_store_p(Treal *ptr, Treg A)
static Treg _mm_add_p(Treg A, Treg B)
static Treg _mm_xor_p(Treg A, Treg B)
static Treg _mm_load1_p(Treal const *ptr)
static Treg _mm_mul_p(Treg A, Treg B)
static Treg _mm_set1_p(Treal const val)
static Treg _mm_load_p(Treal const *ptr)