Issue: v1.0.3 fixed "most" double-precision ops in SpeexLib — but "most" implies some remain. On Cortex-M targets without an FPU supporting double, this causes soft-float fallback and significant performance penalties.
Reason : AudioMark targets embedded MCUs (e.g., Cortex-M4/M33) that may lack a double-precision FPU. Any double usage causes the compiler to emit soft-float fallback code, significantly degrading performance and contradicting the benchmark's stated goal of single-precision operation.
Files Requiring changes are : lib/speexdsp/libspeexdsp/resample.c, lib/speexdsp/libspeexdsp/preprocess.c, lib/speexdsp/libspeexdsp/kiss_fft.c, lib/speexdsp/libspeexdsp/kiss_fftr.c
Issue: v1.0.3 fixed "most" double-precision ops in SpeexLib — but "most" implies some remain. On Cortex-M targets without an FPU supporting double, this causes soft-float fallback and significant performance penalties.
Reason : AudioMark targets embedded MCUs (e.g., Cortex-M4/M33) that may lack a double-precision FPU. Any
doubleusage causes the compiler to emit soft-float fallback code, significantly degrading performance and contradicting the benchmark's stated goal of single-precision operation.Files Requiring changes are : lib/speexdsp/libspeexdsp/resample.c, lib/speexdsp/libspeexdsp/preprocess.c, lib/speexdsp/libspeexdsp/kiss_fft.c, lib/speexdsp/libspeexdsp/kiss_fftr.c