extracted variables for the source real and imaginary parts in volk_32fc_x2_s32f_squa...
authorBrandon P. Enochs <brandon.enochs@nrl.navy.mil>
Tue, 3 Apr 2018 20:29:40 +0000 (16:29 -0400)
committerA. Maitland Bottoms <bottoms@debian.org>
Sat, 12 May 2018 19:25:04 +0000 (20:25 +0100)
Gbp-Pq: Name 0003-extracted-variables-for-the-source-real-and-imaginar.patch

kernels/volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h

index 6180337d25c52a38183cbe04f35e047a946c8d9a..0a3f7ca7dc2537f467dc964e08db9fe9b83e1ab8 100644 (file)
@@ -97,12 +97,9 @@ volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx(
 
   for (; i < avx_work_size; i += work_size) {
     lv_32fc_t src = *src0;
-    __m256 source = _mm256_setr_ps(
-            lv_creal(src), lv_cimag(src),
-            lv_creal(src), lv_cimag(src),
-            lv_creal(src), lv_cimag(src),
-            lv_creal(src), lv_cimag(src)
-    );
+    float src_real = lv_creal(src);
+    float src_imag = lv_cimag(src);
+    __m256 source = _mm256_setr_ps(src_real, src_imag, src_real, src_imag, src_real, src_imag, src_real, src_imag);
     __m256 points_low = _mm256_load_ps((const float *) points);
     __m256 points_high = _mm256_load_ps((const float *) (points + work_size / 2));
     __m256 difference_low = _mm256_sub_ps(source, points_low);