Sunday, December 11, 2016

Stockfish 16120309 - new version

Stockfish, UCI chess engine

Leader of the ranking list JCER = 3368

🔬 Author: Andrey Neporada 

Timestamp: 1480754227 

Help GCC to optimize msb() to single instruction 

GCC compiles builtin_clzll to “63 ^ BSR”. BSR is processor instruction "Bit Scan Reverse". 
So old msb() function is basically 63 - 63 ^ BSR. 
Unfortunately, GCC fails to simplify this expression. 

Old function compiles to 
bsrq %rdi, %rdi 
movl $63, %eax 
xorq $63, %rdi 
subl %edi, %eax 

New function compiles to 
bsrq %rdi, %rax 

BTW, Clang compiles both function to the same (optimal) code. 

No functional change.

Stockfish 16120309 - download

No comments:

Post a Comment

Best posts of the month