public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
@ 2020-10-22 11:42 doko at debian dot org
  2020-10-22 11:52 ` [Bug target/97528] " rguenth at gcc dot gnu.org
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: doko at debian dot org @ 2020-10-22 11:42 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 97528
           Summary: [10/11 Regression] ICE in decompose_automod_address,
                    at rtlanal.c:6298 (arm-linux-gnueabihf)
           Product: gcc
           Version: 10.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at debian dot org
  Target Milestone: ---

seen on the gcc-10 branch 2020-10-11 and trunk, building firefox.

$ cat intrapred_neon.i
typedef __simd64_int16_t a;
typedef __simd64_uint16_t b;
unsigned short c;
int d;
b e;
void f() {
  unsigned short *dst = &c;
  int g = d, bw = 4;
  b dc = e;
  for (int h = 0; h < bw; h++) {
    unsigned short *i = dst;
    b j = dc;
    __builtin_neon_vst1v4hi((__builtin_neon_hi *)i, (a)j);
    dst += g;
  }
}

$ gcc -o intrapred_neon.o -c -O1 -mfpu=neon intrapred_neon.i
during RTL pass: reload
/home/glandium/firefox-esr-78.4.0esr/third_party/aom/aom_dsp/arm/intrapred_neon.c:
In function 'aom_highbd_dc_predictor_4x4_neon':
/home/glandium/firefox-esr-78.4.0esr/third_party/aom/aom_dsp/arm/intrapred_neon.c:589:188:
internal compiler error: in decompose_automod_address, at rtlanal.c:6298
0x6cda45 decompose_automod_address
        ../../src/gcc/rtlanal.c:6298
0x6cda45 decompose_address(address_info*, rtx_def**, machine_mode, unsigned
char, rtx_code)
        ../../src/gcc/rtlanal.c:6463
0x6cdb19 decompose_mem_address(address_info*, rtx_def*)
        ../../src/gcc/rtlanal.c:6486
0x59a67b process_address_1
        ../../src/gcc/lra-constraints.c:3374
0x59c4cd process_address
        ../../src/gcc/lra-constraints.c:3648
0x59c4cd curr_insn_transform
        ../../src/gcc/lra-constraints.c:3963
0x5a088f lra_constraints(bool)
        ../../src/gcc/lra-constraints.c:5036
0x58e7a5 lra(_IO_FILE*)
        ../../src/gcc/lra.c:2443
0x54f331 do_reload
        ../../src/gcc/ira.c:5527
0x54f331 execute
        ../../src/gcc/ira.c:5713
Please submit a full bug report,
with preprocessed source if appropriate.

gcc-10 was configured with 

--with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb 
--enable-checking=yes,extra,rtl
--enable-default-pie

gcc trunk was configure with --enable-checking=yes

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
@ 2020-10-22 11:52 ` rguenth at gcc dot gnu.org
  2020-10-23 11:25 ` ktkachov at gcc dot gnu.org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-10-22 11:52 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-invalid-code         |ice-on-valid-code
   Target Milestone|---                         |10.3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
  2020-10-22 11:52 ` [Bug target/97528] " rguenth at gcc dot gnu.org
