https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85516
--- Comment #6 from Avi Kivity <avi at scylladb dot com> --- gcc 11.2 produces optimized code with the original example: check_mask(E): cmpl $9, %edi ja .L3 movl %edi, %ecx movl $562, %eax shrq %cl, %rax andl $1, %eax ret .L3: xorl %eax, %eax ret