10l, there is a corner case afterall...
[libav.git] / libavcodec / ppc / float_altivec.c
index c6e43de..22c2de6 100644 (file)
@@ -76,7 +76,6 @@ static void vector_fmul_add_add_altivec(float *dst, const float *src0,
     vector unsigned char align = vec_lvsr(0,dst),
                          mask = vec_lvsl(0, dst);
 
-    t0 = vec_ld(0, dst);
 #if 0 //FIXME: there is still something wrong
     if (step == 2) {
         int y;
@@ -134,6 +133,7 @@ static void vector_fmul_add_add_altivec(float *dst, const float *src0,
     #endif
     if (step == 1 && src3 == 0)
         for (i=0; i<len-3; i+=4) {
+            t0 = vec_ld(0, dst+i);
             t1 = vec_ld(15, dst+i);
             s0 = vec_ld(0, src0+i);
             s1 = vec_ld(0, src1+i);
@@ -144,7 +144,6 @@ static void vector_fmul_add_add_altivec(float *dst, const float *src0,
             t0 = vec_perm(edges, d, align);
             vec_st(t1, 15, dst+i);
             vec_st(t0, 0, dst+i);
-            t0 = t1;
         }
     else
         ff_vector_fmul_add_add_c(dst, src0, src1, src2, src3, len, step);