https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111743
--- Comment #2 from Andi Kleen <andi-gcc at firstfloor dot org> --- Okay then it doesn't understand that SHL_signed and SHR_unsigned can be combined when one the values came from a shorter unsigned.