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.