https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85941
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- But this pattern: (define_insn "zero_extendqisi2" [(set (match_operand:SI 0 "nonimmediate_operand" "=r") (zero_extend:SI (subreg:HI (match_operand:QI 1 "nonimmediate_operand" "rm") 0)))] Is saying a zero_extend from HI to SI. But not from QI to SI. This is a paradoxical subreg.