Mercurial > libavcodec.hg
comparison ppc/float_altivec.c @ 4387:05ab6e897ffd libavcodec
10l, there is a corner case afterall...
| author | lu_zero |
|---|---|
| date | Tue, 23 Jan 2007 12:04:48 +0000 |
| parents | c8c591fe26f8 |
| children | d5ba514e3f4a |
comparison
equal
deleted
inserted
replaced
| 4386:09849d8689d6 | 4387:05ab6e897ffd |
|---|---|
| 74 int i; | 74 int i; |
| 75 vector float d, s0, s1, s2, t0, t1, edges; | 75 vector float d, s0, s1, s2, t0, t1, edges; |
| 76 vector unsigned char align = vec_lvsr(0,dst), | 76 vector unsigned char align = vec_lvsr(0,dst), |
| 77 mask = vec_lvsl(0, dst); | 77 mask = vec_lvsl(0, dst); |
| 78 | 78 |
| 79 t0 = vec_ld(0, dst); | |
| 80 #if 0 //FIXME: there is still something wrong | 79 #if 0 //FIXME: there is still something wrong |
| 81 if (step == 2) { | 80 if (step == 2) { |
| 82 int y; | 81 int y; |
| 83 vector float d0, d1, s3, t2; | 82 vector float d0, d1, s3, t2; |
| 84 vector unsigned int sel = | 83 vector unsigned int sel = |
| 132 } | 131 } |
| 133 } else | 132 } else |
| 134 #endif | 133 #endif |
| 135 if (step == 1 && src3 == 0) | 134 if (step == 1 && src3 == 0) |
| 136 for (i=0; i<len-3; i+=4) { | 135 for (i=0; i<len-3; i+=4) { |
| 136 t0 = vec_ld(0, dst+i); | |
| 137 t1 = vec_ld(15, dst+i); | 137 t1 = vec_ld(15, dst+i); |
| 138 s0 = vec_ld(0, src0+i); | 138 s0 = vec_ld(0, src0+i); |
| 139 s1 = vec_ld(0, src1+i); | 139 s1 = vec_ld(0, src1+i); |
| 140 s2 = vec_ld(0, src2+i); | 140 s2 = vec_ld(0, src2+i); |
| 141 edges = vec_perm(t1 ,t0, mask); | 141 edges = vec_perm(t1 ,t0, mask); |
| 142 d = vec_madd(s0,s1,s2); | 142 d = vec_madd(s0,s1,s2); |
| 143 t1 = vec_perm(d, edges, align); | 143 t1 = vec_perm(d, edges, align); |
| 144 t0 = vec_perm(edges, d, align); | 144 t0 = vec_perm(edges, d, align); |
| 145 vec_st(t1, 15, dst+i); | 145 vec_st(t1, 15, dst+i); |
| 146 vec_st(t0, 0, dst+i); | 146 vec_st(t0, 0, dst+i); |
| 147 t0 = t1; | |
| 148 } | 147 } |
| 149 else | 148 else |
| 150 ff_vector_fmul_add_add_c(dst, src0, src1, src2, src3, len, step); | 149 ff_vector_fmul_add_add_c(dst, src0, src1, src2, src3, len, step); |
| 151 } | 150 } |
| 152 | 151 |
