The following should fix gcc.dg/vect/vect-33.c failing on arm
by properly guarding the scan-tree-dumps for vect64 tagets that
also can vectorize with v16qi.  I've choosen to use
vect_multiple_sizes for that, hoping we don't have targets
that do vect32.

Reliably writing vectorizer testcases gets harder and harder... :/

For the second half we really need to fix SPARC to be a vect64
target (the testcase is vectorized with v8qi).

Applied to trunk.

Richard.

2015-01-23  Richard Biener  <rguent...@suse.de>

        PR testsuite/63439
        * gcc.dg/vect/vect-33.c: Adjust target selectors for v16qi
        vectorization on vect64 targets.

Index: gcc/testsuite/gcc.dg/vect/vect-33.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect-33.c (revision 220030)
+++ gcc/testsuite/gcc.dg/vect/vect-33.c (working copy)
@@ -38,7 +38,7 @@ int main (void)
 
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
-/* { dg-final { scan-tree-dump "Vectorizing an unaligned access" "vect" { 
target { vect_hw_misalign && { ! vect64 } } } } } */
-/* { dg-final { scan-tree-dump "Alignment of access forced using peeling" 
"vect" { target { vector_alignment_reachable && vect64 } } } } */
+/* { dg-final { scan-tree-dump "Vectorizing an unaligned access" "vect" { 
target { vect_hw_misalign && { {! vect64} || vect_multiple_sizes } } } } } */
+/* { dg-final { scan-tree-dump "Alignment of access forced using peeling" 
"vect" { target { vector_alignment_reachable && { vect64 && {! 
vect_multiple_sizes} } } } } } */
 /* { dg-final { scan-tree-dump-times "Alignment of access forced using 
versioning" 1 "vect" { target { { {! vector_alignment_reachable} || {! vect64} 
} && {! vect_hw_misalign} } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */

Reply via email to