Seventeen tests in gcc.dg/vect that use vect_multiple_sizes have checks similar to:
/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */ /* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } * When vect_multiple_sizes is true the first check shouldn't be reported as XFAIL, it should intead be skipped. The convention in other vect tests is to instead use: /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } * This patch fixes those 17 tests. Tested on arm-none-eabi with a variety of test multilibs, checked in on trunk as obvious. I'll backport to 4.6 when the branch is open. Janis
2012-09-18 Janis Johnson <jani...@codesourcery.com> * gcc.dg/vect/no-vfa-vect-101.c: Skip a check for an irrelevant target instead of xfailing it. * gcc.dg/vect/no-vfa-vect-102.c: Likewise. * gcc.dg/vect/no-vfa-vect-102a.c: Likewise. * gcc.dg/vect/no-vfa-vect-37.c: Likewise. * gcc.dg/vect/no-vfa-vect-79.c: Likewise. * gcc.dg/vect/vect-104.c: Likewise. * gcc.dg/vect/vect-outer-1-big-array.c: Likewise. * gcc.dg/vect/vect-outer-1.c: Likewise. * gcc.dg/vect/vect-outer-1a-big-array.c: Likewise. * gcc.dg/vect/vect-outer-1a.c: Likewise. * gcc.dg/vect/vect-outer-1b-big-array.c: Likewise. * gcc.dg/vect/vect-outer-1b.c: Likewise. * gcc.dg/vect/vect-outer-2b.c: Likewise. * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise. * gcc.dg/vect/vect-outer-3a.c: Likewise. * gcc.dg/vect/vect-outer-3b.c: Likewise. * gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise. Index: gcc.dg/vect/no-vfa-vect-101.c =================================================================== --- gcc.dg/vect/no-vfa-vect-101.c (revision 191440) +++ gcc.dg/vect/no-vfa-vect-101.c (working copy) @@ -45,7 +45,7 @@ } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/no-vfa-vect-102.c =================================================================== --- gcc.dg/vect/no-vfa-vect-102.c (revision 191440) +++ gcc.dg/vect/no-vfa-vect-102.c (working copy) @@ -53,7 +53,7 @@ } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/no-vfa-vect-102a.c =================================================================== --- gcc.dg/vect/no-vfa-vect-102a.c (revision 191440) +++ gcc.dg/vect/no-vfa-vect-102a.c (working copy) @@ -53,7 +53,7 @@ } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/no-vfa-vect-37.c =================================================================== --- gcc.dg/vect/no-vfa-vect-37.c (revision 191440) +++ gcc.dg/vect/no-vfa-vect-37.c (working copy) @@ -58,6 +58,6 @@ If/when the aliasing problems are resolved, unalignment may prevent vectorization on some targets. */ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/no-vfa-vect-79.c =================================================================== --- gcc.dg/vect/no-vfa-vect-79.c (revision 191440) +++ gcc.dg/vect/no-vfa-vect-79.c (working copy) @@ -46,6 +46,6 @@ If/when the aliasing problems are resolved, unalignment may prevent vectorization on some targets. */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-104.c =================================================================== --- gcc.dg/vect/vect-104.c (revision 191440) +++ gcc.dg/vect/vect-104.c (working copy) @@ -64,7 +64,7 @@ } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */ -/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1-big-array.c =================================================================== --- gcc.dg/vect/vect-outer-1-big-array.c (revision 191440) +++ gcc.dg/vect/vect-outer-1-big-array.c (working copy) @@ -22,6 +22,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1.c =================================================================== --- gcc.dg/vect/vect-outer-1.c (revision 191440) +++ gcc.dg/vect/vect-outer-1.c (working copy) @@ -22,6 +22,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1a-big-array.c =================================================================== --- gcc.dg/vect/vect-outer-1a-big-array.c (revision 191440) +++ gcc.dg/vect/vect-outer-1a-big-array.c (working copy) @@ -20,6 +20,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1a.c =================================================================== --- gcc.dg/vect/vect-outer-1a.c (revision 191440) +++ gcc.dg/vect/vect-outer-1a.c (working copy) @@ -20,6 +20,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1b-big-array.c =================================================================== --- gcc.dg/vect/vect-outer-1b-big-array.c (revision 191440) +++ gcc.dg/vect/vect-outer-1b-big-array.c (working copy) @@ -22,6 +22,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-1b.c =================================================================== --- gcc.dg/vect/vect-outer-1b.c (revision 191440) +++ gcc.dg/vect/vect-outer-1b.c (working copy) @@ -22,6 +22,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-2b.c =================================================================== --- gcc.dg/vect/vect-outer-2b.c (revision 191440) +++ gcc.dg/vect/vect-outer-2b.c (working copy) @@ -37,6 +37,6 @@ return 0; } -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-3a-big-array.c =================================================================== --- gcc.dg/vect/vect-outer-3a-big-array.c (revision 191440) +++ gcc.dg/vect/vect-outer-3a-big-array.c (working copy) @@ -49,6 +49,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */ -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-3a.c =================================================================== --- gcc.dg/vect/vect-outer-3a.c (revision 191440) +++ gcc.dg/vect/vect-outer-3a.c (working copy) @@ -49,6 +49,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */ -/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-outer-3b.c =================================================================== --- gcc.dg/vect/vect-outer-3b.c (revision 191440) +++ gcc.dg/vect/vect-outer-3b.c (working copy) @@ -49,6 +49,6 @@ } /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "grouped access in outer loop" 4 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ Index: gcc.dg/vect/vect-reduc-dot-s8b.c =================================================================== --- gcc.dg/vect/vect-reduc-dot-s8b.c (revision 191440) +++ gcc.dg/vect/vect-reduc-dot-s8b.c (working copy) @@ -58,7 +58,7 @@ } /* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { xfail vect_multiple_sizes } } } */ +/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { target { ! vect_multiple_sizes } } } } */ /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_multiple_sizes } } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */