https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99808
Bug ID: 99808
Summary: [8/9/10/11 Regression] ICE in as_a, at machmode.h:365
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: debug
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: aarch64-linux-gnu
gcc-11.0.1-alpha20210328 snapshot (g:499fa254ae8c9752d8c2cf3130b13ffddfd83546)
ICEs when compiling the following testcase, reduced from
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vcvt_high_1.c, w/ -Og -fweb
-fno-forward-propagate -g:
typedef __Float32x2_t float32x2_t;
typedef __Float32x4_t float32x4_t;
typedef __Float64x1_t float64x1_t;
typedef __Float64x2_t float64x2_t;
float32x4_t
foo (void)
{
float64x2_t arg2 = __builtin_aarch64_combinedf (0, ((float64x1_t) 1UL) [0]);
return __builtin_aarch64_float_truncate_hi_v4sf ((float32x2_t) 1UL, arg2);
}
% aarch64-linux-gnu-gcc-11.0.1 -Og -fweb -fno-forward-propagate -g -c
bhwx2dh3.c
during RTL pass: final
bhwx2dh3.c: In function 'foo':
bhwx2dh3.c:12:1: internal compiler error: in as_a, at machmode.h:365
12 | }
| ^
0x6c306f scalar_int_mode as_a<scalar_int_mode>(machine_mode)
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/machmode.h:365
0x6c467f scalar_float_mode as_a<scalar_float_mode>(machine_mode)
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/tree.h:3467
0x6c467f insert_float
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:19697
0xacb35e add_const_value_attribute
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:19805
0xaef2e8 add_location_or_const_value_attribute
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:20367
0xaf0b52 gen_variable_die
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:24104
0xad3272 gen_decl_die
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:26516
0xaf497f decls_for_scope
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:25991
0xacf194 gen_subprogram_die
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:23522
0xad3360 gen_decl_die
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:26428
0xad4a22 dwarf2out_decl
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:27006
0xad539e dwarf2out_function_decl
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/dwarf2out.c:27021
0xb5ce43 rest_of_handle_final
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/final.c:4712
0xb5ce43 execute
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210328/work/gcc-11-20210328/gcc/final.c:4754