Mercurial > libavcodec.hg
diff arm/dsputil_neon.c @ 10221:2791393081ff libavcodec
ARM: NEON optimisations for some dsputil functions
NEON versions of the following functions are added:
vector_fmul_scalar
vector_fmul_sv_scalar
sv_fmul_scalar
butterflies_float
author | mru |
---|---|
date | Tue, 22 Sep 2009 00:48:48 +0000 |
parents | 1e651d94b35f |
children | b783894a1c62 |
line wrap: on
line diff
--- a/arm/dsputil_neon.c Tue Sep 22 00:48:45 2009 +0000 +++ b/arm/dsputil_neon.c Tue Sep 22 00:48:48 2009 +0000 @@ -157,6 +157,17 @@ void ff_vector_fmul_window_neon(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len); +void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul, + int len); +void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src, + const float **vp, float mul, int len); +void ff_vector_fmul_sv_scalar_4_neon(float *dst, const float *src, + const float **vp, float mul, int len); +void ff_sv_fmul_scalar_2_neon(float *dst, const float **vp, float mul, + int len); +void ff_sv_fmul_scalar_4_neon(float *dst, const float **vp, float mul, + int len); +void ff_butterflies_float_neon(float *v1, float *v2, int len); void ff_float_to_int16_neon(int16_t *, const float *, long); void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); @@ -269,6 +280,14 @@ c->vector_fmul = ff_vector_fmul_neon; c->vector_fmul_window = ff_vector_fmul_window_neon; + c->vector_fmul_scalar = ff_vector_fmul_scalar_neon; + c->butterflies_float = ff_butterflies_float_neon; + + c->vector_fmul_sv_scalar[0] = ff_vector_fmul_sv_scalar_2_neon; + c->vector_fmul_sv_scalar[1] = ff_vector_fmul_sv_scalar_4_neon; + + c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon; + c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon; if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { c->float_to_int16 = ff_float_to_int16_neon;