From fd2af02aecfeb69b768cc15206e31db265b5e64b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 16 Jan 2016 23:15:19 +0100 Subject: [PATCH] fix sse implementation --- .../volk_gnsssdr_8ic_x2_dot_prod_8ic.h | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h index 89a9c35ee..a753a25c3 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h @@ -162,7 +162,7 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_u_sse2(lv_8sc_t* result, con } } - for (unsigned int i = 0; i<(num_points % 8); ++i) + for (unsigned int i = sse_iters * 8; i < num_points; ++i) { dotProduct += (*a++) * (*b++); } @@ -241,7 +241,7 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_u_sse4_1(lv_8sc_t* result, c } } - for (unsigned int i = 0; i<(num_points % 8); ++i) + for (unsigned int i = sse_iters * 8; i < num_points; ++i) { dotProduct += (*a++) * (*b++); } @@ -273,13 +273,14 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_u_sse4_1(lv_8sc_t* result, c */ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_a_generic(lv_8sc_t* result, const lv_8sc_t* input, const lv_8sc_t* taps, unsigned int num_points) { - /*lv_8sc_t* cPtr = result; - const lv_8sc_t* aPtr = input; - const lv_8sc_t* bPtr = taps; - - for(int number = 0; number < num_points; number++){ - *cPtr += (*aPtr++) * (*bPtr++); - }*/ + // lv_8sc_t* cPtr = result; + // const lv_8sc_t* aPtr = input; + // const lv_8sc_t* bPtr = taps; + // + // for(int number = 0; number < num_points; number++) + // { + // *cPtr += (*aPtr++) * (*bPtr++); + // } char * res = (char*) result; char * in = (char*) input; @@ -385,7 +386,7 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_a_sse2(lv_8sc_t* result, con } } - for (unsigned int i = 0; i<(num_points % 8); ++i) + for (unsigned int i = sse_iters * 8; i < num_points; ++i) { dotProduct += (*a++) * (*b++); } @@ -464,7 +465,7 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_a_sse4_1(lv_8sc_t* result, c } } - for (unsigned int i = 0; i<(num_points % 8); ++i) + for (unsigned int i = sse_iters * 8; i < num_points; ++i) { dotProduct += (*a++) * (*b++); }