• Martin Storsjö's avatar
    checkasm: aacpsdsp: Tolerate extra intermediate precision in stereo_interpolate · aad0e26f
    Martin Storsjö authored
    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: 's avatarMartin Storsjö <martin@martin.st>
    aad0e26f
Name
Last commit
Last update
..
api Loading commit data...
checkasm Loading commit data...
dnn Loading commit data...
fate Loading commit data...
filtergraphs Loading commit data...
ref Loading commit data...
.gitignore Loading commit data...
Makefile Loading commit data...
audiogen.c Loading commit data...
audiomatch.c Loading commit data...
base64.c Loading commit data...
copycooker.sh Loading commit data...
extended.ffconcat Loading commit data...
fate-run.sh Loading commit data...
fate-valgrind.supp Loading commit data...
fate.sh Loading commit data...
md5.sh Loading commit data...
refcmp-metadata.awk Loading commit data...
reference.pnm Loading commit data...
rotozoom.c Loading commit data...
simple1.ffconcat Loading commit data...
simple2.ffconcat Loading commit data...
test.ffmeta Loading commit data...
tiny_psnr.c Loading commit data...
tiny_ssim.c Loading commit data...
utils.c Loading commit data...
videogen.c Loading commit data...