https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306
--- Comment #15 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 16 Nov 2015, uweigand at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68306 > > --- Comment #14 from Ulrich Weigand <uweigand at gcc dot gnu.org> --- > Building the following reduced test case with > -O2 -ftree-vectorize -fcx-fortran-rules > with an spu-elf cross-cc1 shows the ICE. > > void > test (_Complex float *dest, > _Complex float scale, int count) > { > for (int x = 0; x < count; x++) > dest[x] *= scale; > } Bah, too much copy&pasting. TRivial fix: Index: gcc/tree-vect-data-refs.c =================================================================== --- gcc/tree-vect-data-refs.c (revision 230421) +++ gcc/tree-vect-data-refs.c (working copy) @@ -967,13 +967,13 @@ vect_verify_datarefs_alignment (loop_vec /* For interleaving, only the alignment of the first access matters. */ if (STMT_VINFO_GROUPED_ACCESS (stmt_info) && GROUP_FIRST_ELEMENT (stmt_info) != stmt) - return true; + continue; /* Strided accesses perform only component accesses, alignment is irrelevant for them. */ if (STMT_VINFO_STRIDED_P (stmt_info) && !STMT_VINFO_GROUPED_ACCESS (stmt_info)) - return true; + continue; if (! verify_data_ref_alignment (dr)) return false;