comparison ppc/float_altivec.c @ 3583:562758eaf7bf libavcodec

10l, thanks to Emanuele Giaquinta <exg@gentoo.org> for testing and finding the issue
author lu_zero
date Tue, 15 Aug 2006 20:36:05 +0000
parents 49082584828a
children ff6720290478
comparison
equal deleted inserted replaced
3582:6310389a9688 3583:562758eaf7bf
136 s0 = vec_ld(0, src0+i); 136 s0 = vec_ld(0, src0+i);
137 s1 = vec_ld(0, src1+i); 137 s1 = vec_ld(0, src1+i);
138 s2 = vec_ld(0, src2+i); 138 s2 = vec_ld(0, src2+i);
139 edges = vec_perm(t1 ,t0, mask); 139 edges = vec_perm(t1 ,t0, mask);
140 d = vec_madd(s0,s1,s2); 140 d = vec_madd(s0,s1,s2);
141 t0 = vec_perm(edges, d, align); 141 t0 = vec_perm(d, edges, align);
142 t1 = vec_perm(d, edges, align); 142 t1 = vec_perm(edges, d, align);
143 vec_st(t0, 0, dst+i); 143 vec_st(t0, 0, dst+i);
144 vec_st(t1, 15, dst+i); 144 vec_st(t1, 15, dst+i);
145 t0 = t1; 145 t0 = t1;
146 } 146 }
147 else 147 else
164 t1 = vec_cts(s1, 0); 164 t1 = vec_cts(s1, 0);
165 d1 = vec_ld(15, dst+i); 165 d1 = vec_ld(15, dst+i);
166 d = vec_packs(t0,t1); 166 d = vec_packs(t0,t1);
167 d1 = vec_perm(d1, d0, vec_lvsl(0,dst+i)); 167 d1 = vec_perm(d1, d0, vec_lvsl(0,dst+i));
168 align = vec_lvsr(0, dst+i); 168 align = vec_lvsr(0, dst+i);
169 d0 = vec_perm(d1, d, align); 169 d0 = vec_perm(d, d1, align);
170 d1 = vec_perm(d, d1, align); 170 d1 = vec_perm(d1, d, align);
171 vec_st(d0, 0, dst+i); 171 vec_st(d0, 0, dst+i);
172 vec_st(d1,15, dst+i); 172 vec_st(d1,15, dst+i);
173 } 173 }
174 else 174 else
175 for(i=0; i<len-7; i+=8) { 175 for(i=0; i<len-7; i+=8) {