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.026 / U:1.088 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site