lkml.org 
[lkml]   [2008]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Alternative implementation of the generic __ffs
On Fri, 18 Apr 2008, Joe Perches wrote:

> On Fri, 2008-04-18 at 18:11 -0700, dean gaudet wrote:
> > have you benchmarked it?
>
> I modified Alexander's benchmark:
> http://lkml.org/lkml/2008/4/18/267
> to include 32 and 64 bit variants called smallest.
>
> On an old ARM:

i'm guessing the 32-bit constants suck :(

the code could be modified to use 16-bit constants only -- it would add
some dependent operations though (to move the hot bit into the low
16-bits).

-dean


>
> $ gcc --version gcc (GCC) 3.4.6
>
> $ cat /proc/cpuinfo
> Processor : Intel StrongARM-110 rev 4 (v4l)
> BogoMIPS : 262.14
> Hardware : Rebel-NetWinder
> Revision : 57ff
> Serial : 000000000000185c
>
> $ gcc -Os -fomit-frame-pointer ffs.c
> $ ./a.out
> Original: 3180 tics, 8379 tics
> New: 4280 tics, 8890 tics
> Smallest: 4027 tics, 7835 tics
> Empty loop: 1543 tics, 2260 tics
>
> $ gcc -O2 -fomit-frame-pointer ffs.c
> $ ./a.out
> Original: 3161 tics, 7843 tics
> New: 4778 tics, 8783 tics
> Smallest: 4408 tics, 7149 tics
> Empty loop: 1515 tics, 2140 tics
>
> $ gcc -O3 -fomit-frame-pointer ffs.c
> $ ./a.out
> Original: 3078 tics, 7692 tics
> New: 4714 tics, 8671 tics
> Smallest: 4344 tics, 7117 tics
> Empty loop: 1444 tics, 2024 tics


\
 
 \ /
  Last update: 2008-04-19 06:17    [W:0.295 / U:0.116 seconds]
©2003-2014 Jasper Spaans. Advertise on this site