[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 gcc-bugzilla@gcc.gnu.org
Mon Sep 21 10:48:07 GMT 2020


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.


More information about the Gcc-bugs mailing list