Revision 6eabb0d3 libavcodec/ppc/float_altivec.c
libavcodec/ppc/float_altivec.c | ||
---|---|---|
23 | 23 |
#include "dsputil_altivec.h" |
24 | 24 |
#include "util_altivec.h" |
25 | 25 |
|
26 |
static void vector_fmul_altivec(float *dst, const float *src, int len) |
|
26 |
static void vector_fmul_altivec(float *dst, const float *src0, const float *src1, int len)
|
|
27 | 27 |
{ |
28 | 28 |
int i; |
29 | 29 |
vector float d0, d1, s, zero = (vector float)vec_splat_u32(0); |
30 | 30 |
for(i=0; i<len-7; i+=8) { |
31 |
d0 = vec_ld(0, dst+i);
|
|
32 |
s = vec_ld(0, src+i); |
|
33 |
d1 = vec_ld(16, dst+i);
|
|
31 |
d0 = vec_ld(0, src0+i);
|
|
32 |
s = vec_ld(0, src1+i);
|
|
33 |
d1 = vec_ld(16, src0+i);
|
|
34 | 34 |
d0 = vec_madd(d0, s, zero); |
35 |
d1 = vec_madd(d1, vec_ld(16,src+i), zero); |
|
35 |
d1 = vec_madd(d1, vec_ld(16,src1+i), zero);
|
|
36 | 36 |
vec_st(d0, 0, dst+i); |
37 | 37 |
vec_st(d1, 16, dst+i); |
38 | 38 |
} |
Also available in: Unified diff