[FFmpeg-devel] [PATCH] checkasm: ac3dsp: Fix typos, increase tolerance to fix stray checkasm failures (PR #20173)
Martin Storsjö
code at ffmpeg.org
Fri Aug 8 14:06:34 EEST 2025
PR #20173 opened by Martin Storsjö (mstorsjo)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20173
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20173.patch
From afba3ba9bde3245f39fc9725341ff8a7e537938d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
Date: Fri, 8 Aug 2025 13:55:02 +0300
Subject: [PATCH 1/2] checkasm: ac3dsp: Fix function name typos for
sum_square_butterfly
---
tests/checkasm/ac3dsp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/checkasm/ac3dsp.c b/tests/checkasm/ac3dsp.c
index b5db3a4381..a8e96d793f 100644
--- a/tests/checkasm/ac3dsp.c
+++ b/tests/checkasm/ac3dsp.c
@@ -152,7 +152,7 @@ static void check_ac3_sum_square_butterfly_int32(AC3DSPContext *c) {
randomize_i24(rt, ELEMS);
if (check_func(c->sum_square_butterfly_int32,
- "ac3_sum_square_bufferfly_int32")) {
+ "ac3_sum_square_butterfly_int32")) {
call_ref(v1, lt, rt, ELEMS);
call_new(v2, lt, rt, ELEMS);
@@ -177,7 +177,7 @@ static void check_ac3_sum_square_butterfly_float(AC3DSPContext *c) {
randomize_float(rt, ELEMS);
if (check_func(c->sum_square_butterfly_float,
- "ac3_sum_square_bufferfly_float")) {
+ "ac3_sum_square_butterfly_float")) {
call_ref(v1, lt, rt, ELEMS);
call_new(v2, lt, rt, ELEMS);
--
2.49.1
From 899abc882091998b1a6dc75d289b55383287dbb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
Date: Fri, 8 Aug 2025 13:59:33 +0300
Subject: [PATCH 2/2] checkasm: ac3dsp: Increase the float tolerance for
sum_square_butterfly_float
Accept up to 13 ULP difference.
This fixes running "checkasm --test=ac3dsp 3044836819" on ARM.
Depending on how the SIMD implementations aggregate numbers,
larger/smaller values might not end up accumulated in exactly
the same way; the current NEON implementation for ARM aggregates
into vectors of 2 elements. If it would aggregate into vectors
of 4 elements instead, like the AArch64 version does, this particular
case would end up with a smaller difference.
---
tests/checkasm/ac3dsp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/checkasm/ac3dsp.c b/tests/checkasm/ac3dsp.c
index a8e96d793f..97732112a5 100644
--- a/tests/checkasm/ac3dsp.c
+++ b/tests/checkasm/ac3dsp.c
@@ -181,7 +181,7 @@ static void check_ac3_sum_square_butterfly_float(AC3DSPContext *c) {
call_ref(v1, lt, rt, ELEMS);
call_new(v2, lt, rt, ELEMS);
- if (!float_near_ulp_array(v1, v2, 11, 4))
+ if (!float_near_ulp_array(v1, v2, 13, 4))
fail();
bench_new(v2, lt, rt, ELEMS);
--
2.49.1
More information about the ffmpeg-devel
mailing list