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

            Bug ID: 94668
           Summary: [10 Regression] ICE generating float vec_inits since
                    r10-808
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rsandifo at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64*-*-*

Compiling the following with -O -march=armv8.2-a+sve -msve-vector-bits=512:

typedef float v16sf __attribute__ ((vector_size(64)));
v16sf
foo (float a)
{
  return (v16sf) { 0, 0, 0, a, 0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0 };
}

gives:

foo.c:5:10: internal compiler error: in decompose, at rtl.h:2296
    5 |   return (v16sf) { 0, 0, 0, a, 0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0 };
      |          ^
0xd8db39 wi::int_traits<std::pair<rtx_def*, machine_mode> >::decompose(long*,
unsigned int, std::pair<rtx_def*, machine_mode> const&)
        src/gcc/gcc/rtl.h:2296
0xd8db39 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)
        src/gcc/gcc/wide-int.h:1034
0xd8db39 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)
        src/gcc/gcc/wide-int.h:790
0xd8db39 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&)
        src/gcc/gcc/wide-int.h:2510
0xd8db39 rtx_vector_builder::step(rtx_def*, rtx_def*) const
        src/gcc/gcc/rtx-vector-builder.h:122
0xd8db39 vector_builder<rtx_def*, machine_mode,
rtx_vector_builder>::elt(unsigned int) const
        src/gcc/gcc/vector-builder.h:254
0x1216012 aarch64_sve_expand_vector_init_handle_trailing_constants
        src/gcc/gcc/config/aarch64/aarch64.c:18393
0x1218fdc aarch64_sve_expand_vector_init
        src/gcc/gcc/config/aarch64/aarch64.c:18517
0x1219248 aarch64_sve_expand_vector_init
        src/gcc/gcc/config/aarch64/aarch64.c:18558
0x121926d aarch64_sve_expand_vector_init
        src/gcc/gcc/config/aarch64/aarch64.c:18562
0x1219710 aarch64_sve_expand_vector_init(rtx_def*, rtx_def*)
        src/gcc/gcc/config/aarch64/aarch64.c:18601
0x163d4eb gen_vec_initvnx16qiqi(rtx_def*, rtx_def*)
        src/gcc/gcc/config/aarch64/aarch64-sve.md:2535
0x9c9cde insn_gen_fn::operator()(rtx_def*, rtx_def*) const
        src/gcc/gcc/recog.h:317
0x9c9cde store_constructor
        src/gcc/gcc/expr.c:6965
0x9cc8fc expand_constructor
        src/gcc/gcc/expr.c:8279
0x9b35b9 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        src/gcc/gcc/expr.c:10388
0x9b5038 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        src/gcc/gcc/expr.c:10058
0x9c404a store_expr(tree_node*, rtx_def*, int, bool, bool)
        src/gcc/gcc/expr.c:5752
0x9c5d67 expand_assignment(tree_node*, tree_node*, bool)
        src/gcc/gcc/expr.c:5514
0x852437 expand_gimple_stmt_1
        src/gcc/gcc/cfgexpand.c:3749
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.

Reply via email to