[Bug tree-optimization/68306] [6 Regression] ICE: in vectorizable_store, at tree-vect-stmts.c:5651

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Mon Nov 16 15:01:00 GMT 2015


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;


More information about the Gcc-bugs mailing list