[Bug target/84899] [6/7/8 Regression] ICE: in final_scan_insn_1, at final.c:3139 (error: could not split insn)
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 16 17:17:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84899
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
In *.reload we have:
(insn 119 28 23 5 (set (reg/v:SI 9 9 [orig:129 b ] [129])
(const_int 2147483647 [0x7fffffff])) "pr84899.c":6 503
{*movsi_internal1}
(expr_list:REG_EQUIV (const_int 2147483647 [0x7fffffff])
(nil)))
(insn 23 119 24 5 (set (reg:SI 9 9 [130])
(plus:SI (reg/v:SI 9 9 [orig:129 b ] [129])
(reg/v:SI 10 10 [orig:124 a ] [124]))) "pr84899.c":6 72 {*addsi3}
(nil))
(insn 24 23 26 5 (set (reg:SI 9 9 [orig:131 _2 ] [131])
(plus:SI (reg:SI 9 9 [130])
(const_int 1 [0x1]))) "pr84899.c":6 72 {*addsi3}
(nil))
but postreload turns that into invalid:
(insn 119 28 24 5 (set (reg/v:SI 9 9 [orig:129 b ] [129])
(const_int 2147483648 [0x80000000])) "pr84899.c":6 503
{*movsi_internal1}
(nil))
(insn 24 119 26 5 (set (reg:SI 9 9 [orig:131 _2 ] [131])
(plus:SI (reg/v:SI 9 9 [orig:129 b ] [129])
(reg/v:SI 10 10 [orig:124 a ] [124]))) "pr84899.c":6 72 {*addsi3}
(nil))
The bug is that 2147483648 is not valid SImode constant, -2147483648 is.
More information about the Gcc-bugs
mailing list