aarch64: Fix another bug in aarch64_add_offset_1 [PR94121]
authorJakub Jelinek <jakub@redhat.com>
Fri, 13 Mar 2020 10:33:16 +0000 (11:33 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 13 Mar 2020 10:33:16 +0000 (11:33 +0100)
commit7aa605c9d4643dc6e0a0460e5697c02457cd7278
tree16882cf3765fa4a87b7ac652fb84afd03e80c67a
parentfd8679974b2ded884ffd7d912efef7fe13e4ff4f
aarch64: Fix another bug in aarch64_add_offset_1 [PR94121]

> I'm getting this ICE with -mabi=ilp32:
>
> during RTL pass: fwprop1
> /opt/gcc/gcc-20200312/gcc/testsuite/gcc.dg/pr94121.c: In function 'bar':
> /opt/gcc/gcc-20200312/gcc/testsuite/gcc.dg/pr94121.c:16:1: internal compiler error: in decompose, at rtl.h:2279

That is a preexisting issue, caused by another bug in the same function.
When mode is SImode and moffset is 0x80000000 (or anything else with the
bit 31 set), we need to sign-extend it.

2020-03-13  Jakub Jelinek  <jakub@redhat.com>

PR target/94121
* config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
instead of GEN_INT.
gcc/ChangeLog
gcc/config/aarch64/aarch64.c