NCM plays each Stockfish dev build 20,000 times against Stockfish 14. This yields an approximate Elo difference and establishes confidence in the strength of the dev builds.
| Host | Duration | Avg Base NPS | Games | WLD | Standard Elo | Ptnml(0-2) | Gamepair Elo | 
|---|
| ID | Host | Base NPS | Games | WLD | Standard Elo | Ptnml(0-2) | Gamepair Elo | CLI | PGN | 
|---|
| Commit ID | bf8b45fe6305c89a9a30f660de34164cf3bdcdf2 | 
|---|---|
| Author | Andrey Neporada | 
| Date | 2016-12-03 08:37:07 UTC | 
| 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
    ret
New function compiles to
    bsrq    %rdi, %rax
    ret
BTW, Clang compiles both function to the same (optimal) code.
No functional change. | |