Revision 35de5d24 libavcodec/ppc/float_altivec.c

View differences:

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<len-3; 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<len-3; 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