[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