The old gcc.dg/vect/O3-pr36098.c now FAILs on target that support general permutation. It was added for a miscompile but only tested that we don't vectorize - now we do, but correctly.
I believe we've recently got a duplicate but proper runtime testcase. Tested on x86_64-unknown-linux-gnu with various flags, committed. Richard. 2016-03-07 Richard Biener <rguent...@suse.de> PR testsuite/70109 * gcc.dg/vect/O3-pr36098.c: New testcase. Index: gcc/testsuite/gcc.dg/vect/O3-pr36098.c =================================================================== --- gcc/testsuite/gcc.dg/vect/O3-pr36098.c (revision 233964) +++ gcc/testsuite/gcc.dg/vect/O3-pr36098.c (working copy) @@ -17,4 +17,8 @@ void foo (int ncons, t_sortblock *sb, in iatom[m]=sb[i].iatom[m]; } -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" } } */ +/* The testcase was originally added for correctness reasons but now we + can vectorize it correctly if the target supports the permutations + required. */ + +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_perm } } } } */