sc/source/core/inc/arraysumfunctor.hxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
New commits: commit b35c38c6e44b0df0fc2c5a3983ecd7547b964691 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Thu Nov 5 12:14:06 2015 +0100 invalid array index when pCurrent pointer is incremented If pCurrent is incremented (when the input double array is not alligned) we can't use i as the array index anymore as it refers correctly to elements in input double array only. Changing back to pointer arithmetic. Change-Id: Id498a4182d28cae067195853e96f7169063853e2 diff --git a/sc/source/core/inc/arraysumfunctor.hxx b/sc/source/core/inc/arraysumfunctor.hxx index fc1b915..776c514 100644 --- a/sc/source/core/inc/arraysumfunctor.hxx +++ b/sc/source/core/inc/arraysumfunctor.hxx @@ -39,7 +39,6 @@ public: double operator() () { static bool hasSSE2 = tools::cpuid::hasSSE2(); - printf("SSE used %d\n", hasSSE2); double fSum = 0.0; size_t i = 0; @@ -81,17 +80,21 @@ private: for (; i < nUnrolledSize; i += 8) { - __m128d load1 = _mm_load_pd(&pCurrent[i]); + __m128d load1 = _mm_load_pd(pCurrent); sum1 = _mm_add_pd(sum1, load1); + pCurrent += 2; - __m128d load2 = _mm_load_pd(&pCurrent[i + 2]); + __m128d load2 = _mm_load_pd(pCurrent); sum2 = _mm_add_pd(sum2, load2); + pCurrent += 2; - __m128d load3 = _mm_load_pd(&pCurrent[i + 4]); + __m128d load3 = _mm_load_pd(pCurrent); sum3 = _mm_add_pd(sum3, load3); + pCurrent += 2; - __m128d load4 = _mm_load_pd(&pCurrent[i + 6]); + __m128d load4 = _mm_load_pd(pCurrent); sum4 = _mm_add_pd(sum4, load4); + pCurrent += 2; } sum1 = _mm_add_pd(_mm_add_pd(sum1, sum2), _mm_add_pd(sum3, sum4));
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits