This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Clean up vectorizer testsuite
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 5 Dec 2005 19:55:46 +0100
- Subject: Clean up vectorizer testsuite
It currently looks like this on SPARC (both mainline and 4.1 branch):
XPASS: gcc.dg/vect/pr20122.c scan-tree-dump-times vectorized 1 loops 2
FAIL: gcc.dg/vect/pr24300.c (test for excess errors)
XPASS: gcc.dg/vect/vect-105.c scan-tree-dump-times vectorized 1 loops 1
FAIL: gcc.dg/vect/vect-62.c scan-tree-dump-times not vectorized: redundant
loop. no profit to vectorize. 1
XPASS: gcc.dg/vect/vect-75.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-76.c scan-tree-dump-times vectorized 3 loops 1
FAIL: gcc.dg/vect/vect-76.c scan-tree-dump-times vectorized 1 loops 1
FAIL: gcc.dg/vect/vect-reduc-1char.c scan-tree-dump-times vectorized 3 loops 1
FAIL: gcc.dg/vect/vect-reduc-1short.c scan-tree-dump-times vectorized 3 loops1
FAIL: gcc.dg/vect/vect-reduc-2char.c scan-tree-dump-times vectorized 3 loops 1
FAIL: gcc.dg/vect/vect-reduc-2short.c scan-tree-dump-times vectorized 3 loops1
The vect-62.c failure is PR tree-optimization/24963 and shows up everywhere.
It turns out to be spurious, as Dorit was so kind to analyze. Quoting her:
"The error message checks that the vectorizer detected that it's not worth
while to vectorize the loop because all operations in the loop are either dead
or only used outside the loop and can be moved out of the loop (e.g.
invariants, inductions). In other words - the loop should have been optimized
away by scalar optimizations. Indeed, this is what now happens - so the
specific loop that issued this message does not exist anymore. This dg line
can be removed from the test."
The vect-76.c failure is PR target/24108 and shows up on platforms without
aligning vector operations. But all the loops are nevertheless vectorized
now because of versioning. Dorit already posted the patch 2 months ago.
The 4 tests vect-reduc-1char.c, vect-reduc-1short.c, vect-reduc-2char.c,
vect-reduc-2short.c use MIN/MAX vector operations and SPARC doesn't have
them.
Tested on SPARC/Solaris and x86-64/Linux, applied to mainline and 4.1 branch
as obvious. The only remaining failure is pr24300.c (now PR target/24378).
2005-12-05 Eric Botcazou <ebotcazou@libertysurf.fr>
PR tree-optimization/24963
* gcc.dg/vect/vect-62.c: Remove outdated dg-line.
PR target/24108
* gcc.dg/vect/vect-76.c: Do not XFAIL on vect_no_align platforms.
PR target/18580
* gcc.dg/vect/vect-reduc-1char.c: XFAIL on vect_no_int_max platforms.
* gcc.dg/vect/vect-reduc-2short.c: Likewise.
* gcc.dg/vect/vect-reduc-1short.c: Likewise.
* gcc.dg/vect/vect-reduc-2char.c: Likewise.
--
Eric Botcazou
Index: gcc.dg/vect/vect-reduc-1char.c
===================================================================
--- gcc.dg/vect/vect-reduc-1char.c (revision 107650)
+++ gcc.dg/vect/vect-reduc-1char.c (working copy)
@@ -46,5 +46,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-reduc-2short.c
===================================================================
--- gcc.dg/vect/vect-reduc-2short.c (revision 107650)
+++ gcc.dg/vect/vect-reduc-2short.c (working copy)
@@ -44,5 +44,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-76.c
===================================================================
--- gcc.dg/vect/vect-76.c (revision 107650)
+++ gcc.dg/vect/vect-76.c (working copy)
@@ -69,7 +69,6 @@ int main (void)
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-reduc-1short.c
===================================================================
--- gcc.dg/vect/vect-reduc-1short.c (revision 107650)
+++ gcc.dg/vect/vect-reduc-1short.c (working copy)
@@ -46,5 +46,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-reduc-2char.c
===================================================================
--- gcc.dg/vect/vect-reduc-2char.c (revision 107650)
+++ gcc.dg/vect/vect-reduc-2char.c (working copy)
@@ -45,5 +45,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-62.c
===================================================================
--- gcc.dg/vect/vect-62.c (revision 107650)
+++ gcc.dg/vect/vect-62.c (working copy)
@@ -66,5 +66,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "not vectorized: redundant loop. no profit to vectorize." 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */