[FFmpeg-devel] [PATCH] Avoid integer to float point domain crossing penalties

James Almer jamrial at gmail.com
Thu Jun 27 16:41:26 EEST 2019


On 6/27/2019 3:01 AM, Adrian Tong wrote:
> Anyone interested in reviewing this patch ?
> 
> Thanks
> -Adrian
> 
> On Mon, 24 Jun 2019 at 13:57, <adriantong1024 at gmail.com> wrote:
> 
>> From: Adrian Tong <adriantong1024 at gmail.com>
>>
>> On internal benchmark, I see a noisy-level difference (more likely to be
>> an improvement) in ff_h264_decode_mb_cabac which calls this function.
>> ---
>>  libavutil/x86/intreadwrite.h | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavutil/x86/intreadwrite.h b/libavutil/x86/intreadwrite.h
>> index 4061d19231..df0bf45ae1 100644
>> --- a/libavutil/x86/intreadwrite.h
>> +++ b/libavutil/x86/intreadwrite.h
>> @@ -68,8 +68,8 @@ static av_always_inline void AV_COPY128(void *d, const
>> void *s)
>>  {
>>      struct v {uint64_t v[2];};
>>
>> -    __asm__("movaps   %1, %%xmm0  \n\t"
>> -            "movaps   %%xmm0, %0  \n\t"
>> +    __asm__("movdqa   %1, %%xmm0  \n\t"
>> +            "movdqa   %%xmm0, %0  \n\t"

movdqa is an sse2 instruction, and this function is used when sse is the
minimum required instruction set configured in the compiler. There's no
warranty that sse2 will be present at runtime on builds that use this
function right now.

Either change the function's preprocessor check from __SSE__ to
__SSE2__, or use new wrappers here to choose between movaps and movdqa
depending on __SSE2__ being defined or not. In both cases, movdqa will
be used only on builds where sse2 support is required.


>>              : "=m"(*(struct v*)d)
>>              : "m" (*(const struct v*)s)
>>              : "xmm0");
>> --
>> 2.20.1 (Apple Git-117)
>>
>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list