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 <rguent...@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 } } } } } */