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]

PR/21292: skip generic vectorization tests if the SIMD instructionscould be used


x86-64 and ia64 are currently failing two generic vectorization tests that check if vectorization is *worthless* and thus should not be performed. The reason is that on these platforms does not have any option to enable special SIMD instructions, so theyy can vectorize these tests using hardware vectors (respectively, 128-bit and 64-bit).

The two tests should be skipped on these platforms, and actually even the others do not make much sense because they are complete dups of the tests in gcc.dg/vect.

Regtested on powerpc-apple-darwin, ok for mainline?

Paolo
2005-05-23  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21292

	* lib/target-supports.exp (check_effective_target_vect_cmdline_needed):
	New.
	* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
	gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
	gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
	gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
	gcc.dg/tree-ssa/gen-vect-32.c: Require it.

Index: testsuite/lib/target-supports.exp
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/target-supports.exp,v
retrieving revision 1.58
diff -p -u -u -r1.58 target-supports.exp
--- testsuite/lib/target-supports.exp	17 May 2005 04:33:42 -0000	1.58
+++ testsuite/lib/target-supports.exp	23 May 2005 08:59:39 -0000
@@ -725,6 +725,28 @@ proc check_effective_target_lp64 { } {
     return $et_lp64_saved
 }
 
+# Return 1 if the target needs a command line argument to enable a SIMD
+# instruction set.
+#
+# This won't change for different subtargets so cache the result.
+
+proc check_effective_target_vect_cmdline_needed { } {
+    global et_vect_cmdline_needed_saved
+
+    if [info exists et_vect_cmdline_needed_saved] {
+	verbose "check_effective_target_vect_cmdline_needed: using cached result" 2
+    } else {
+	set et_vect_cmdline_needed_saved 1
+	if { [istarget ia64-*-*]
+	      || [istarget x86_64-*-*] } {
+	   set et_vect_cmdline_needed_saved 0
+	}
+    }
+
+    verbose "check_effective_target_vect_cmdline_needed: returning $et_vect_cmdline_needed_saved" 2
+    return $et_vect_cmdline_needed_saved
+}
+
 # Return 1 if the target supports hardware vectors of int, 0 otherwise.
 #
 # This won't change for different subtargets so cache the result.
Index: testsuite/gcc.dg/tree-ssa/gen-vect-11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-11.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-11.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-11.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-11a.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-11a.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-11a.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-11b.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-11b.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-11b.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-11c.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-11c.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-11c.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-2.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-2.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-2.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-25.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c,v
retrieving revision 1.2
diff -p -u -u -r1.2 gen-vect-25.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-25.c	27 Apr 2005 16:32:18 -0000	1.2
+++ testsuite/gcc.dg/tree-ssa/gen-vect-25.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-26.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-26.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-26.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-26.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-28.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-28.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-28.c	27 Apr 2005 09:12:04 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-28.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>
Index: testsuite/gcc.dg/tree-ssa/gen-vect-32.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c,v
retrieving revision 1.1
diff -p -u -u -r1.1 gen-vect-32.c
--- testsuite/gcc.dg/tree-ssa/gen-vect-32.c	27 Apr 2005 09:12:05 -0000	1.1
+++ testsuite/gcc.dg/tree-ssa/gen-vect-32.c	23 May 2005 08:59:39 -0000
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target vect_cmdline_needed } } */
 /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
 
 #include <stdlib.h>

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