public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
@ 2020-09-21 10:48 acoplan at gcc dot gnu.org
  2020-09-21 11:29 ` [Bug target/97141] " rguenth at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-09-21 10:48 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 97141
           Summary: [10/11 Regression] aarch64, SVE: ICE in decompose, at
                    rtl.h (during expand) since r10-4676-g9c437a108a
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

For the following testcase:

int a;
short b, c;
short d(short e, short f) { return e + f; }
void g(void) {
  a = -9;
  for (; a != 51; a = d(a, 5))
    b |= c;
}

AArch64 GCC ICEs at -O3 -march=armv8.2-a+sve since
r10-4676-g9c437a108a14b9bdc44659c131b0da944e5ffeab:

commit 9c437a108a14b9bdc44659c131b0da944e5ffeab
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Nov 14 15:31:25 2019

    Vectorise conversions between differently-sized integer vectors

To reproduce:

$ aarch64-none-elf-gcc -c -S -O3 -march=armv8.2-a+sve test.c
during RTL pass: expand
test.c: In function 'g':
test.c:4:6: internal compiler error: in decompose, at rtl.h:2296
    4 | void g(void) {
      |      ^
0xd05b28 wi::int_traits<std::pair<rtx_def*, machine_mode> >::decompose(long*,
unsigned int, std::pair<rtx_def*, machine_mode> const&)
        /home/alecop01/toolchain/src/gcc/gcc/rtl.h:2296
0xd05b28 wide_int_ref_storage<false,
false>::wide_int_ref_storage<std::pair<rtx_def*, machine_mode>
>(std::pair<rtx_def*, machine_mode> const&, unsigned int)
        /home/alecop01/toolchain/src/gcc/gcc/wide-int.h:1034
0xd05b28 generic_wide_int<wide_int_ref_storage<false, false>
>::generic_wide_int<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*,
machine_mode> const&, unsigned int)
        /home/alecop01/toolchain/src/gcc/gcc/wide-int.h:790
0xd05b28 wi::binary_traits<std::pair<rtx_def*, machine_mode>,
std::pair<rtx_def*, machine_mode>, wi::int_traits<std::pair<rtx_def*,
machine_mode> >::precision_type, wi::int_traits<std::pair<rtx_def*,
machine_mode> >::precision_type>::result_type wi::sub<std::pair<rtx_def*,
machine_mode>, std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*,
machine_mode> const&, std::pair<rtx_def*, machine_mode> const&)
        /home/alecop01/toolchain/src/gcc/gcc/wide-int.h:2510
0xd05b28 rtx_vector_builder::step(rtx_def*, rtx_def*) const
        /home/alecop01/toolchain/src/gcc/gcc/rtx-vector-builder.h:122
0xd05d38 vector_builder<rtx_def*, machine_mode,
rtx_vector_builder>::elt(unsigned int) const
        /home/alecop01/toolchain/src/gcc/gcc/vector-builder.h:254
0xd059a8 rtx_vector_builder::build()
        /home/alecop01/toolchain/src/gcc/gcc/rtx-vector-builder.c:73
0x9932f8 const_vector_from_tree
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:12790
0x9932f8 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:10349
0x998cfb expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:8480
0xe5d7a4 expand_expr
        /home/alecop01/toolchain/src/gcc/gcc/expr.h:282
0xe5d7a4 insert_value_copy_on_edge
        /home/alecop01/toolchain/src/gcc/gcc/tree-outof-ssa.c:349
0xe5d7a4 eliminate_phi
        /home/alecop01/toolchain/src/gcc/gcc/tree-outof-ssa.c:785
0xe5d7a4 expand_phi_nodes(ssaexpand*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-outof-ssa.c:1024
0x85aa3c execute
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:6553
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
@ 2020-09-21 11:29 ` rguenth at gcc dot gnu.org
  2020-12-08 14:39 ` akrl at gcc dot gnu.org
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-09-21 11:29 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.3

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
  2020-09-21 11:29 ` [Bug target/97141] " rguenth at gcc dot gnu.org
@ 2020-12-08 14:39 ` akrl at gcc dot gnu.org
  2020-12-16 14:10 ` acoplan at gcc dot gnu.org
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: akrl at gcc dot gnu.org @ 2020-12-08 14:39 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from akrl at gcc dot gnu.org ---
Hi all,

this is so far my understanding of what is going on here:

While in expand the vector builder is trying to build to determine elt number 3
of a vector of POLY_INT_CST.

To do that the step has to be computed, therefore rtx_vector_builder::step is
calling wi::sub to compute the difference between elt1 and elt2.

wi::sub (in wide-int.h:2508) is making use of WIDE_INT_REF_FOR so we end up in
decompose where we have no handling for poly_int.

I'm a little puzzled because I'm not sure where in this stack would be correct
to add the poly_int handling.

decompose is returning a wi::storage_ref that AFAIU has no poly support.

