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

Reply via email to