On Jun 27, 2012, at 3:36 PM, Janis Johnson wrote: > 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 } } } } } */
I don't think so? The first sets the xfail status for the testcase. If you change the condition, you can't the xfail state for some targets, which would be wrong (without a vec person chiming in). I'd like to think you can compose the two with some spelling... I just don't think this one is it.? I grepped around and found: /* { dg-message "does break strict-aliasing" "" { target { *-*-* && lp64 } xfail *-*-* } 8 } */ which might have the right way to spell it, though, I always test to ensure the construct does what I want. > That is, run the check everywhere We don't want to run the test on other than vect_hw_misalign targets, right?