https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80491
--- Comment #1 from Victor Khimenko <khim at google dot com> --- Actually even clang's version is not optimal ("addq 8(%rdi), %rdx" then "adcq $0, %rdx" could be replaced with "adcq 8(%rdi), %rdx"). But at least both calng and old version of gcc are smart enough to remove jumps from that code...