This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix PR66799
- From: Richard Biener <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 26 Nov 2015 13:13:42 +0100 (CET)
- Subject: [PATCH] Fix PR66799
- Authentication-results: sourceware.org; auth=none
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 } } } } } */