diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 83 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-1.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-2.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-25.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-3.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-31.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-32.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-34.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-36.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-4.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-5.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-6.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-7.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-all.c | 3 | ||||
-rw-r--r-- | gcc/tree-vectorizer.c | 7 |
16 files changed, 106 insertions, 28 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d2bfbe..69960b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-19 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace + STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. + 2004-08-19 Mark Mitchell <mark@codesourcery.com> * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c95d844..007f3dc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2004-08-19 Dorit Naishlos <dorit@il.ibm.com> + + * gcc.dg/vect/vect-1.c: Remove xfail from i?86-*-* x86_64-*-* due + to usage of PREFERRED_STACK_BOUNDARY in the vectorizer. + * gcc.dg/vect/vect-2.c: Likewise. + * gcc.dg/vect/vect-3.c: Likewise. + * gcc.dg/vect/vect-4.c: Likewise. + * gcc.dg/vect/vect-5.c: Likewise. + * gcc.dg/vect/vect-6.c: Likewise. + * gcc.dg/vect/vect-7.c: Likewise. + * gcc.dg/vect/vect-25.c: Likewise. + * gcc.dg/vect/vect-31.c: Likewise. + * gcc.dg/vect/vect-32.c: Likewise. + * gcc.dg/vect/vect-34.c: Likewise. + * gcc.dg/vect/vect-36.c: Likewise. + * gcc.dg/vect/vect-all.c: Likewise. + 2004-08-18 Mark Mitchell <mark@codesourcery.com> PR c++/17068 @@ -32,7 +49,71 @@ 2004-08-17 Dorit Naishlos <dorit@il.ibm.com> * gcc.dg/vect: New directory for vectorizer tests. - (vect-*.c): New tests. + * gcc.dg/vect/tree-vect.h: New file. + * gcc.dg/vect/vect.exp: New file. + * gcc.dg/vect/pr16105.c.c: New test. + * gcc.dg/vect/vect-1.c: New test. + * gcc.dg/vect/vect-2.c: New test. + * gcc.dg/vect/vect-3.c: New test. + * gcc.dg/vect/vect-4.c: New test. + * gcc.dg/vect/vect-5.c: New test. + * gcc.dg/vect/vect-6.c: New test. + * gcc.dg/vect/vect-7.c: New test. + * gcc.dg/vect/vect-8.c: New test. + * gcc.dg/vect/vect-9.c: New test. + * gcc.dg/vect/vect-10.c: New test. + * gcc.dg/vect/vect-11.c: New test. + * gcc.dg/vect/vect-12.c: New test. + * gcc.dg/vect/vect-13.c: New test. + * gcc.dg/vect/vect-14.c: New test. + * gcc.dg/vect/vect-15.c: New test. + * gcc.dg/vect/vect-16.c: New test. + * gcc.dg/vect/vect-17.c: New test. + * gcc.dg/vect/vect-18.c: New test. + * gcc.dg/vect/vect-19.c: New test. + * gcc.dg/vect/vect-20.c: New test. + * gcc.dg/vect/vect-21.c: New test. + * gcc.dg/vect/vect-22.c: New test. + * gcc.dg/vect/vect-23.c: New test. + * gcc.dg/vect/vect-24.c: New test. + * gcc.dg/vect/vect-25.c: New test. + * gcc.dg/vect/vect-26.c: New test. + * gcc.dg/vect/vect-27.c: New test. + * gcc.dg/vect/vect-28.c: New test. + * gcc.dg/vect/vect-29.c: New test. + * gcc.dg/vect/vect-30.c: New test. + * gcc.dg/vect/vect-31.c: New test. + * gcc.dg/vect/vect-32.c: New test. + * gcc.dg/vect/vect-33.c: New test. + * gcc.dg/vect/vect-34.c: New test. + * gcc.dg/vect/vect-35.c: New test. + * gcc.dg/vect/vect-36.c: New test. + * gcc.dg/vect/vect-37.c: New test. + * gcc.dg/vect/vect-38.c: New test. + * gcc.dg/vect/vect-40.c: New test. + * gcc.dg/vect/vect-41.c: New test. + * gcc.dg/vect/vect-42.c: New test. + * gcc.dg/vect/vect-43.c: New test. + * gcc.dg/vect/vect-44.c: New test. + * gcc.dg/vect/vect-45.c: New test. + * gcc.dg/vect/vect-46.c: New test. + * gcc.dg/vect/vect-47.c: New test. + * gcc.dg/vect/vect-48.c: New test. + * gcc.dg/vect/vect-49.c: New test. + * gcc.dg/vect/vect-50.c: New test. + * gcc.dg/vect/vect-51.c: New test. + * gcc.dg/vect/vect-52.c: New test. + * gcc.dg/vect/vect-53.c: New test. + * gcc.dg/vect/vect-54.c: New test. + * gcc.dg/vect/vect-55.c: New test. + * gcc.dg/vect/vect-56.c: New test. + * gcc.dg/vect/vect-57.c: New test. + * gcc.dg/vect/vect-58.c: New test. + * gcc.dg/vect/vect-59.c: New test. + * gcc.dg/vect/vect-60.c: New test. + * gcc.dg/vect/vect-61.c: New test. + * gcc.dg/vect/vect-all.c: New test. + * gcc.dg/vect/vect-none.c: New test. 2004-08-17 Paul Brook <paul@codesourcery.com> diff --git a/gcc/testsuite/gcc.dg/vect/vect-1.c b/gcc/testsuite/gcc.dg/vect/vect-1.c index aa0b1f2..fc6d7ef 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-1.c @@ -98,5 +98,4 @@ foo (int n) fbar (a); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { 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" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-2.c b/gcc/testsuite/gcc.dg/vect/vect-2.c index 0a13ae1..aa862c1 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-2.c +++ b/gcc/testsuite/gcc.dg/vect/vect-2.c @@ -36,5 +36,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-25.c b/gcc/testsuite/gcc.dg/vect/vect-25.c index 05bd15f..36db45d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-25.c +++ b/gcc/testsuite/gcc.dg/vect/vect-25.c @@ -52,5 +52,4 @@ int main (void) return main1 (m, &m); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-3.c b/gcc/testsuite/gcc.dg/vect/vect-3.c index cd49a0d..1f3d0f8 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-3.c @@ -47,8 +47,7 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-31.c b/gcc/testsuite/gcc.dg/vect/vect-31.c index cb7f7cc..4742ca7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-31.c +++ b/gcc/testsuite/gcc.dg/vect/vect-31.c @@ -88,5 +88,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-32.c b/gcc/testsuite/gcc.dg/vect/vect-32.c index 8e1cb18..bf5af33 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-32.c +++ b/gcc/testsuite/gcc.dg/vect/vect-32.c @@ -37,5 +37,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-34.c b/gcc/testsuite/gcc.dg/vect/vect-34.c index 7adbf68..dc77060 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-34.c +++ b/gcc/testsuite/gcc.dg/vect/vect-34.c @@ -38,5 +38,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-36.c b/gcc/testsuite/gcc.dg/vect/vect-36.c index b3c60d9..ce89097 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-36.c +++ b/gcc/testsuite/gcc.dg/vect/vect-36.c @@ -43,5 +43,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-4.c b/gcc/testsuite/gcc.dg/vect/vect-4.c index 943d71f..f4e0671 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-4.c @@ -38,5 +38,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-5.c b/gcc/testsuite/gcc.dg/vect/vect-5.c index bab9e23..3719daf 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-5.c +++ b/gcc/testsuite/gcc.dg/vect/vect-5.c @@ -54,5 +54,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-6.c b/gcc/testsuite/gcc.dg/vect/vect-6.c index 2671fd7..afe0d58 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-6.c +++ b/gcc/testsuite/gcc.dg/vect/vect-6.c @@ -55,7 +55,6 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-7.c b/gcc/testsuite/gcc.dg/vect/vect-7.c index 76e0106..ca4e9c2 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-7.c +++ b/gcc/testsuite/gcc.dg/vect/vect-7.c @@ -48,5 +48,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-all.c b/gcc/testsuite/gcc.dg/vect/vect-all.c index a36d308..bfdbcd6 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-all.c +++ b/gcc/testsuite/gcc.dg/vect/vect-all.c @@ -214,5 +214,4 @@ int main (void) return main1 (); } -/* xfail: local arrays can't be aligned on a boundary greater than STACK_BOUNDARY */ -/* { dg-final { scan-tree-dump-times "vectorized 10 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */ +/* { dg-final { scan-tree-dump-times "vectorized 10 loops" 1 "vect" } } */ diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 8369a6b..89ebe90 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -527,7 +527,12 @@ vect_can_force_dr_alignment_p (tree decl, unsigned int alignment) if (TREE_STATIC (decl)) return (alignment <= MAX_OFILE_ALIGNMENT); else - return (alignment <= STACK_BOUNDARY); + /* This is not 100% correct. The absolute correct stack alignment + is STACK_BOUNDARY. We're supposed to hope, but not assume, that + PREFERRED_STACK_BOUNDARY is honored by all translation units. + However, until someone implements forced stack alignment, SSE + isn't really usable without this. */ + return (alignment <= PREFERRED_STACK_BOUNDARY); } |