24 lines
444 B
Org Mode
24 lines
444 B
Org Mode
** Some current ideas
|
|
- Test popbit/square_of with intrinsincs, something like :
|
|
bitboard_t popbit64(bitboard_t *bb)
|
|
{
|
|
bitboard_t first = _blsi_u64(*bb);
|
|
*bb ^= lsb;
|
|
return first;
|
|
}
|
|
|
|
square_t square_of(bitboard_t bb) {
|
|
return _tzcnt_u64(bb);
|
|
}
|
|
|
|
loop:
|
|
while (bb) {
|
|
bitboard_t first = popbit(bb);
|
|
square_t sq = square_of(first);
|
|
}
|
|
|
|
Or maybe faster:
|
|
for (; bb; bb &= bb - 1) {
|
|
sq = _tzcnt_u64(bb);
|
|
}
|