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" } } */