From 4acc4e91352e9aba74034689f6379d410cad6a28 Mon Sep 17 00:00:00 2001 From: Mikko Hallamaa Date: Thu, 25 Apr 2024 12:55:23 +0200 Subject: Update pffft version to the latest version from upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update pffft from SHA 7641e679 to fbc40586. [ChangeLog][Third-Party Code] Updated pffft to fbc4058. Fixes: QTBUG-124759 Pick-to: 6.7.1 6.5 6.2 5.15 Change-Id: Id48bd07f396650fcef61a5688f4cc3a32ce1a360 Reviewed-by: Jøger Hansegård (cherry picked from commit 7a3b2ff731bae9c07833e06a0ff8553421d6b6b2) Reviewed-by: Qt Cherry-pick Bot --- src/3rdparty/pffft/pffft.c | 46 ++++++++++++++-------------------- src/3rdparty/pffft/qt_attribution.json | 4 +-- 2 files changed, 21 insertions(+), 29 deletions(-) diff --git a/src/3rdparty/pffft/pffft.c b/src/3rdparty/pffft/pffft.c index 7fe8c4c15..9271a9ad9 100644 --- a/src/3rdparty/pffft/pffft.c +++ b/src/3rdparty/pffft/pffft.c @@ -1233,27 +1233,19 @@ PFFFT_Setup *pffft_new_setup(int N, pffft_transform_t transform) { s->e = (float*)s->data; s->twiddle = (float*)(s->data + (2*s->Ncvec*(SIMD_SZ-1))/SIMD_SZ); - if (transform == PFFFT_REAL) { - for (k=0; k < s->Ncvec; ++k) { - int i = k/SIMD_SZ; - int j = k%SIMD_SZ; - for (m=0; m < SIMD_SZ-1; ++m) { - float A = -2*M_PI*(m+1)*k / N; - s->e[(2*(i*3 + m) + 0) * SIMD_SZ + j] = cos(A); - s->e[(2*(i*3 + m) + 1) * SIMD_SZ + j] = sin(A); - } + for (k=0; k < s->Ncvec; ++k) { + int i = k/SIMD_SZ; + int j = k%SIMD_SZ; + for (m=0; m < SIMD_SZ-1; ++m) { + float A = -2*M_PI*(m+1)*k / N; + s->e[(2*(i*3 + m) + 0) * SIMD_SZ + j] = cos(A); + s->e[(2*(i*3 + m) + 1) * SIMD_SZ + j] = sin(A); } + } + + if (transform == PFFFT_REAL) { rffti1_ps(N/SIMD_SZ, s->twiddle, s->ifac); } else { - for (k=0; k < s->Ncvec; ++k) { - int i = k/SIMD_SZ; - int j = k%SIMD_SZ; - for (m=0; m < SIMD_SZ-1; ++m) { - float A = -2*M_PI*(m+1)*k / N; - s->e[(2*(i*3 + m) + 0)*SIMD_SZ + j] = cos(A); - s->e[(2*(i*3 + m) + 1)*SIMD_SZ + j] = sin(A); - } - } cffti1_ps(N/SIMD_SZ, s->twiddle, s->ifac); } @@ -1708,19 +1700,19 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b, # endif #endif - float ar, ai, br, bi, abr, abi; + float ar0, ai0, br0, bi0, abr0, abi0; #ifndef ZCONVOLVE_USING_INLINE_ASM v4sf vscal = LD_PS1(scaling); int i; #endif assert(VALIGNED(a) && VALIGNED(b) && VALIGNED(ab)); - ar = ((v4sf_union*)va)[0].f[0]; - ai = ((v4sf_union*)va)[1].f[0]; - br = ((v4sf_union*)vb)[0].f[0]; - bi = ((v4sf_union*)vb)[1].f[0]; - abr = ((v4sf_union*)vab)[0].f[0]; - abi = ((v4sf_union*)vab)[1].f[0]; + ar0 = ((v4sf_union*)va)[0].f[0]; + ai0 = ((v4sf_union*)va)[1].f[0]; + br0 = ((v4sf_union*)vb)[0].f[0]; + bi0 = ((v4sf_union*)vb)[1].f[0]; + abr0 = ((v4sf_union*)vab)[0].f[0]; + abi0 = ((v4sf_union*)vab)[1].f[0]; #ifdef ZCONVOLVE_USING_INLINE_ASM // inline asm version, unfortunately miscompiled by clang 3.2, at least on ubuntu.. so this will be restricted to gcc const float *a_ = a, *b_ = b; float *ab_ = ab; @@ -1774,8 +1766,8 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b, } #endif if (s->transform == PFFFT_REAL) { - ((v4sf_union*)vab)[0].f[0] = abr + ar*br*scaling; - ((v4sf_union*)vab)[1].f[0] = abi + ai*bi*scaling; + ((v4sf_union*)vab)[0].f[0] = abr0 + ar0*br0*scaling; + ((v4sf_union*)vab)[1].f[0] = abi0 + ai0*bi0*scaling; } } diff --git a/src/3rdparty/pffft/qt_attribution.json b/src/3rdparty/pffft/qt_attribution.json index 19c6a25d2..2cf2c7264 100644 --- a/src/3rdparty/pffft/qt_attribution.json +++ b/src/3rdparty/pffft/qt_attribution.json @@ -7,8 +7,8 @@ "SecurityCritical": true, "Homepage": "https://bitbucket.org/jpommier/pffft.git", - "Version": "7641e67977cf937c22849e2ef19fffa70269e562", - "DownloadLocation": "https://bitbucket.org/jpommier/pffft/get/38946c766c1a.zip", + "Version": "fbc4058602803f40dc554b8a5d2bcc694c005f2f", + "DownloadLocation": "https://bitbucket.org/jpommier/pffft/get/fbc405860280.zip", "CopyrightFile": "COPYRIGHTS", "License": "BSD 3-Clause \"New\" or \"Revised\" License", "LicenseId": "BSD-3-Clause", -- cgit v1.2.3