https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97042
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Alan Modra from comment #7) > and of course, li 0xffff is li -1 which sets all bits. Erm, yes. Duh. So that g:5d3ae76af13 splitter should not fire for numbers that fit in 32 bits but that have the high bit of both 16-bit halfs set.