Re: recent KahanSum change causes a new test failure on ppc64le

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/13/23 13:58, Eike Rathke wrote:
On Wednesday, 2023-09-13 13:45:36 +0200, Dan Horák wrote:
It would be worth a try to simply call executeFast() only if SC_USE_SSE2
is defined, so the failing platforms skip executeUnrolled(), here
https://opengrok.libreoffice.org/xref/core/sc/inc/arraysumfunctor.hxx?r=7f15354c#89

Please report back if that helps and I'll prepare another patch.

I hop I got your idea right and with

diff --git a/sc/inc/arraysumfunctor.hxx b/sc/inc/arraysumfunctor.hxx
index c261c120addf..d9a5b805db50 100644
--- a/sc/inc/arraysumfunctor.hxx
+++ b/sc/inc/arraysumfunctor.hxx
@@ -86,7 +86,11 @@ inline KahanSum sumArray(const double* pArray, size_t nSize)
  {
      size_t i = 0;
      const double* pCurrent = pArray;
+#if 0
      KahanSum fSum = executeFast(i, nSize, pCurrent);
+#else
+    KahanSum fSum = 0.0;
+#endif
// sum rest of the array
      for (; i < nSize; ++i)

the test passed on aarch64 on master branch (no reverts or such)

Yup, such I meant. Thanks for confirming.

But my

diff --git a/sc/inc/arraysumfunctor.hxx b/sc/inc/arraysumfunctor.hxx
index c261c120addf..79204622942f 100644
--- a/sc/inc/arraysumfunctor.hxx
+++ b/sc/inc/arraysumfunctor.hxx
@@ -85,8 +85,12 @@ static inline KahanSum executeFast(size_t& i, size_t nSize, const double* pCurre
 inline KahanSum sumArray(const double* pArray, size_t nSize)
 {
     size_t i = 0;
+#if defined SC_USE_SSE2
     const double* pCurrent = pArray;
     KahanSum fSum = executeFast(i, nSize, pCurrent);
+#else
+    KahanSum fSum;
+#endif
// sum rest of the array
     for (; i < nSize; ++i)

still failed for aarch64 at <https://buildbot.flathub.org/#/builders/9/builds/5816>.




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux