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