> +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
