BitScanReverseではなくBitScanForwardを使えという話

stacksさんがコメントで書かれてましたが、


細かい話ですが、取り出す順序を問わないforeachであれば、
bsr(_BitScanReverse)を使って_c_ ^= 1 << _index_;で消すよりも、
bsf(_BitScanForward)を使って_c_ &= _c_ - 1;で消したほうが少しだけ速いはずです。
前者はmov/shl/xorですが、後者はlea/andで済むので。
また、AMD系だと、bsrよりbsfのほうが少し効率がいいようです。


http://d.hatena.ne.jp/mkomiya/20091116/1258382260
指し手生成祭り・_BitScanForwardでさらに高速化(小宮日記)


それはナイスアイデア!コンピュータ将棋の進歩というのは、df-pnやボナンザメソッドのような大発明だけではなく、このような小さな発見も立派な進歩に値すると思います。