It might be easier to handle the poly subtraction in rtx_vector_builder::step
before entering into wide-int specific code?

  Andrea

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
  2020-09-21 11:29 ` [Bug target/97141] " rguenth at gcc dot gnu.org
  2020-12-08 14:39 ` akrl at gcc dot gnu.org
@ 2020-12-16 14:10 ` acoplan at gcc dot gnu.org
  2021-01-14  9:21 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-12-16 14:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Adding -fno-tree-forwprop gives us an ICE in LRA instead:

$ aarch64-elf-gcc -c pr97141.c -O3 -march=armv8.2-a+sve -fno-tree-forwprop

during RTL pass: reload
pr97141.c: In function 'g':
pr97141.c:8:1: internal compiler error: maximum number of generated reload
insns per insn achieved (90)
    8 | }
      | ^
0xc08d23 lra_constraints(bool)
        /home/alecop01/toolchain/src/gcc/gcc/lra-constraints.c:5061
0xbeff49 lra(_IO_FILE*)
        /home/alecop01/toolchain/src/gcc/gcc/lra.c:2329
0xba2af8 do_reload
        /home/alecop01/toolchain/src/gcc/gcc/ira.c:5802
0xba2af8 execute
        /home/alecop01/toolchain/src/gcc/gcc/ira.c:5988
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Originally noticed this LRA ICE with the related testcase:

int a;
void b() {
  a = 0;
  for (; a != -24; a = (short)a - 3) {
    short *c;
    *c |= 0 < b;
  }
}

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-12-16 14:10 ` acoplan at gcc dot gnu.org
@ 2021-01-14  9:21 ` rguenth at gcc dot gnu.org
  2021-01-14  9:21 ` rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-14  9:21 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-01-14  9:21 ` rguenth at gcc dot gnu.org
@ 2021-01-14  9:21 ` rguenth at gcc dot gnu.org
  2021-03-30 11:05 ` rsandifo at gcc dot gnu.org
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-14  9:21 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-01-14

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-01-14  9:21 ` rguenth at gcc dot gnu.org
@ 2021-03-30 11:05 ` rsandifo at gcc dot gnu.org
  2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-03-30 11:05 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

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

--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Testing a patch.  See also PR98726.

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

* [Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-03-30 11:05 ` rsandifo at gcc dot gnu.org
@ 2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
  2021-03-31 20:37 ` [Bug target/97141] [10 " rsandifo at gcc dot gnu.org
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-31 18:34 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:1b5f74e8be4dd7abe5624ff60adceff19ca71bda

commit r11-7934-g1b5f74e8be4dd7abe5624ff60adceff19ca71bda
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Mar 31 19:34:00 2021 +0100

    Handle CONST_POLY_INTs in CONST_VECTORs [PR97141, PR98726]

    This PR is caused by POLY_INT_CSTs being (necessarily) valid
    in tree-level VECTOR_CSTs but CONST_POLY_INTs not being valid
    in RTL CONST_VECTORs.  I can't tell/remember how deliberate
    that was, but I'm guessing not very.  In particular,
    valid_for_const_vector_p was added to guard against symbolic
    constants rather than CONST_POLY_INTs.

    I did briefly consider whether we should maintain the current
    status anyway.  However, that would then require a way of
    constructing variable-length vectors from individiual elements
    if, say, we have:

       { [2, 2], [3, 2], [4, 2], ⦠}

    So I'm chalking this up to an oversight.  I think the intention
    (and certainly the natural thing) is to have the same rules for
    both trees and RTL.

    The SVE CONST_VECTOR code should already be set up to handle
    CONST_POLY_INTs.  However, we need to add support for Advanced SIMD
    CONST_VECTORs that happen to contain SVE-based values.  The patch does
    that by expanding such CONST_VECTORs in the same way as variable vectors.

    gcc/
            PR rtl-optimization/97141
            PR rtl-optimization/98726
            * emit-rtl.c (valid_for_const_vector_p): Return true for
            CONST_POLY_INT_P.
            * rtx-vector-builder.h (rtx_vector_builder::step): Return a
            poly_wide_int instead of a wide_int.
            (rtx_vector_builder::apply_set): Take a poly_wide_int instead
            of a wide_int.
            * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
            * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
            false for CONST_VECTORs that cannot be forced to memory.
            * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
            is too complex to force to memory, build it up from individual
            elements instead.

    gcc/testsuite/
            PR rtl-optimization/97141
            PR rtl-optimization/98726
            * gcc.c-torture/compile/pr97141.c: New test.
            * gcc.c-torture/compile/pr98726.c: Likewise.
            * gcc.target/aarch64/sve/pr97141.c: Likewise.
            * gcc.target/aarch64/sve/pr98726.c: Likewise.

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
@ 2021-03-31 20:37 ` rsandifo at gcc dot gnu.org
  2021-03-31 20:38 ` rsandifo at gcc dot gnu.org
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-03-31 20:37 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10/11 Regression] aarch64, |[10 Regression] aarch64,
                   |SVE: ICE in decompose, at   |SVE: ICE in decompose, at
                   |rtl.h (during expand) since |rtl.h (during expand) since
                   |r10-4676-g9c437a108a        |r10-4676-g9c437a108a

--- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Fixed on trunk so far.

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-03-31 20:37 ` [Bug target/97141] [10 " rsandifo at gcc dot gnu.org
@ 2021-03-31 20:38 ` rsandifo at gcc dot gnu.org
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-03-31 20:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
*** Bug 98726 has been marked as a duplicate of this bug. ***

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-03-31 20:38 ` rsandifo at gcc dot gnu.org
@ 2021-04-08 12:02 ` rguenth at gcc dot gnu.org
  2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-08 12:02 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.3                        |10.4

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10.3 is being released, retargeting bugs to GCC 10.4.

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
@ 2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
  2021-04-23  9:14 ` rsandifo at gcc dot gnu.org
  2021-12-12 13:18 ` pinskia at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-23  9:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Richard Sandiford
<rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:dc9233a4f65a67ca280903d60d57c5fd5d95303e

commit r10-9753-gdc9233a4f65a67ca280903d60d57c5fd5d95303e
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Apr 23 10:09:41 2021 +0100

    Handle CONST_POLY_INTs in CONST_VECTORs [PR97141, PR98726]

    This PR is caused by POLY_INT_CSTs being (necessarily) valid
    in tree-level VECTOR_CSTs but CONST_POLY_INTs not being valid
    in RTL CONST_VECTORs.  I can't tell/remember how deliberate
    that was, but I'm guessing not very.  In particular,
    valid_for_const_vector_p was added to guard against symbolic
    constants rather than CONST_POLY_INTs.

    I did briefly consider whether we should maintain the current
    status anyway.  However, that would then require a way of
    constructing variable-length vectors from individiual elements
    if, say, we have:

       { [2, 2], [3, 2], [4, 2], ⦠}

    So I'm chalking this up to an oversight.  I think the intention
    (and certainly the natural thing) is to have the same rules for
    both trees and RTL.

    The SVE CONST_VECTOR code should already be set up to handle
    CONST_POLY_INTs.  However, we need to add support for Advanced SIMD
    CONST_VECTORs that happen to contain SVE-based values.  The patch does
    that by expanding such CONST_VECTORs in the same way as variable vectors.

    gcc/
            PR rtl-optimization/97141
            PR rtl-optimization/98726
            * emit-rtl.c (valid_for_const_vector_p): Return true for
            CONST_POLY_INT_P.
            * rtx-vector-builder.h (rtx_vector_builder::step): Return a
            poly_wide_int instead of a wide_int.
            (rtx_vector_builder::apply_set): Take a poly_wide_int instead
            of a wide_int.
            * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
            * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
            false for CONST_VECTORs that cannot be forced to memory.
            * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
            is too complex to force to memory, build it up from individual
            elements instead.

    gcc/testsuite/
            PR rtl-optimization/97141
            PR rtl-optimization/98726
            * gcc.c-torture/compile/pr97141.c: New test.
            * gcc.c-torture/compile/pr98726.c: Likewise.
            * gcc.target/aarch64/sve/pr97141.c: Likewise.
            * gcc.target/aarch64/sve/pr98726.c: Likewise.

    (cherry picked from commit 1b5f74e8be4dd7abe5624ff60adceff19ca71bda)

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
@ 2021-04-23  9:14 ` rsandifo at gcc dot gnu.org
  2021-12-12 13:18 ` pinskia at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-04-23  9:14 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

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

--- Comment #9 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Fixed.

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

* [Bug target/97141] [10 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a
  2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2021-04-23  9:14 ` rsandifo at gcc dot gnu.org
@ 2021-12-12 13:18 ` pinskia at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-12 13:18 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qianchao9 at huawei dot com

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 96091 has been marked as a duplicate of this bug. ***

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

end of thread, other threads:[~2021-12-12 13:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-21 10:48 [Bug target/97141] New: [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a acoplan at gcc dot gnu.org
2020-09-21 11:29 ` [Bug target/97141] " rguenth at gcc dot gnu.org
2020-12-08 14:39 ` akrl at gcc dot gnu.org
2020-12-16 14:10 ` acoplan at gcc dot gnu.org
2021-01-14  9:21 ` rguenth at gcc dot gnu.org
2021-01-14  9:21 ` rguenth at gcc dot gnu.org
2021-03-30 11:05 ` rsandifo at gcc dot gnu.org
2021-03-31 18:34 ` cvs-commit at gcc dot gnu.org
2021-03-31 20:37 ` [Bug target/97141] [10 " rsandifo at gcc dot gnu.org
2021-03-31 20:38 ` rsandifo at gcc dot gnu.org
2021-04-08 12:02 ` rguenth at gcc dot gnu.org
2021-04-23  9:10 ` cvs-commit at gcc dot gnu.org
2021-04-23  9:14 ` rsandifo at gcc dot gnu.org
2021-12-12 13:18 ` pinskia 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).