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

Reply via email to