> +cglobal conv_flt_to_s16p_2ch, 3,4,7, dst0, src, len, dst1
> +    lea       lenq, [2*lend]
> +    mov      dst1q, [dst0q+gprsize]
> +    mov      dst0q, [dst0q        ]
> +    lea       srcq, [srcq+4*lenq]
> +    add      dst0q, lenq
> +    add      dst1q, lenq
> +    neg       lenq
> +    mova        m6, [pf_s16_scale]
> +    ALIGN 16
> +.loop:
> +    mova       m0, [srcq+4*lenq         ]
> +    mova       m1, [srcq+4*lenq+  mmsize]
> +    mova       m2, [srcq+4*lenq+2*mmsize]
> +    mova       m3, [srcq+4*lenq+3*mmsize]
> +    shufps     m4, m0, m1, q2020
> +    shufps     m5, m0, m1, q3131
> +    shufps     m0, m2, m3, q2020
> +    shufps     m1, m2, m3, q3131

If you can, avoid 3-operand in as many of these as you can (I'm
guessing the second and fourth).  Again, fewer mova on non-AVX.

> +    mulps      m4, m4, m6
> +    mulps      m5, m5, m6
> +    mulps      m0, m0, m6
> +    mulps      m1, m1, m6
> +    cvtps2dq   m4, m4
> +    cvtps2dq   m5, m5
> +    cvtps2dq   m0, m0
> +    cvtps2dq   m1, m1
> +    packssdw   m4, m0
> +    packssdw   m5, m1
> +    mova  [dst0q+lenq], m4
> +    mova  [dst1q+lenq], m5
> +    add      lenq, mmsize
> +    jl .loop
> +    REP_RET

Otherwise looks okay.

Jason
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to