https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Segher Boessenkool from comment #3) > combine creates a clobber of const_int 0 to make sure a pattern will > not match. That is valid RTL, but further patterns constructed from > that are not (clobber on a rhs). > > The upper bits of a paradoxical subregs are defined in many cases, > see SUBREG_PROMOTED_VAR_P; does that apply here? It looks to me that "ZERO_EXTEND:SI (reg:QI)" is substituted with "AND:SI (reg:SI, 0xff)", and some simplification involving XOR and AND RTXes generates "AND (reg, 0xffffff00)".