https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68330
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Segher Boessenkool from comment #2) > Hrm, I don't think your analysis is entirely correct yet -- you say > with the old compiler insn 19 is removed, but that sets reg 73 which > is still used in insn 20. For some reason, the transformation slightly mixes insn numbers: (note 18 15 19 2 NOTE_INSN_DELETED) (insn 19 18 20 2 (set (reg/v:DI 73 [ x ]) (xor:DI (reg/v:DI 71 [ x ]) (reg:DI 72 [ _4 ]))) pr42269.c:9 58 {xordi3} (expr_list:REG_DEAD (reg/v:DI 71 [ x ]) (expr_list:REG_DEAD (reg:DI 72 [ _4 ]) (nil)))) (insn 20 19 21 2 (set (reg:DI 91 [ x ]) (zero_extend:DI (subreg/s/u:SI (reg/v:DI 73 [ x ]) 0))) pr42269.c:10 48 {zero_extendsidi2} (nil))