I can at least verify that using blockers instead of occupancy does save time. Perft 7 using queen code for all pieces was 204 seconds. After adding the bishop code perft 7 took 207 seconds. After switching over to blockers perft 7 was 202 seconds. So a 2.47% speedup by adding an extra instruction.mar wrote: ↑Sun Feb 14, 2021 3:49 am I might try (this is just a concept, I've no idea if it'll work), but like I said it has two problems:
1) the table is now 6 megabytes (!) for bishops only
2) the assembly looks fast, but the last 3 instructions will be extremenly cache-inefficient, so it's possible that it would actually run slower than plain SISSY
there's of course only one way to say for sure - to test it in practice. that will take some time, of course. I'd have to find your initialization code first,
I remember I did some experiments in the past but I can't seem to find the code...
and there's also a good chance that I messed up somewhere as this is totally untested
as for pre-masking occupancy with pseudo-attack mask at square: yes, that's exactly what I meant.
but I've no idea if it would be actually beneficial to offset the extra lookup, because the individual lookups in plain SISSY only access a small portion of memory, still it should be trivial to test and see if it helps
I just wanted it to look like I was still trying to do something.