Remove as useless micro-optimization in pawns generation (#1915)
authorprotonspring <mike@whiteley.org>
Tue, 1 Jan 2019 12:35:53 +0000 (05:35 -0700)
committerMarco Costalba <mcostalba@users.noreply.github.com>
Tue, 1 Jan 2019 12:35:53 +0000 (13:35 +0100)
commite2d3c163cbdd98de6f0399db358be964d014d313
treeb1d3e248b5381e4778fb6d163b2624af4866a3b6
parent800031c94c655e64e436846911e599de6eb35a72
Remove as useless micro-optimization in pawns generation (#1915)

The extra condition is used as a shortcut to skip the following 3 assignments:

```C++
        Bitboard b1 = shift<UpRight>(pawnsOn7) & enemies;
        Bitboard b2 = shift<UpLeft >(pawnsOn7) & enemies;
        Bitboard b3 = shift<Up     >(pawnsOn7) & emptySquares;
```

In case of EVASION with no target on 8th rank (the common case), we end up performing the 3 statements for nothing because b1 = b2 = b3 = 0.

But this is just a small micro-optimization and the condition is quite confusing, so just remove it and prefer a readable code instead.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 78020 W: 16978 L: 16967 D: 44075
http://tests.stockfishchess.org/tests/view/5c27b4fe0ebc5902ba135bb0

No functional change.
src/movegen.cpp