From f8b0e250eb89d3f148b6d35e6efb11f3cab1363c Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Thu, 23 Jan 2025 10:14:59 +0100 Subject: [PATCH] Update to biquad df2t f32 tests since the Neon version is disabled because of problems. So the test must use the scalar version. Re-enabled all other tests. Added Neon badge to README. --- .github/workflows/runcpptest.yaml | 12 ++++++------ .github/workflows/runneontest.yaml | 4 ++-- .github/workflows/runtest.yaml | 12 ++++++------ README.md | 2 ++ Testing/Source/Tests/BIQUADF32.cpp | 25 +++++++++++++++---------- 5 files changed, 31 insertions(+), 24 deletions(-) diff --git a/.github/workflows/runcpptest.yaml b/.github/workflows/runcpptest.yaml index f8a10e0d..0cabd155 100644 --- a/.github/workflows/runcpptest.yaml +++ b/.github/workflows/runcpptest.yaml @@ -1,10 +1,10 @@ name: CPP Tests -#on: -# workflow_dispatch: -# pull_request: -# branches: [main] -# push: -# branches: [main] +on: + workflow_dispatch: + pull_request: + branches: [main] + push: + branches: [main] permissions: actions: read diff --git a/.github/workflows/runneontest.yaml b/.github/workflows/runneontest.yaml index 6803e8eb..947f4190 100644 --- a/.github/workflows/runneontest.yaml +++ b/.github/workflows/runneontest.yaml @@ -67,8 +67,8 @@ jobs: cmake -G "Ninja" .. - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 +# - name: Setup tmate session +# uses: mxschmitt/action-tmate@v3 - name: Execute generic tests run: | diff --git a/.github/workflows/runtest.yaml b/.github/workflows/runtest.yaml index e7d8f427..4e68d14e 100644 --- a/.github/workflows/runtest.yaml +++ b/.github/workflows/runtest.yaml @@ -1,10 +1,10 @@ name: C Tests -#on: -# workflow_dispatch: -# pull_request: -# branches: [main] -# push: -# branches: [main] +on: + workflow_dispatch: + pull_request: + branches: [main] + push: + branches: [main] permissions: actions: read diff --git a/README.md b/README.md index 291d19aa..0d4d0dbe 100755 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ [![CPP Tests](https://github.com/ARM-software/CMSIS-DSP/actions/workflows/runcpptest.yaml/badge.svg)](https://github.com/ARM-software/CMSIS-DSP/actions/workflows/runcpptest.yaml) +[![Neon Tests](https://github.com/ARM-software/CMSIS-DSP/actions/workflows/runneontest.yaml/badge.svg)](https://github.com/ARM-software/CMSIS-DSP/actions/workflows/runneontest.yaml) + ## About CMSIS-DSP is an optimized compute library for embedded systems (DSP is in the name for legacy reasons). diff --git a/Testing/Source/Tests/BIQUADF32.cpp b/Testing/Source/Tests/BIQUADF32.cpp index 95176020..38352426 100755 --- a/Testing/Source/Tests/BIQUADF32.cpp +++ b/Testing/Source/Tests/BIQUADF32.cpp @@ -10,8 +10,7 @@ Reference patterns are generated with a double precision computation. */ -#define REL_ERROR (1.2e-3) - +#define REL_ERROR (1.0e-4) void BIQUADF32::test_biquad_cascade_df1_ref() { @@ -118,9 +117,12 @@ a double precision computation. The filter is initialized with the coefs, blockSize and numTaps. */ -#if !defined(ARM_MATH_NEON) +// Neon disabled because this filter has issues with Neon. +// So test changed to use the scalar version +//#if !defined(ARM_MATH_NEON) arm_biquad_cascade_df2T_init_f32(&this->Sdf2T,3,coefsp,statep); -#else +#if 0 +//#else float32_t *vecCoefsPtr = vecCoefs.ptr(); // Those Neon coefs must be computed from original coefs @@ -244,11 +246,13 @@ a double precision computation. float32_t *statep = state.ptr(); const int16_t *configsp = configs.ptr(); -#if !defined(ARM_MATH_NEON) +// Neon version has issues and is disabled. +// So the test is not using Neon version +//#if !defined(ARM_MATH_NEON) const float32_t *coefsp = coefs.ptr(); -#else - float32_t *coefsp = coefs.ptr(); -#endif +//#else +// float32_t *coefsp = coefs.ptr(); +//#endif const float32_t *inputp = inputs.ptr(); float32_t *outp = output.ptr(); @@ -284,9 +288,10 @@ a double precision computation. The filter is initialized with the coefs, blockSize and numTaps. */ -#if !defined(ARM_MATH_NEON) +//#if !defined(ARM_MATH_NEON) arm_biquad_cascade_df2T_init_f32(&this->Sdf2T,numStages,coefsp,statep); -#else +//#else +#if 0 float32_t *vecCoefsPtr = vecCoefs.ptr(); // Those Neon coefs must be computed from original coefs