This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PR/21292: skip generic vectorization tests if the SIMD instructionscould be used
- From: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 23 May 2005 11:04:41 +0200
- Subject: 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>