x86: synth filter float: implement SSE2 version
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Fri, 14 Feb 2014 16:00:48 +0000 (16:00 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 28 Feb 2014 19:34:40 +0000 (20:34 +0100)
commit2cdbcc004837ce092a14f326f24d97a29512a2c3
tree7fc4341ce3da5c0aae72033134c5daf7745408fd
parent5333e0dd66c5695fc708bc9d7af4bf8750674b8f
x86: synth filter float: implement SSE2 version

Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/synth_filter.c
libavcodec/synth_filter.h
libavcodec/x86/dcadsp.asm
libavcodec/x86/dcadsp_init.c