On Wed, Jun 27, 2012 at 12:51 PM, Justin Ruggles <[email protected]> wrote: > On 06/25/2012 05:24 PM, Jason Garrett-Glaser wrote: >>> +cglobal conv_fltp_to_flt_2ch, 3,4,5, dst, src, len, src1 >>> + mov src1q, [srcq+gprsize] >>> + mov srcq, [srcq ] >>> + sub src1q, srcq >>> + ALIGN 16 >>> +.loop >>> + mova m0, [srcq ] >>> + mova m1, [srcq+src1q ] >>> + mova m2, [srcq +mmsize] >>> + mova m3, [srcq+src1q+mmsize] >>> + SBUTTERFLYPS2 0, 1, 4 >>> + SBUTTERFLYPS2 2, 3, 4 >>> +%if cpuflag(avx) >>> + vextractf128 [dstq ], m0, 0 >>> + vextractf128 [dstq+ 16], m1, 0 >>> + vextractf128 [dstq+ 32], m0, 1 >>> + vextractf128 [dstq+ 48], m1, 1 >>> + vextractf128 [dstq+ 64], m2, 0 >>> + vextractf128 [dstq+ 80], m3, 0 >>> + vextractf128 [dstq+ 96], m2, 1 >>> + vextractf128 [dstq+112], m3, 1 >>> +%else >>> + mova [dstq ], m0 >>> + mova [dstq+1*mmsize], m1 >>> + mova [dstq+2*mmsize], m2 >>> + mova [dstq+3*mmsize], m3 >>> +%endif >> >> Is the AVX version any faster? This function looks load/store bound, >> and no CPU in existence has 32-byte store units, so I doubt it gets >> any boost. > > Yes. > > Sandy Bridge: > C - 2992 > SSE - 205 > AVX - 178
I meant more specifically the YMM version. + SBUTTERFLYPS2 0, 1, 4 + SBUTTERFLYPS2 2, 3, 4 These benefit from AVX even with xmm registers. If you do an AVX version that doesn't use ymm (INIT_XMM), is it any slower than the current code? Jason _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
