https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77729
--- Comment #9 from Julian Andres Klode <j...@jak-linux.org> --- (In reply to Andrew Pinski from comment #8) > This looks like missing removal of casts. > > Note in C, char_var|32 is really the same as ((int)char_var)|32 Well. The loads of the byte are already zero-extend loads. The current code is like saying: (int) ((int)char|32) :)