https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109040
--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- WORD_REGISTER_OPERATIONS means that subword register operations in RTL are actually performed on the whole word register by the machine, e.g.. for (insn 47 35 39 2 (set (reg:HI 175) (subreg:HI (reg:SI 166) 0)) "pr109040.c":9:11 179 {*movhi_internal} (expr_list:REG_DEAD (reg:SI 166) (nil))) you can infer the MSB of (reg:SI 175) instead of them being undefined. But I don't think that it prevents any particular instruction form.