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>.