ffmpeg/tests/checkasm
Martin Storsjö aad0e26f93 checkasm: aacpsdsp: Tolerate extra intermediate precision in stereo_interpolate
The stereo_interpolate functions add h_step to the values h
BUF_SIZE times. Within the stereo_interpolate C functions, the
values h (h0-h3, h00-h13) are declared as local float variables,
but the compiler is free to keep them in a register with extra
precision.

If the accumulation is rounded to 32 bit float precision after
each step, the less significant bits of h_step end up ignored
and the sum can deviate, affecting the end result more than
the currently set EPS.

By clearing the log2(BUF_SIZE) lower bits of h_step, we make sure
that the accumulation shouldn't differ significantly, regardless
of any extra precision in the accmulating register/variable.

This fixes the aacpsdsp checkasm test when built with clang for
mingw/x86_32.

Signed-off-by: Martin Storsjö <martin@martin.st>
2019-12-18 15:15:29 +02:00
..
aarch64
arm
x86
.gitignore
aacpsdsp.c checkasm: aacpsdsp: Tolerate extra intermediate precision in stereo_interpolate 2019-12-18 15:15:29 +02:00
af_afir.c checkasm: af_afir: Use a dynamic tolerance depending on values 2019-12-12 23:57:08 +02:00
alacdsp.c
audiodsp.c
blockdsp.c
bswapdsp.c
checkasm.c checkasm/vf_eq: add test for vf_eq 2019-09-26 08:10:31 +08:00
checkasm.h checkasm/vf_eq: add test for vf_eq 2019-09-26 08:10:31 +08:00
exrdsp.c
fixed_dsp.c
flacdsp.c
float_dsp.c checkasm: float_dsp: Scale FLT/DBL_EPSILON sufficiently when comparing 2019-12-11 22:19:45 +02:00
fmtconvert.c
g722dsp.c
h264dsp.c
h264pred.c
h264qpel.c
hevc_add_res.c
hevc_idct.c
hevc_sao.c
huffyuvdsp.c
jpeg2000dsp.c
llviddsp.c
llviddspenc.c
Makefile checkasm/vf_eq: add test for vf_eq 2019-09-26 08:10:31 +08:00
opusdsp.c
pixblockdsp.c
sbrdsp.c
sw_rgb.c
synth_filter.c
utvideodsp.c
v210dec.c
v210enc.c
vf_blend.c
vf_colorspace.c
vf_eq.c checkasm/vf_eq: add test for vf_eq 2019-09-26 08:10:31 +08:00
vf_gblur.c
vf_hflip.c
vf_nlmeans.c
vf_threshold.c
videodsp.c
vp8dsp.c
vp9dsp.c