Revision 35de5d24 libavcodec/ppc/float_altivec.c
libavcodec/ppc/float_altivec.c  

75  75 
vector unsigned char align = vec_lvsr(0,dst), 
76  76 
mask = vec_lvsl(0, dst); 
77  77  
78 
for (i=0; i<len3; i+=4) {


79 
t0 = vec_ld(0, dst+i);


80 
t1 = vec_ld(15, dst+i);


81 
s0 = vec_ld(0, src0+i);


82 
s1 = vec_ld(0, src1+i);


83 
s2 = vec_ld(0, src2+i);


84 
edges = vec_perm(t1 ,t0, mask);


85 
d = vec_madd(s0,s1,s2);


86 
t1 = vec_perm(d, edges, align);


87 
t0 = vec_perm(edges, d, align);


88 
vec_st(t1, 15, dst+i);


89 
vec_st(t0, 0, dst+i);


90 
}


78 
for (i=0; i<len3; i+=4) { 

79 
t0 = vec_ld(0, dst+i); 

80 
t1 = vec_ld(15, dst+i); 

81 
s0 = vec_ld(0, src0+i); 

82 
s1 = vec_ld(0, src1+i); 

83 
s2 = vec_ld(0, src2+i); 

84 
edges = vec_perm(t1 ,t0, mask); 

85 
d = vec_madd(s0,s1,s2); 

86 
t1 = vec_perm(d, edges, align); 

87 
t0 = vec_perm(edges, d, align); 

88 
vec_st(t1, 15, dst+i); 

89 
vec_st(t0, 0, dst+i); 

90 
} 

91  91 
} 
92  92  
93  93 
static void vector_fmul_window_altivec(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len) 
Also available in: Unified diff