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
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to