ffmpeg/libavcodec/x86
Christophe Gisquet e5c9de2ab7 rv40: x86 SIMD for biweight
Provide MMX, SSE2 and SSSE3 versions, with a fast-path when the weights are
multiples of 512 (which is often the case when the values round up nicely).

*_TIMER report for the 16x16 and 8x8 cases:
C:
9015 decicycles in 16, 524257 runs, 31 skips
2656 decicycles in 8, 524271 runs, 17 skips
MMX:
4156 decicycles in 16, 262090 runs, 54 skips
1206 decicycles in 8, 262131 runs, 13 skips
MMX on fast-path:
2760 decicycles in 16, 524222 runs, 66 skips
995 decicycles in 8, 524252 runs, 36 skips
SSE2:
2163 decicycles in 16, 262131 runs, 13 skips
832 decicycles in 8, 262137 runs, 7 skips
SSE2 with fast path:
1783 decicycles in 16, 524276 runs, 12 skips
711 decicycles in 8, 524283 runs, 5 skips
SSSE3:
2117 decicycles in 16, 262136 runs, 8 skips
814 decicycles in 8, 262143 runs, 1 skips
SSSE3 with fast path:
1315 decicycles in 16, 524285 runs, 3 skips
578 decicycles in 8, 524286 runs, 2 skips

This means around a 4% speedup for some sequences.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 23:58:25 +01:00
..
Makefile rv40: x86 SIMD for biweight 2012-01-30 23:58:25 +01:00
ac3dsp.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
ac3dsp_mmx.c
cabac.h
cavsdsp_mmx.c
dct32_sse.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
deinterlace.asm
dnxhd_mmx.c
dsputil_mmx.c x86 dsputil: provide SSE2/SSSE3 versions of bswap_buf 2012-01-30 10:19:55 +01:00
dsputil_mmx.h
dsputil_mmx_avg_template.c
dsputil_mmx_qns_template.c
dsputil_mmx_rnd_template.c
dsputil_yasm.asm x86 dsputil: provide SSE2/SSSE3 versions of bswap_buf 2012-01-30 10:19:55 +01:00
dsputilenc_mmx.c
dsputilenc_yasm.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
fdct_mmx.c
fft.c
fft.h
fft_3dn.c
fft_3dn2.c
fft_mmx.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
fft_sse.c
fmtconvert.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
fmtconvert_mmx.c x86: Place mm_flags variable declaration below the appropriate #ifdef. 2012-01-30 23:58:23 +01:00
h264_chromamc.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_chromamc_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_deblock.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_deblock_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_i386.h
h264_idct.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_idct_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_intrapred.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_intrapred_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_intrapred_init.c
h264_qpel_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_qpel_mmx.c
h264_weight.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_weight_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264dsp_mmx.c
idct_mmx.c
idct_mmx_xvid.c
idct_sse2_xvid.c
idct_xvid.h
imdct36_sse.asm imdct36: mark SSE functions as using all 16 XMM registers. 2012-01-29 08:14:05 -08:00
lpc_mmx.c
mathops.h
mlpdsp.c
motion_est_mmx.c
mpegaudiodec_mmx.c
mpegvideo_mmx.c
mpegvideo_mmx_template.c
pngdsp-init.c png: add SSE2 version for add_bytes_l2. 2012-01-29 18:52:17 -08:00
pngdsp.asm png: add support for bpp>4 to paeth x86 SIMD code. 2012-01-29 21:22:50 -08:00
proresdsp-init.c
proresdsp.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
rv34dsp.asm
rv34dsp_init.c
rv40dsp.asm rv40: x86 SIMD for biweight 2012-01-30 23:58:25 +01:00
rv40dsp_init.c rv40: x86 SIMD for biweight 2012-01-30 23:58:25 +01:00
simple_idct_mmx.c
snowdsp_mmx.c
vc1dsp_mmx.c
vc1dsp_yasm.asm
vp3dsp.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
vp8dsp-init.c
vp8dsp.asm
vp56_arith.h
vp56dsp.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
vp56dsp_init.c