aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2007-10-21 10:01:16 +0000
committerIra Rosen <irar@gcc.gnu.org>2007-10-21 10:01:16 +0000
commit8d0e5316e7e054e85102d36b96d24cce21b26bcd (patch)
tree3c6ae7f6a879a287a20effa9e27ce095fd6d997d /gcc
parent43029c1033d4e420ff02f1529fa9f99616a20021 (diff)
downloadgcc-8d0e5316e7e054e85102d36b96d24cce21b26bcd.zip
gcc-8d0e5316e7e054e85102d36b96d24cce21b26bcd.tar.gz
gcc-8d0e5316e7e054e85102d36b96d24cce21b26bcd.tar.bz2
vect-ifcvt-5.c: Require vect_int.
* gcc.dg/vect/vect-ifcvt-5.c: Require vect_int. * gcc.dg/vect/vect-16.c: Fix comment. * gcc.dg/vect/pr33369.c: Require vect_int. * gcc.dg/vect/slp-33.c: Add spaces. * gcc.dg/vect/no-scevccp-outer-18.c: Enable only for vect_interleave targets. * gcc.dg/vect/vect-ifcvt-6.c: Require vect_int. * gcc.dg/vect/no-scevccp-outer-19.c: Enable only for vect_unpack targets. * gcc.dg/vect/vect-ifcvt-7.c: Require vect_int. * gcc.dg/vect/vect-strided-store-u16-i4.c: Add vect_unpack to targets. * gcc.dg/vect/slp-10.c: Add spaces. * gcc.dg/vect/no-scevccp-outer-21.c: Enable only for vect_pack_trunc targets. * gcc.dg/vect/slp-36.c: Require vect_int. * gcc.dg/vect/vect-ifcvt-9.c, gcc.dg/vect/vect-strided-store-u32-i2.c, gcc.dg/vect/vect-ifcvt-2.c, gcc.dg/vect/vect-ifcvt-3.c, gcc.dg/vect/vect-82.c, gcc.dg/vect/vect-83.c: Likewise. * gcc.dg/vect/no-scevccp-outer-16.c: Enable only for vect_unpack targets. * gcc.dg/vect/no-scevccp-outer-17.c: Likewise. * gcc.dg/vect/pr25413.c: Use vector alignment_reachable_for_64bit instead of vector_alignment_reachable_for_double. * lib/target-supports.exp (vect_aligned_arrays): Add spu-*-*. (natural_alignment): Split into... (natural_alignment_32, natural_alignment_64): New. (vector_alignment_reachable): Depend on natural_alignment_32. (vector_alignment_reachable_for_double): Rename to ... (vector_alignment_reachable_for_64bit): And depend on natural_alignment_64. Co-Authored-By: Revital Eres <eres@il.ibm.com> From-SVN: r129529
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog35
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr25413.c8
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr33369.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-10.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-33.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-36.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-82.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-83.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c2
-rw-r--r--gcc/testsuite/lib/target-supports.exp76
23 files changed, 111 insertions, 44 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 64375dc..4ed9bce 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,38 @@
+2007-10-21 Ira Rosen <irar@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * gcc.dg/vect/vect-ifcvt-5.c: Require vect_int.
+ * gcc.dg/vect/vect-16.c: Fix comment.
+ * gcc.dg/vect/pr33369.c: Require vect_int.
+ * gcc.dg/vect/slp-33.c: Add spaces.
+ * gcc.dg/vect/no-scevccp-outer-18.c: Enable only for vect_interleave
+ targets.
+ * gcc.dg/vect/vect-ifcvt-6.c: Require vect_int.
+ * gcc.dg/vect/no-scevccp-outer-19.c: Enable only for vect_unpack
+ targets.
+ * gcc.dg/vect/vect-ifcvt-7.c: Require vect_int.
+ * gcc.dg/vect/vect-strided-store-u16-i4.c: Add vect_unpack to
+ targets.
+ * gcc.dg/vect/slp-10.c: Add spaces.
+ * gcc.dg/vect/no-scevccp-outer-21.c: Enable only for vect_pack_trunc
+ targets.
+ * gcc.dg/vect/slp-36.c: Require vect_int.
+ * gcc.dg/vect/vect-ifcvt-9.c, gcc.dg/vect/vect-strided-store-u32-i2.c,
+ gcc.dg/vect/vect-ifcvt-2.c, gcc.dg/vect/vect-ifcvt-3.c,
+ gcc.dg/vect/vect-82.c, gcc.dg/vect/vect-83.c: Likewise.
+ * gcc.dg/vect/no-scevccp-outer-16.c: Enable only for vect_unpack
+ targets.
+ * gcc.dg/vect/no-scevccp-outer-17.c: Likewise.
+ * gcc.dg/vect/pr25413.c: Use vector alignment_reachable_for_64bit
+ instead of vector_alignment_reachable_for_double.
+ * lib/target-supports.exp (vect_aligned_arrays): Add spu-*-*.
+ (natural_alignment): Split into...
+ (natural_alignment_32, natural_alignment_64): New.
+ (vector_alignment_reachable): Depend on natural_alignment_32.
+ (vector_alignment_reachable_for_double): Rename to ...
+ (vector_alignment_reachable_for_64bit): And depend on
+ natural_alignment_64.
+
2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
* gcc.dg/vect/vect.exp: Extend -mpaired-single handling to all
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
index bdad0a0..ea58d39 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
@@ -58,5 +58,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { xfail { ! {vect_unpack } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
index e40a206..c11a1aa 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
@@ -64,5 +64,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { xfail { ! {vect_unpack } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
index a584828..7a6788a 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
@@ -47,5 +47,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_interleave } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
index f3acb4a..58bcf08 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
@@ -48,5 +48,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { xfail { ! {vect_unpack } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
index 2338de0..f955e4a 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
@@ -58,5 +58,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { xfail { ! { vect_pack_trunc } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr25413.c b/gcc/testsuite/gcc.dg/vect/pr25413.c
index 7f54889..1cb33e3 100644
--- a/gcc/testsuite/gcc.dg/vect/pr25413.c
+++ b/gcc/testsuite/gcc.dg/vect/pr25413.c
@@ -32,8 +32,8 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vector_alignment_reachable_for_double } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vector_alignment_reachable_for_double } } } } */
-/* { dg-final { scan-tree-dump-times "vector alignment may not be reachable" 1 "vect" { target { ! vector_alignment_reachable_for_double } } } } */
-/* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 1 "vect" { target { ! vector_alignment_reachable_for_double } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vector_alignment_reachable_for_64bit } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vector_alignment_reachable_for_64bit } } } } */
+/* { dg-final { scan-tree-dump-times "vector alignment may not be reachable" 1 "vect" { target { ! vector_alignment_reachable_for_64bit } } } } */
+/* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 1 "vect" { target { ! vector_alignment_reachable_for_64bit } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr33369.c b/gcc/testsuite/gcc.dg/vect/pr33369.c
index 9979cbd..1aaf4e3 100644
--- a/gcc/testsuite/gcc.dg/vect/pr33369.c
+++ b/gcc/testsuite/gcc.dg/vect/pr33369.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_shift } */
typedef struct tagPOINT
diff --git a/gcc/testsuite/gcc.dg/vect/slp-10.c b/gcc/testsuite/gcc.dg/vect/slp-10.c
index 737e1e7..36dc0cc 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-10.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-10.c
@@ -106,9 +106,9 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" {target {vect_intfloat_cvt && vect_int_mult} } } } */
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && vect_int_mult} } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && {!{vect_int_mult}}} } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && { ! {vect_int_mult}}} } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {target {vect_intfloat_cvt && vect_int_mult} } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {target {{! { vect_intfloat_cvt}} && vect_int_mult} } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" {target {{! { vect_intfloat_cvt}} && {!{vect_int_mult}}} } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" {target {{! { vect_intfloat_cvt}} && { ! {vect_int_mult}}} } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-33.c b/gcc/testsuite/gcc.dg/vect/slp-33.c
index 86a641c..7ee7a0b 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-33.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-33.c
@@ -104,9 +104,9 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" {target {vect_intfloat_cvt && vect_int_mult} } } } */
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && vect_int_mult} } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && {!{vect_int_mult}}} } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" {target {{! { vect_intfloat_cvt}} && {! {vect_int_mult}}} } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {target {vect_intfloat_cvt && vect_int_mult} } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {target {{! { vect_intfloat_cvt}} && vect_int_mult} } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" {target {{! { vect_intfloat_cvt}} && {!{vect_int_mult}}} } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" {target {{! { vect_intfloat_cvt}} && {! {vect_int_mult}}} } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-36.c b/gcc/testsuite/gcc.dg/vect/slp-36.c
index 98d1473..8480c4a 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-36.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-36.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_shift } */
#define N 32
diff --git a/gcc/testsuite/gcc.dg/vect/vect-16.c b/gcc/testsuite/gcc.dg/vect/vect-16.c
index 889fb7f..6983705 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-16.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-16.c
@@ -14,7 +14,6 @@ int main1 ()
float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
float diff;
- /* Not vectorizable yet (reduction). */
diff = 0;
for (i = 0; i < N; i++) {
diff += (b[i] - c[i]);
@@ -34,5 +33,6 @@ int main (void)
return main1 ();
}
+/* Requires fast-math. */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-82.c b/gcc/testsuite/gcc.dg/vect/vect-82.c
index 9cc63ff..e962f8f 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-82.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-82.c
@@ -1,4 +1,5 @@
/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/vect-83.c b/gcc/testsuite/gcc.dg/vect/vect-83.c
index 7c46ed9..4cebd7f 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-83.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-83.c
@@ -1,4 +1,5 @@
/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
index 74f6b93..a89bd8f 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
index 3f591d9..902b154 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
index 5ee9ba6..8797410 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
index 6d01803..f2330bd 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
index 81b225b..fa89d83 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
index 75941d7..f9a92b8 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <signal.h>
diff --git a/gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c b/gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
index 1eb848e..5c02c0d 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
@@ -65,8 +65,8 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { vect_interleave } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_interleave } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { vect_interleave && vect_pack_trunc } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { { ! { vect_interleave } } && { vect_pack_trunc } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c b/gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
index 2c5a999..ecc567c 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
@@ -1,4 +1,4 @@
-/* { dg-require-effective-target vect_float } */
+/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include <stdio.h>
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index ac53b655..e4e9c58 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1507,7 +1507,6 @@ proc check_effective_target_vect_floatint_cvt { } {
return $et_vect_floatint_cvt_saved
}
-
# Return 1 is this is an arm target using 32-bit instructions
proc check_effective_target_arm32 { } {
return [check_no_compiler_messages arm32 assembly {
@@ -2144,8 +2143,9 @@ proc check_effective_target_vect_aligned_arrays { } {
verbose "check_effective_target_vect_aligned_arrays: using cached result" 2
} else {
set et_vect_aligned_arrays_saved 0
- if { ([istarget x86_64-*-*]
- || [istarget i?86-*-*]) && [is-effective-target lp64] } {
+ if { (([istarget x86_64-*-*]
+ || [istarget i?86-*-*]) && [is-effective-target lp64])
+ || [istarget spu-*-*] } {
set et_vect_aligned_arrays_saved 1
}
}
@@ -2153,28 +2153,49 @@ proc check_effective_target_vect_aligned_arrays { } {
return $et_vect_aligned_arrays_saved
}
-# Return 1 if types are naturally aligned (aligned to their type-size),
-# 0 otherwise.
+# Return 1 if types of size 32 bit or less are naturally aligned
+# (aligned to their type-size), 0 otherwise.
+#
+# This won't change for different subtargets so cache the result.
+
+proc check_effective_target_natural_alignment_32 { } {
+ global et_natural_alignment_32
+
+ if [info exists et_natural_alignment_32_saved] {
+ verbose "check_effective_target_natural_alignment_32: using cached result" 2
+ } else {
+ # FIXME: 32bit powerpc: guaranteed only if MASK_ALIGN_NATURAL/POWER.
+ set et_natural_alignment_32_saved 1
+ if { ([istarget *-*-darwin*] && [is-effective-target lp64]) } {
+ set et_natural_alignment_32_saved 0
+ }
+ }
+ verbose "check_effective_target_natural_alignment_32: returning $et_natural_alignment_32_saved" 2
+ return $et_natural_alignment_32_saved
+}
+
+# Return 1 if types of size 64 bit or less are naturally aligned (aligned to their
+# type-size), 0 otherwise.
#
# This won't change for different subtargets so cache the result.
-proc check_effective_target_natural_alignment { } {
- global et_natural_alignment
+proc check_effective_target_natural_alignment_64 { } {
+ global et_natural_alignment_64
- if [info exists et_natural_alignment_saved] {
- verbose "check_effective_target_natural_alignment: using cached result" 2
+ if [info exists et_natural_alignment_64_saved] {
+ verbose "check_effective_target_natural_alignment_64: using cached result" 2
} else {
- # FIXME: 32bit powerpc: guaranteed only if MASK_ALIGN_NATURAL/POWER.
- set et_natural_alignment_saved 1
- if { ([istarget *-*-darwin*] && [is-effective-target lp64]) } {
- set et_natural_alignment_saved 0
+ set et_natural_alignment_64_saved 0
+ if { ([is-effective-target lp64] && ![istarget *-*-darwin*])
+ || [istarget spu-*-*] } {
+ set et_natural_alignment_64_saved 1
}
}
- verbose "check_effective_target_natural_alignment: returning $et_natural_alignment_saved" 2
- return $et_natural_alignment_saved
+ verbose "check_effective_target_natural_alignment_64: returning $et_natural_alignment_64_saved" 2
+ return $et_natural_alignment_64_saved
}
-# Return 1 if vector alignment is reachable, 0 otherwise.
+# Return 1 if vector alignment (for types of size 32 bit or less) is reachable, 0 otherwise.
#
# This won't change for different subtargets so cache the result.
@@ -2185,7 +2206,7 @@ proc check_effective_target_vector_alignment_reachable { } {
verbose "check_effective_target_vector_alignment_reachable: using cached result" 2
} else {
if { [check_effective_target_vect_aligned_arrays]
- || [check_effective_target_natural_alignment] } {
+ || [check_effective_target_natural_alignment_32] } {
set et_vector_alignment_reachable_saved 1
} else {
set et_vector_alignment_reachable_saved 0
@@ -2195,24 +2216,25 @@ proc check_effective_target_vector_alignment_reachable { } {
return $et_vector_alignment_reachable_saved
}
-# Return 1 if vector alignment for soubles is reachable, 0 otherwise.
+# Return 1 if vector alignment for 64 bit is reachable, 0 otherwise.
#
# This won't change for different subtargets so cache the result.
-proc check_effective_target_vector_alignment_reachable_for_double { } {
- global et_vector_alignment_reachable_for_double
+proc check_effective_target_vector_alignment_reachable_for_64bit { } {
+ global et_vector_alignment_reachable_for_64bit
- if [info exists et_vector_alignment_reachable_for_double_saved] {
- verbose "check_effective_target_vector_alignment_reachable_for_double: using cached result" 2
+ if [info exists et_vector_alignment_reachable_for_64bit_saved] {
+ verbose "check_effective_target_vector_alignment_reachable_for_64bit: using cached result" 2
} else {
- if { [check_effective_target_vect_aligned_arrays] } {
- set et_vector_alignment_reachable_for_double_saved 1
+ if { [check_effective_target_vect_aligned_arrays]
+ || [check_effective_target_natural_alignment_64] } {
+ set et_vector_alignment_reachable_for_64bit_saved 1
} else {
- set et_vector_alignment_reachable_for_double_saved 0
+ set et_vector_alignment_reachable_for_64bit_saved 0
}
}
- verbose "check_effective_target_vector_alignment_reachable_for_double: returning $et_vector_alignment_reachable_for_double_saved" 2
- return $et_vector_alignment_reachable_for_double_saved
+ verbose "check_effective_target_vector_alignment_reachable_for_64bit: returning $et_vector_alignment_reachable_for_64bit_saved" 2
+ return $et_vector_alignment_reachable_for_64bit_saved
}
# Return 1 if the target supports vector conditional operations, 0 otherwise.