@ 2020-10-23 11:25 ` ktkachov at gcc dot gnu.org
  2020-11-18 16:12 ` [Bug target/97528] [9/10/11 " jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2020-10-23 11:25 UTC (permalink / raw)
  To: gcc-bugs

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

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-10-23
                 CC|                            |ktkachov at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Confirmed.
A better testcase, using arm_neon.h intrinsics is:
#include <arm_neon.h>

typedef __simd64_int16_t a;
typedef __simd64_uint16_t b;
unsigned short c;
int d;
b e;
void f() {
  unsigned short *dst = &c;
  int g = d, bw = 4;
  b dc = e;
  for (int h = 0; h < bw; h++) {
    unsigned short *i = dst;
    b j = dc;
    vst1_s16 ((int16_t *)i, (a) j);
    dst += g;
  }
}

I see this ICEing on 9.3.1 as well (GCC 8 branch is ok)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
  2020-10-22 11:52 ` [Bug target/97528] " rguenth at gcc dot gnu.org
  2020-10-23 11:25 ` ktkachov at gcc dot gnu.org
@ 2020-11-18 16:12 ` jakub at gcc dot gnu.org
  2020-11-18 16:14 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-11-18 16:12 UTC (permalink / raw)
  To: gcc-bugs

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

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> ---
We have:
(insn 7 6 9 2 (set (reg:SI 114 [ _3 ])
        (ashift:SI (reg:SI 122 [ d ])
            (const_int 1 [0x1]))) "pr97528-2.c":14:9 147 {*arm_shiftsi3}
     (expr_list:REG_DEAD (reg:SI 122 [ d ])
        (nil)))
...
(insn 12 25 24 2 (set (mem/c:V4HI (post_modify:SI (reg/v/f:SI 118 [ dst ])
                (plus:SI (reg/v/f:SI 118 [ dst ])
                    (reg:SI 114 [ _3 ]))) [0 MEM[(short int[4] *)&c]+0 S8 A16])
        (unspec:V4HI [
                (reg:V4HI 117 [ _14 ])
            ] UNSPEC_VST1)) "pr97528-2.c":13:5 2508 {neon_vst1v4hi}
     (expr_list:REG_INC (reg/v/f:SI 118 [ dst ])
        (nil)))
and combine attempts to propagate the shift into the insn:
(insn 12 25 24 2 (set (mem/c:V4HI (post_modify:SI (reg/v/f:SI 118 [ dst ])
                (plus:SI (mult:SI (reg:SI 122 [ d ])
                        (const_int 2 [0x2]))
                    (reg/v/f:SI 118 [ dst ]))) [0 MEM[(short int[4] *)&c]+0 S8
A16])
        (unspec:V4HI [
                (reg:V4HI 117 [ _14 ])
            ] UNSPEC_VST1)) "pr97528-2.c":13:5 2508 {neon_vst1v4hi}
     (expr_list:REG_INC (reg/v/f:SI 118 [ dst ])
        (nil)))
That is not valid RTL, as documented:
   Currently, the compiler can only handle second operands of the
   form (plus (reg) (reg)) and (plus (reg) (const_int)), where
   the first operand of the PLUS has to be the same register as
   the first operand of the *_MODIFY.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (2 preceding siblings ...)
  2020-11-18 16:12 ` [Bug target/97528] [9/10/11 " jakub at gcc dot gnu.org
@ 2020-11-18 16:14 ` jakub at gcc dot gnu.org
  2020-11-20 11:27 ` cvs-commit at gcc dot gnu.org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-11-18 16:14 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 49587
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49587&action=edit
gcc11-pr97528.patch

Untested fix.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (3 preceding siblings ...)
  2020-11-18 16:14 ` jakub at gcc dot gnu.org
@ 2020-11-20 11:27 ` cvs-commit at gcc dot gnu.org
  2020-11-20 11:42 ` [Bug target/97528] [9/10 " jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-11-20 11:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:410b8f6f41920dad200cd709f9f3de8b840a995c

commit r11-5195-g410b8f6f41920dad200cd709f9f3de8b840a995c
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 20 12:26:58 2020 +0100

    arm: Fix up neon_vector_mem_operand [PR97528]

    The documentation for POST_MODIFY says:
       Currently, the compiler can only handle second operands of the
       form (plus (reg) (reg)) and (plus (reg) (const_int)), where
       the first operand of the PLUS has to be the same register as
       the first operand of the *_MODIFY.
    The following testcase ICEs, because combine just attempts to simplify
    things and ends up with
    (post_modify (reg1) (plus (mult (reg2) (const_int 4)) (reg1))
    but the target predicates accept it, because they only verify
    that POST_MODIFY's second operand is PLUS and the second operand
    of the PLUS is a REG.

    The following patch fixes this by performing further verification that
    the POST_MODIFY is in the form it should be.

    2020-11-20  Jakub Jelinek  <jakub@redhat.com>

            PR target/97528
            * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY,
require
            first POST_MODIFY operand is a REG and is equal to the first
operand
            of PLUS.

            * gcc.target/arm/pr97528.c: New test.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (4 preceding siblings ...)
  2020-11-20 11:27 ` cvs-commit at gcc dot gnu.org
@ 2020-11-20 11:42 ` jakub at gcc dot gnu.org
  2020-11-25 11:56 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-11-20 11:42 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[9/10/11 Regression] ICE in |[9/10 Regression] ICE in
                   |decompose_automod_address,  |decompose_automod_address,
                   |at rtlanal.c:6298           |at rtlanal.c:6298
                   |(arm-linux-gnueabihf)       |(arm-linux-gnueabihf)

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (5 preceding siblings ...)
  2020-11-20 11:42 ` [Bug target/97528] [9/10 " jakub at gcc dot gnu.org
@ 2020-11-25 11:56 ` cvs-commit at gcc dot gnu.org
  2021-02-01 13:28 ` avieira at gcc dot gnu.org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-11-25 11:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:05a3ab76e03ec6cff0bafb8495387b3a186785cc

commit r10-9077-g05a3ab76e03ec6cff0bafb8495387b3a186785cc
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 20 12:26:58 2020 +0100

    arm: Fix up neon_vector_mem_operand [PR97528]

    The documentation for POST_MODIFY says:
       Currently, the compiler can only handle second operands of the
       form (plus (reg) (reg)) and (plus (reg) (const_int)), where
       the first operand of the PLUS has to be the same register as
       the first operand of the *_MODIFY.
    The following testcase ICEs, because combine just attempts to simplify
    things and ends up with
    (post_modify (reg1) (plus (mult (reg2) (const_int 4)) (reg1))
    but the target predicates accept it, because they only verify
    that POST_MODIFY's second operand is PLUS and the second operand
    of the PLUS is a REG.

    The following patch fixes this by performing further verification that
    the POST_MODIFY is in the form it should be.

    2020-11-20  Jakub Jelinek  <jakub@redhat.com>

            PR target/97528
            * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY,
require
            first POST_MODIFY operand is a REG and is equal to the first
operand
            of PLUS.

            * gcc.target/arm/pr97528.c: New test.

    (cherry picked from commit 410b8f6f41920dad200cd709f9f3de8b840a995c)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (6 preceding siblings ...)
  2020-11-25 11:56 ` cvs-commit at gcc dot gnu.org
@ 2021-02-01 13:28 ` avieira at gcc dot gnu.org
  2021-02-01 13:30 ` ktkachov at gcc dot gnu.org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: avieira at gcc dot gnu.org @ 2021-02-01 13:28 UTC (permalink / raw)
  To: gcc-bugs

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

avieira at gcc dot gnu.org changed:

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

--- Comment #7 from avieira at gcc dot gnu.org ---
Hi,

I am seeing this same fault cause a wrong-code gen on gcc-9 with the code
below:


void foo(uint16_t *dest, uint16x8_t a, unsigned long long stride)
{
   int i = 3;
   stride >>= 1;
   do {
     vst1_u16(dest, vget_low_u16(a));
     dest += stride;
     i = i - 1;
   } while (i != 0);
}

leading to:
foo:
        vst1.16 {d0}, [r0], r0
        vst1.16 {d0}, [r0], r0
        vst1.16 {d0}, [r0]
        bx      lr

which is obviously wrong. Can we backport this to gcc-9?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (7 preceding siblings ...)
  2021-02-01 13:28 ` avieira at gcc dot gnu.org
@ 2021-02-01 13:30 ` ktkachov at gcc dot gnu.org
  2021-02-01 13:36 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2021-02-01 13:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from ktkachov at gcc dot gnu.org ---
If the patch tests cleanly we should apply it to GCC 9 and 8 too (if
applicable)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (8 preceding siblings ...)
  2021-02-01 13:30 ` ktkachov at gcc dot gnu.org
@ 2021-02-01 13:36 ` jakub at gcc dot gnu.org
  2021-02-03 10:03 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-02-01 13:36 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I'm backporting stuff to older branches in batches and don't plan to do it for
9 or 8 in the near future.  If anyone beats me with the backports, I certainly
won't mind.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (9 preceding siblings ...)
  2021-02-01 13:36 ` jakub at gcc dot gnu.org
@ 2021-02-03 10:03 ` cvs-commit at gcc dot gnu.org
  2021-02-03 18:32 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-02-03 10:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Andre Simoes Dias Vieira
<avieira@gcc.gnu.org>:

https://gcc.gnu.org/g:320d8676c770124a4baffab2d9e82224c74964ed

commit r9-9219-g320d8676c770124a4baffab2d9e82224c74964ed
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 20 12:26:58 2020 +0100

    arm: Fix up neon_vector_mem_operand [PR97528]

    The documentation for POST_MODIFY says:
       Currently, the compiler can only handle second operands of the
       form (plus (reg) (reg)) and (plus (reg) (const_int)), where
       the first operand of the PLUS has to be the same register as
       the first operand of the *_MODIFY.
    The following testcase ICEs, because combine just attempts to simplify
    things and ends up with
    (post_modify (reg1) (plus (mult (reg2) (const_int 4)) (reg1))
    but the target predicates accept it, because they only verify
    that POST_MODIFY's second operand is PLUS and the second operand
    of the PLUS is a REG.

    The following patch fixes this by performing further verification that
    the POST_MODIFY is in the form it should be.

    2020-11-20  Jakub Jelinek  <jakub@redhat.com>

            PR target/97528
            * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY,
require
            first POST_MODIFY operand is a REG and is equal to the first
operand
            of PLUS.

            * gcc.target/arm/pr97528.c: New test.

    (cherry picked from commit 410b8f6f41920dad200cd709f9f3de8b840a995c)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (10 preceding siblings ...)
  2021-02-03 10:03 ` cvs-commit at gcc dot gnu.org
@ 2021-02-03 18:32 ` cvs-commit at gcc dot gnu.org
  2021-02-03 18:33 ` avieira at gcc dot gnu.org
  2021-02-03 18:37 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-02-03 18:32 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Andre Simoes Dias Vieira
<avieira@gcc.gnu.org>:

https://gcc.gnu.org/g:3a3460f9b79310f40265a902fb394505b947ddd1

commit r8-10751-g3a3460f9b79310f40265a902fb394505b947ddd1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 20 12:26:58 2020 +0100

    arm: Fix up neon_vector_mem_operand [PR97528]

    The documentation for POST_MODIFY says:
       Currently, the compiler can only handle second operands of the
       form (plus (reg) (reg)) and (plus (reg) (const_int)), where
       the first operand of the PLUS has to be the same register as
       the first operand of the *_MODIFY.
    The following testcase ICEs, because combine just attempts to simplify
    things and ends up with
    (post_modify (reg1) (plus (mult (reg2) (const_int 4)) (reg1))
    but the target predicates accept it, because they only verify
    that POST_MODIFY's second operand is PLUS and the second operand
    of the PLUS is a REG.

    The following patch fixes this by performing further verification that
    the POST_MODIFY is in the form it should be.

    2020-11-20  Jakub Jelinek  <jakub@redhat.com>

            PR target/97528
            * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY,
require
            first POST_MODIFY operand is a REG and is equal to the first
operand
            of PLUS.

            * gcc.target/arm/pr97528.c: New test.

    (cherry picked from commit 410b8f6f41920dad200cd709f9f3de8b840a995c)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (11 preceding siblings ...)
  2021-02-03 18:32 ` cvs-commit at gcc dot gnu.org
@ 2021-02-03 18:33 ` avieira at gcc dot gnu.org
  2021-02-03 18:37 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: avieira at gcc dot gnu.org @ 2021-02-03 18:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from avieira at gcc dot gnu.org ---
@jakub: backported to gcc-8 and gcc-9. OK to close this?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/97528] [9/10 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf)
  2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
                   ` (12 preceding siblings ...)
  2021-02-03 18:33 ` avieira at gcc dot gnu.org
@ 2021-02-03 18:37 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-02-03 18:37 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Sure, thanks.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-02-03 18:37 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-22 11:42 [Bug target/97528] New: [10/11 Regression] ICE in decompose_automod_address, at rtlanal.c:6298 (arm-linux-gnueabihf) doko at debian dot org
2020-10-22 11:52 ` [Bug target/97528] " rguenth at gcc dot gnu.org
2020-10-23 11:25 ` ktkachov at gcc dot gnu.org
2020-11-18 16:12 ` [Bug target/97528] [9/10/11 " jakub at gcc dot gnu.org
2020-11-18 16:14 ` jakub at gcc dot gnu.org
2020-11-20 11:27 ` cvs-commit at gcc dot gnu.org
2020-11-20 11:42 ` [Bug target/97528] [9/10 " jakub at gcc dot gnu.org
2020-11-25 11:56 ` cvs-commit at gcc dot gnu.org
2021-02-01 13:28 ` avieira at gcc dot gnu.org
2021-02-01 13:30 ` ktkachov at gcc dot gnu.org
2021-02-01 13:36 ` jakub at gcc dot gnu.org
2021-02-03 10:03 ` cvs-commit at gcc dot gnu.org
2021-02-03 18:32 ` cvs-commit at gcc dot gnu.org
2021-02-03 18:33 ` avieira at gcc dot gnu.org
2021-02-03 18:37 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).