[FFmpeg-devel] [PATCH] Set -mfpmath=sse for cpus that support it

Vitor Sessak vitor1001
Thu Aug 27 16:01:53 CEST 2009


M?ns Rullg?rd wrote:
> Vitor Sessak <vitor1001 at gmail.com> writes:
> 
>> $subj, 10% faster TwinVQ decoding.
>>
>> As a side note, this option is not enabled even when passing
>> "-march=native -mtune=native" to GCC. A possible reason for it,
>> quoting the GCC doc, is "The resulting code should be considerably
>> faster [...] but may break some existing code that expects temporaries
>> to be 80bit.".
>>
>> -Vitor
>>
>> Index: configure
>> ===================================================================
>> --- configure	(revision 19681)
>> +++ configure	(working copy)
>> @@ -1649,22 +1649,27 @@
>>          cpuflags="-mcpu=cell"
>>          enable ldbrx
>>      ;;
>> -    # targets that do NOT support conditional mov (cmov)
>>      i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
>>          cpuflags="-march=$cpu"
>>          disable cmov
>>      ;;
>> -    # targets that do support conditional mov (cmov)
>> -    i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
>> +    i686|pentiumpro|pentium2|athlon|athlon-tbird)
>>          cpuflags="-march=$cpu"
>>          enable cmov
>>          enable fast_cmov
>>      ;;
>> +    pentium3|pentium-m|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
>> +        cpuflags="-march=$cpu"
>> +        enable cmov
>> +        enable fast_cmov
>> +        check_cflags -mfpmath=sse
>> +    ;;
>>      # targets that do support conditional mov but on which it's slow
>>      pentium4|pentium4m|prescott|nocona)
>>          cpuflags="-march=$cpu"
>>          enable cmov
>>          disable fast_cmov
>> +        check_cflags -mfpmath=sse
>>      ;;
>>      sparc64)
>>          cpuflags="-mcpu=v9"
> 
> You can't use check_cflags there.  Is there any reason to not attempt
> using this flag with --cpu values?  I imagine a simple check_cflags
> line together with the other x86 stuff (ebx checks etc) should be
> enough.

I can't just call "check_cflags -mfpmath=sse" for every x86 CPU because 
GCC does not fail with "-march=386 -mfpmath=sse", it gives a warning and 
uses 387 (so check_cflags would always add it). But I moved it to the 
more relevant part of the source (new patch attached).

-Vitor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mfpmath2.diff
Type: text/x-diff
Size: 539 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090827/5e7c2be2/attachment.diff>



More information about the ffmpeg-devel mailing list