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.