From 8d3d51005a81d45914c548f0c3c7810b7bef5457 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Sat, 23 Aug 2008 21:02:30 +0000 Subject: Introduce float_to_int16_one_altivec Originally committed as revision 14927 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/ppc/float_altivec.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/ppc/float_altivec.c b/libavcodec/ppc/float_altivec.c index fd4b12b941..298172554d 100644 --- a/libavcodec/ppc/float_altivec.c +++ b/libavcodec/ppc/float_altivec.c @@ -149,6 +149,17 @@ static void vector_fmul_add_add_altivec(float *dst, const float *src0, ff_vector_fmul_add_add_c(dst, src0, src1, src2, src3, len, step); } + +static vector signed short +float_to_int16_one_altivec(const float *src) +{ + vector float s0 = vec_ld(0, src); + vector float s1 = vec_ld(16, src); + vector signed int t0 = vec_cts(s0, 0); + vector signed int t1 = vec_cts(s1, 0); + return vec_packs(t0,t1); +} + void float_to_int16_altivec(int16_t *dst, const float *src, int len) { int i; @@ -158,13 +169,9 @@ void float_to_int16_altivec(int16_t *dst, const float *src, int len) vector unsigned char align; if(((long)dst)&15) //FIXME for(i=0; i