https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78439
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |ktkachov at gcc dot
gnu.org
--- Comment #4 from ktkachov at gcc dot gnu.org ---
Hmm, this looks like a bug exposed by that patch.
The peephole2 pass does something weird.
We have:
(insn 13 33 40 2 (set (mem/c:SI (plus:SI (reg/f:SI 11 fp)
(const_int -28 [0xffffffffffffffe4])) [3 d.num_comps+0 S4 A64])
(reg:SI 12 ip [orig:117 _20 ] [117])) "cp-demangle.c":32 632
{*arm_movsi_vfp}
(expr_list:REG_DEAD (reg:SI 12 ip [orig:117 _20 ] [117])
(nil)))
(insn 40 13 39 2 (set (mem/f/c:SI (plus:SI (reg/f:SI 11 fp)
(const_int -24 [0xffffffffffffffe8])) [2 d.subs+0 S4 A32])
(reg/f:SI 13 sp)) "cp-demangle.c":51 632 {*arm_movsi_vfp}
(nil))
being turned into:
(insn 68 33 39 2 (set (mem/c:DI (plus:SI (reg/f:SI 11 fp)
(const_int -28 [0xffffffffffffffe4])) [3 d.num_comps+0 S8 A64])
(reg:DI 12 ip)) "cp-demangle.c":51 -1
(nil))
which is not recognisable.
Something dodgy with the store-multiple peepholes I think