https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120070

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This is
(insn 15 14 82 4 (parallel [
            (set (reg:DI 48 [ _38 ])
                (minus:DI (subreg:DI (reg:SI 32 [ _2 ]) 0)
                    (subreg:DI (reg:SI 50 [ _35 ]) 0)))
            (clobber (scratch:SI))
        ]) "pr120070.c":11:36 175 {subdi3}
     (expr_list:REG_DEAD (reg:SI 50 [ _35 ])
        (nil)))
during IRA, but reload turns that into
(insn 15 98 99 4 (parallel [
            (set (reg:DI 6 %d6)
                (minus:DI (reg:DI 6 %d6)
                    (reg:DI -1 [+-4 ])))
            (clobber (scratch:SI))
        ]) "pr120070.c":11:36 175 {subdi3}
     (nil))
which is invalid, there is no register -1.
Compiles fine with -Os -mlra.
Don't know if anybody will spend time on reload when it is going to be removed
in GCC 16.

Reply via email to