15#ifndef INCLUDE_VOLK_VOLK_SSE3_INTRINSICS_H_
16#define INCLUDE_VOLK_VOLK_SSE3_INTRINSICS_H_
21 __m128 yl, yh, tmp1, tmp2;
22 yl = _mm_moveldup_ps(y);
23 yh = _mm_movehdup_ps(y);
24 tmp1 = _mm_mul_ps(x, yl);
25 x = _mm_shuffle_ps(x, x, 0xB1);
26 tmp2 = _mm_mul_ps(x, yh);
27 return _mm_addsub_ps(tmp1,
33 const __m128 conjugator = _mm_setr_ps(0, -0.f, 0, -0.f);
34 y = _mm_xor_ps(y, conjugator);
40 cplxValue1 = _mm_mul_ps(cplxValue1, cplxValue1);
41 cplxValue2 = _mm_mul_ps(cplxValue2, cplxValue2);
42 return _mm_hadd_ps(cplxValue1, cplxValue2);
51 const __m128 symbols1,
61 const __m128 diff0 = _mm_sub_ps(symbols0, points0);
62 const __m128 diff1 = _mm_sub_ps(symbols1, points1);
64 return _mm_mul_ps(norms, scalar);
static __m128 _mm_complexmul_ps(__m128 x, __m128 y)
Definition volk_sse3_intrinsics.h:19
static __m128 _mm_magnitude_ps_sse3(__m128 cplxValue1, __m128 cplxValue2)
Definition volk_sse3_intrinsics.h:45
static __m128 _mm_magnitudesquared_ps_sse3(__m128 cplxValue1, __m128 cplxValue2)
Definition volk_sse3_intrinsics.h:38
static __m128 _mm_scaled_norm_dist_ps_sse3(const __m128 symbols0, const __m128 symbols1, const __m128 points0, const __m128 points1, const __m128 scalar)
Definition volk_sse3_intrinsics.h:50
static __m128 _mm_complexconjugatemul_ps(__m128 x, __m128 y)
Definition volk_sse3_intrinsics.h:31