https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110598
Roger Sayle <roger at nextmovesoftware dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |roger at nextmovesoftware dot com Status|NEW |ASSIGNED --- Comment #4 from Roger Sayle <roger at nextmovesoftware dot com> --- Mine. The new peephole2 is misbehaving with the (odd) RTL sequence: (insn 62 61 63 2 (set (reg:DI 1 dx [111]) (const_int 0 [0])) "pr110598.c":10:10 90 {*movdi_internal} (insn 63 62 64 2 (parallel [ (set (reg:DI 1 dx [110]) (xor:DI (reg:DI 1 dx [111]) (reg:DI 1 dx))) (clobber (reg:CC 17 flags)) ]) "pr110598.c":10:10 626 {*xordi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) Doh! I need to confirm/check that rega != regb. Interesting that DF doesn't consider insn 62 as REG_UNUSED (i.e. dead), a classic false dependency.