From f200d64277d7ef3b8d4973d645f09e19b43965a8 Mon Sep 17 00:00:00 2001 From: andres Date: Mon, 27 Oct 2014 05:38:02 +0100 Subject: [PATCH] Fixes for gcc --- .../volk_gnsssdr_8ic_conjugate_8ic.h | 4 ++-- ...nsssdr_s32f_x2_update_local_carrier_32fc.h | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h b/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h index 4e0a0f9df..ce8dad8c4 100644 --- a/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h @@ -68,7 +68,7 @@ static inline void volk_gnsssdr_8ic_conjugate_8ic_u_avx(lv_8sc_t* cVector, const tmp128hi = _mm256_extractf128_si256(_mm256_castps_si256(tmp),1); tmp128hi = _mm_add_epi8(tmp128hi, conjugator2); //tmp = _mm256_set_m128i(tmp128hi , tmp128lo); //not defined in some versions of immintrin.h - tmp = _mm256_insertf128_si256(_mm256_castsi128_si256(tmp128lo),(tmp128hi),1); + tmp = _mm256_castsi256_ps(_mm256_insertf128_si256(_mm256_castsi128_si256(tmp128lo),(tmp128hi),1)); _mm256_storeu_ps((float*)c, tmp); a += 16; @@ -208,7 +208,7 @@ static inline void volk_gnsssdr_8ic_conjugate_8ic_a_avx(lv_8sc_t* cVector, const tmp128hi = _mm256_extractf128_si256(_mm256_castps_si256(tmp),1); tmp128hi = _mm_add_epi8(tmp128hi, conjugator2); //tmp = _mm256_set_m128i(tmp128hi , tmp128lo); //not defined in some versions of immintrin.h - tmp = _mm256_insertf128_si256(_mm256_castsi128_si256(tmp128lo),(tmp128hi),1); + tmp = _mm256_castsi256_ps(_mm256_insertf128_si256(_mm256_castsi128_si256(tmp128lo),(tmp128hi),1)); _mm256_store_ps((float*)c, tmp); a += 16; diff --git a/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_x2_update_local_carrier_32fc.h b/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_x2_update_local_carrier_32fc.h index 320260e03..4bb91f9f0 100644 --- a/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_x2_update_local_carrier_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_x2_update_local_carrier_32fc.h @@ -108,7 +108,7 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_u_avx(lv_32fc_ __m256 phase_rad_array, x, s, c, swap_sign_bit_sin, sign_bit_cos, poly_mask, z, tmp, y, y2, ysin1, ysin2; __m256 xmm1, xmm2, xmm3, sign_bit_sin; - __m256i imm0, imm2, imm4; + __m256i imm0, imm2, imm4, tmp256i; __m128i imm0_1, imm0_2, imm2_1, imm2_2, imm4_1, imm4_2; __VOLK_ATTR_ALIGNED(32) float sin_value[8]; __VOLK_ATTR_ALIGNED(32) float cos_value[8]; @@ -132,9 +132,9 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_u_avx(lv_32fc_ /* we use SSE2 routines to perform the integer ops */ //COPY_IMM_TO_XMM(_mm256_cvttps_epi32(y),imm2_1,imm2_2); - y = _mm256_cvttps_epi32(y); - imm2_1 = _mm256_extractf128_ps (y, 0); - imm2_2 = _mm256_extractf128_ps (y, 1); + tmp256i = _mm256_cvttps_epi32(y); + imm2_1 = _mm256_extractf128_si256 (tmp256i, 0); + imm2_2 = _mm256_extractf128_si256 (tmp256i, 1); imm2_1 = _mm_add_epi32(imm2_1, _pi32avx_1); imm2_2 = _mm_add_epi32(imm2_2, _pi32avx_1); @@ -264,7 +264,7 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_u_avx(lv_32fc_ if (num_points%8!=0) { __VOLK_ATTR_ALIGNED(32) float phase_rad_store[8]; - _mm256_storeu_si256 ((__m256i*)phase_rad_store, phase_rad_array); + _mm256_storeu_ps ((float*)phase_rad_store, phase_rad_array); float phase_rad = phase_rad_store[0]; @@ -424,7 +424,7 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_u_sse2(lv_32fc if (num_points%4!=0) { __VOLK_ATTR_ALIGNED(16) float phase_rad_store[4]; - _mm_storeu_si128 ((__m128i*)phase_rad_store, phase_rad_array); + _mm_storeu_ps ((float*)phase_rad_store, phase_rad_array); float phase_rad = phase_rad_store[0]; @@ -510,7 +510,7 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_a_avx(lv_32fc_ __m256 phase_rad_array, x, s, c, swap_sign_bit_sin, sign_bit_cos, poly_mask, z, tmp, y, y2, ysin1, ysin2; __m256 xmm1, xmm2, xmm3, sign_bit_sin; - __m256i imm0, imm2, imm4; + __m256i imm0, imm2, imm4, tmp256i; __m128i imm0_1, imm0_2, imm2_1, imm2_2, imm4_1, imm4_2; __VOLK_ATTR_ALIGNED(32) float sin_value[8]; __VOLK_ATTR_ALIGNED(32) float cos_value[8]; @@ -534,9 +534,9 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_a_avx(lv_32fc_ /* we use SSE2 routines to perform the integer ops */ //COPY_IMM_TO_XMM(_mm256_cvttps_epi32(y),imm2_1,imm2_2); - y = _mm256_cvttps_epi32(y); - imm2_1 = _mm256_extractf128_ps (y, 0); - imm2_2 = _mm256_extractf128_ps (y, 1); + tmp256i = _mm256_cvttps_epi32(y); + imm2_1 = _mm256_extractf128_si256 (tmp256i, 0); + imm2_2 = _mm256_extractf128_si256 (tmp256i, 1); imm2_1 = _mm_add_epi32(imm2_1, _pi32avx_1); imm2_2 = _mm_add_epi32(imm2_2, _pi32avx_1); @@ -825,7 +825,7 @@ static inline void volk_gnsssdr_s32f_x2_update_local_carrier_32fc_a_sse2(lv_32fc if (num_points%4!=0) { __VOLK_ATTR_ALIGNED(16) float phase_rad_store[4]; - _mm_store_si128 ((__m128i*)phase_rad_store, phase_rad_array); + _mm_store_ps ((float*)phase_rad_store, phase_rad_array); float phase_rad = phase_rad_store[0];