Mercurial > libavcodec.hg
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) { |