https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84265
Bug ID: 84265 Summary: ICE in vect_permute_load_chain, at tree-vect-data-refs.c:5933 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: amker at gcc dot gnu.org, rdsandiford at googlemail dot com Target Milestone: --- Host: x86_64-unknown-linux-gnu Target: aarch64-linux-gnu Both seen on native machine and cross compiler: $ cat ice.i struct a { unsigned long b; unsigned long c; int d; int *e; char f; }; struct { int g; struct a h[]; } i; int j, k; void l () { for (; k; k++) j += (int) (i.h[k].c - i.h[k].b); } $ ./xgcc -B. -O3 ice.i -c during GIMPLE pass: vect ice.i: In function ālā: ice.i:17:6: internal compiler error: in vect_permute_load_chain, at tree-vect-data-refs.c:5933 void l () ^ 0x134b950 vect_permute_load_chain ../../gcc/tree-vect-data-refs.c:5933 0x134c46f vect_transform_grouped_load(gimple*, vec<tree_node*, va_heap, vl_ptr>, int, gimple_stmt_iterator*) ../../gcc/tree-vect-data-refs.c:6355 0xe31758 vectorizable_load ../../gcc/tree-vect-stmts.c:8366 0xe3c1df vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) ../../gcc/tree-vect-stmts.c:9453 0xe4b522 vect_transform_loop(_loop_vec_info*) ../../gcc/tree-vect-loop.c:8872 0xe6b173 vectorize_loops() ../../gcc/tree-vectorizer.c:740