https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87815
Bug ID: 87815
Summary: ICE in DSE with -march=armv8-a+sve while trying to
replace load with previously stored value
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: renlin at gcc dot gnu.org
Target Milestone: ---
The following test case ICEs with:
-march=armv8.2-a+sve -O3 and -Ofast
int a, b, d;
short e;
void f() {
for (int i = 0; i < 8; i++) {
e = b >= 2 ?: a >> b;
d = e && b;
}
}
test.c: In function 'f':
test.c:8:1: internal compiler error: in smallest_mode_for_size, at
stor-layout.c:355
8 | }
| ^
0x1048b4a smallest_mode_for_size(poly_int<2u, unsigned long>, mode_class)
src/gcc/gcc/stor-layout.c:355
0xa1a14e smallest_int_mode_for_size(poly_int<2u, unsigned long>)
src/gcc/gcc/machmode.h:838
0x1a93f86 find_shift_sequence
src/gcc/gcc/dse.c:1704
0x1a9497b get_stored_val
src/gcc/gcc/dse.c:1850
0x1a94dae replace_read
src/gcc/gcc/dse.c:1955
0x1a958db check_mem_read_rtx
src/gcc/gcc/dse.c:2187
0x1a95dfc check_mem_read_use
src/gcc/gcc/dse.c:2293
0xfd0fd9 note_uses(rtx_def**, void (*)(rtx_def**, void*), void*)
src/gcc/gcc/rtlanal.c:2005
0x1a9660d scan_insn
src/gcc/gcc/dse.c:2401
0x1a972f3 dse_step1
src/gcc/gcc/dse.c:2659
0x1a9968b rest_of_handle_dse
src/gcc/gcc/dse.c:3576
0x1a9981e execute
src/gcc/gcc/dse.c:3634
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.