aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-06-29 11:25:12 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-06-29 11:25:12 -0700
commitd5dfe0b8c26fbe6a76765713dc3c37aea01d9b26 (patch)
treebb8549bd36bddace1fda27b68ef87c9f269521a5 /gcc
parent70707f6c75be10f35bc206e9d59fa88234d3b568 (diff)
downloadgcc-d5dfe0b8c26fbe6a76765713dc3c37aea01d9b26.zip
gcc-d5dfe0b8c26fbe6a76765713dc3c37aea01d9b26.tar.gz
gcc-d5dfe0b8c26fbe6a76765713dc3c37aea01d9b26.tar.bz2
target-supports.exp (check_effective_target_vect_no_int_max): Rename from check_effective_target_vect_no_max.
* lib/target-supports.exp (check_effective_target_vect_no_int_max): Rename from check_effective_target_vect_no_max. (check_effective_target_vect_no_int_add): New. * gcc.dg/vect/vect-13.c: Use vect_no_int_max. * gcc.dg/vect/vect-91.c: Use vect_no_int_add. * gcc.dg/vect/vect-reduc-3.c: Likewise. * gcc.dg/vect/vect-reduc-1.c: Use both. * gcc.dg/vect/vect-reduc-2.c: Likewise. From-SVN: r101435
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-13.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-91.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-3.c2
-rw-r--r--gcc/testsuite/lib/target-supports.exp39
7 files changed, 46 insertions, 14 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 10b2817..0c5663f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,16 @@
2005-05-29 Richard Henderson <rth@redhat.com>
+ * lib/target-supports.exp (check_effective_target_vect_no_int_max):
+ Rename from check_effective_target_vect_no_max.
+ (check_effective_target_vect_no_int_add): New.
+ * gcc.dg/vect/vect-13.c: Use vect_no_int_max.
+ * gcc.dg/vect/vect-91.c: Use vect_no_int_add.
+ * gcc.dg/vect/vect-reduc-3.c: Likewise.
+ * gcc.dg/vect/vect-reduc-1.c: Use both.
+ * gcc.dg/vect/vect-reduc-2.c: Likewise.
+
+2005-05-29 Richard Henderson <rth@redhat.com>
+
* lib/target-supports.exp (check_effective_target_vect_no_max):
Remove i386 and x86_64.
diff --git a/gcc/testsuite/gcc.dg/vect/vect-13.c b/gcc/testsuite/gcc.dg/vect/vect-13.c
index 9e6f4f9..dcafcaf 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-13.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-13.c
@@ -36,6 +36,6 @@ int main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-91.c b/gcc/testsuite/gcc.dg/vect/vect-91.c
index 80afd69..96099f4 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-91.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-91.c
@@ -63,7 +63,7 @@ main3 ()
/* Currently only the loops in main2 and main3 get vectorized. After the merge
of the datarefs-analysis cleanups from autovect-branch to mainline, the loop
in main1 will also be vectorized. */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_int_add } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { scan-tree-dump-times "accesses have the same alignment." 2 "vect" } } */
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
index a582579..660c2df 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
@@ -50,5 +50,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c
index ef4499f..37635ea 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c
@@ -47,5 +47,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c
index 0011837..486ac53 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c
@@ -36,5 +36,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_add } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index d00850a..7605114 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -962,24 +962,45 @@ proc check_effective_target_vect_double { } {
}
# Return 1 if the target plus current options does not support a vector
-# max instruction, 0 otherwise.
+# max instruction on "int", 0 otherwise.
#
# This won't change for different subtargets so cache the result.
-proc check_effective_target_vect_no_max { } {
- global et_vect_no_max_saved
+proc check_effective_target_vect_no_int_max { } {
+ global et_vect_no_int_max_saved
- if [info exists et_vect_no_max_saved] {
- verbose "check_effective_target_vect_no_max: using cached result" 2
+ if [info exists et_vect_no_int_max_saved] {
+ verbose "check_effective_target_vect_no_int_max: using cached result" 2
} else {
- set et_vect_no_max_saved 0
+ set et_vect_no_int_max_saved 0
if { [istarget sparc*-*-*]
|| [istarget alpha*-*-*] } {
- set et_vect_no_max_saved 1
+ set et_vect_no_int_max_saved 1
}
}
- verbose "check_effective_target_vect_no_max: returning $et_vect_no_max_saved" 2
- return $et_vect_no_max_saved
+ verbose "check_effective_target_vect_no_int_max: returning $et_vect_no_int_max_saved" 2
+ return $et_vect_no_int_max_saved
+}
+
+# Return 1 if the target plus current options does not support a vector
+# add instruction on "int", 0 otherwise.
+#
+# This won't change for different subtargets so cache the result.
+
+proc check_effective_target_vect_no_int_add { } {
+ global et_vect_no_int_add_saved
+
+ if [info exists et_vect_no_int_add_saved] {
+ verbose "check_effective_target_vect_no_int_add: using cached result" 2
+ } else {
+ set et_vect_no_int_add_saved 0
+ # Alpha only supports vector add on V8QI and V4HI.
+ if { [istarget alpha*-*-*] } {
+ set et_vect_no_int_add_saved 1
+ }
+ }
+ verbose "check_effective_target_vect_no_int_add: returning $et_vect_no_int_add_saved" 2
+ return $et_vect_no_int_add_saved
}
# Return 1 if the target plus current options does not support vector