https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97405
Bug ID: 97405 Summary: ICE in get_or_alloc_expr_for in code hoisting with SVE intrinsics Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org Target Milestone: --- Target: aarch64 The following ICEs: #include "arm_sve.h" void a (svuint8x3_t b, unsigned char *p, int c) { if (c) svst1_u8(svptrue_pat_b8(SV_VL16), p, svget3_u8(b, 1)); else svst1_u8(svwhilelt_b8(6, 6), p, svget3_u8(b, 1)); } with -O2 -march=armv8.2-a+sve on aarch64 with both GCC 10 and 11 branches during GIMPLE pass: pre sveice.c: In function 'a': sveice.c:4:1: internal compiler error: in get_or_alloc_expr_for, at tree-ssa-pre.c:1098 4 | a (svuint8x3_t b, unsigned char *p, int c) { | ^ 0xf3a0e9 get_or_alloc_expr_for $SRC/gcc/tree-ssa-pre.c:1098 0xf3a0e9 find_or_generate_expression $SRC/gcc/tree-ssa-pre.c:2693 0xf3aadd create_component_ref_by_pieces_1 $SRC/gcc/tree-ssa-pre.c:2613 0xf393fc create_component_ref_by_pieces $SRC/gcc/tree-ssa-pre.c:2681 0xf393fc create_expression_by_pieces $SRC/gcc/tree-ssa-pre.c:2830 0xf3da24 do_hoist_insertion $SRC/gcc/tree-ssa-pre.c:3598 0xf3da24 insert $SRC/gcc/tree-ssa-pre.c:3685 0xf3da24 execute $SRC/gcc/tree-ssa-pre.c:4235 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.