These scans from gcc.dg/vect/vect-50.c, and others similar to them in other vect tests, hurt my brain:
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align } } } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { target vect_hw_misalign } } } */ Both of these PASS for i686-pc-linux-gnu, causing duplicate lines in the gcc test summary. I'm pretty sure the following accomplishes the same goal: /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ That is, run the check everywhere and expect it to fail for effective targets for which vect_no_align is true and vect_hw_misalign is false. Tested on i686-pc-linux-gnu and arm-none-eabi. I'm enough confused that I'm not going to call this one obvious, it needs a sanity check from someone else; OK for trunk? Janis
2012-06-27 Janis Johnson <jani...@codesourcery.com> * gcc.dg/vect/vect-50.c: Combine two scans. Index: gcc.dg/vect/vect-50.c =================================================================== --- gcc.dg/vect/vect-50.c (revision 189025) +++ gcc.dg/vect/vect-50.c (working copy) @@ -61,8 +61,7 @@ align the store will not force the two loads to be aligned). */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align } } } } */ -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { target vect_hw_misalign } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align && {! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || {! vector_alignment_reachable} } } } } */ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target { {! vector_alignment_reachable} && { {! vect_no_align } && {! vect_hw_misalign } } } } } } */