[FFmpeg-trac] #6848(undetermined:new): checkasm float_dsp.vector_dmul sometimes fails on i386
FFmpeg
trac at avcodec.org
Mon Nov 20 13:43:44 EET 2017
#6848: checkasm float_dsp.vector_dmul sometimes fails on i386
-------------------------------------+-------------------------------------
Reporter: jcowgill | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Sometimes (about 1 in 10 times), the float_dsp.vector_dmul checkasm test
fails on i386.
Example:
{{{
$ tests/checkasm/checkasm --test=float_dsp 2642491962
checkasm: using random seed 2642491962
SSE:
- float_dsp.vector_fmul [OK]
- float_dsp.vector_fmac [OK]
- float_dsp.butterflies_float [OK]
- float_dsp.scalarproduct_float [OK]
93: -53.395181798898 - -53.395181798898 = -7.1054273576e-15
SSE2:
vector_dmul_scalar_sse2 (float_dsp.c:171)
- float_dsp.vector_dmul [FAILED]
- float_dsp.vector_dmac [OK]
}}}
The failures are reprodicible given the same random seed. Note you
probably need a toolchain which uses the x87 FPU to reproduce this (eg
Fedora's gcc will not work).
I think this happens because the SSE routines compute the multiplication
to double precision, but the reference C routines compute the
multiplcation to 80-bit precision. Sometimes the results are different.
I noticed this patch which I think is an attempt to solve this. While it
does reduce the probability of failure, I can still get the test to fail
when run > 1000 times.
https://patchwork.ffmpeg.org/patch/5743/
Downstream bug: https://bugs.debian.org/882075
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6848>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list