Use Bitboard over Square in movegen

It uses pos.checkers() on target when movegen is the type of EVASION.
It simplify the code. And it's also expected a slightly speed up,
because Bitboard is more direct when doing bitwise.

Passed STC:
LLR: 2.93 (-2.94,2.94) {-1.25,0.25}
Total: 28176 W: 2506 L: 2437 D: 23233
Ptnml(0-2): 80, 1904, 10063, 1949, 92
https://tests.stockfishchess.org/tests/view/60421d18ddcba5f0627bb6a9

Passed LTC:
LLR: 2.93 (-2.94,2.94) {-0.75,0.25}
Total: 9704 W: 402 L: 341 D: 8961
Ptnml(0-2): 3, 279, 4230, 334, 6
https://tests.stockfishchess.org/tests/view/60422823ddcba5f0627bb6ae

closes https://github.com/official-stockfish/Stockfish/pull/3383

No functional change
This commit is contained in:
bmc4
2021-03-05 08:57:43 -03:00
committed by Joost VandeVondele
parent 5346f1c6c7
commit b74274628c

View File

@@ -223,11 +223,8 @@ namespace {
target = ~pos.pieces(); target = ~pos.pieces();
break; break;
case EVASIONS: case EVASIONS:
{ target = between_bb(pos.square<KING>(Us), lsb(pos.checkers())) | pos.checkers();
Square checksq = lsb(pos.checkers());
target = between_bb(pos.square<KING>(Us), checksq) | checksq;
break; break;
}
case NON_EVASIONS: case NON_EVASIONS:
target = ~pos.pieces(Us); target = ~pos.pieces(Us);
break; break;