This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]