Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: just another reverse bitscan

Author: Gerd Isenberg

Date: 13:39:53 12/22/05

Go up one level in this thread


On December 22, 2005 at 16:19:58, Zach Wegner wrote:

>Hi Gerd,
>
>Very interesting. I find this line to be particularly elegant:
>
>>  l   = (h & -m) | (l & m-1);

Hi Zach,

yes, simd stuff with mmx/sse2 works that way ;-)

>
>Unfortunately, in my prototype program it's a tad bit slower (<1%) than the
>branch/lookup approach you mention. But, it's only in perft, and I had to add a
>couple shifts so that it returns 0x88 coordinates. In a full program where the
>lookup tables aren't cached, this method could quite possibly be faster. Do you
>think this approach could also be used for the LSB, without adding extra
>instructions? It seems you would have to have compares instead of subtracts, or
>some NOTs.

Of course, should be possible, but i think anding with twos-complement,
DeBruijn-multiplication, shift and small L1-lookup is simply faster.

Gerd

>
>Regards,
>Zach



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.