[PATCH] Fix PR66799

Richard Biener rguenther@suse.de
Thu Nov 26 12:15:00 GMT 2015


This should fix the gcc.dg/vect/pr20122.c testcase by not making
GCC see all accesses are aligned.

Tested on x86_64, applied.

Richard.

2015-11-26  Richard Biener  <rguenther@suse.de>

	PR testsuite/66799
	* gcc.dg/vect/pr20122.c (main): Do not align Kernel, do not
	vectorize init loop and adjust expected outcome.

Index: gcc/testsuite/gcc.dg/vect/pr20122.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/pr20122.c	(revision 230924)
+++ gcc/testsuite/gcc.dg/vect/pr20122.c	(working copy)
@@ -36,12 +36,16 @@ int main (int argc, char **argv)
 {
     check_vect ();
 
-    short Kernel[8][24] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
+    short Kernel[8][24];
     int k,i;
 
     for (k = 0; k<8; k++)
-        for (i = 0; i<24; i++)
-            Kernel[k][i] = 0;
+      for (i = 0; i<24; i++)
+	{
+	  Kernel[k][i] = 0;
+	  /* Don't get into the game of versioning vs. peeling.  */
+	  __asm__ volatile ("" : : : "memory");
+	}
 
     VecBug(Kernel);
     VecBug2(Kernel);
@@ -49,7 +53,6 @@ int main (int argc, char **argv)
     return 0;
 }
 
-/* The loops in VecBug and VecBug2 require versioning for alignment.
-   The loop in main is aligned.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */
+/* The loops in VecBug and VecBug2 require versioning for alignment.  */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
 /*  { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } } */



More information about the Gcc-patches mailing list