[Ffmpeg-devel] Fixed vs. Floating Point AAC

Loren Merritt lorenm
Fri Mar 10 01:00:54 CET 2006


On Thu, 9 Mar 2006, Rich Felker wrote:
> On Thu, Mar 09, 2006 at 01:07:41PM -0800, Loren Merritt wrote:
>> On Thu, 9 Mar 2006, Michael Niedermayer wrote:
>>
>>> so reusing some benchmark proggy here are the results, nicely written and
>>> source attached, feel free to design your own cpu which can do
>>> integer multiplies faster then floatingpoint ones
>>>
>>>                       latency throughput
>>> P3
>>> int     32*32    ->32   4       1
>>> int     32*32>>32->32   5.5     1/4.5
>>> float   32*32    ->32   5       1/2
>>>
>>> Duron
>>> int     32*32    ->32   4       1/2
>>> int     32*32>>32->32   6       1/4.5
>>> float   32*32    ->32   3.5     1
>>>
>>> Athlon
>>> int     32*32    ->32   4       1/2
>>> int     32*32>>32->32   6.5     1/5
>>> float   32*32    ->32   3.5     1
>>
>> P4
>> int     32*32    ->32   14      1/4.5
>> int     32*32>>32->32   19      1/10.5
>> float   32*32    ->32    7      1/2
>
> How can 32*32>>32 possibly be slower than 32*32? It's just a matter of
> whether you read the result from eax or edx...

It's a matter of whether you put the source in eax and read the result 
from edx (32*32>>32) or use any two registers you want (32*32).
In the latency test, the extra 2x mov are expensive. And in the throughput 
test, the extra reg caused spillage too.

--Loren Merritt





More information about the ffmpeg-devel mailing list