From 7a8554ceac51e81220e87493e7d8d0a1bd50fb38 Mon Sep 17 00:00:00 2001 From: Dorit Naishlos Date: Thu, 19 Aug 2004 07:16:59 +0000 Subject: [PATCH] tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. From-SVN: r86240 --- gcc/ChangeLog | 5 ++ gcc/testsuite/ChangeLog | 83 +++++++++++++++++++++++++++- gcc/testsuite/gcc.dg/vect/vect-1.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-2.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-25.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-3.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-31.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-32.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-34.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-36.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-4.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-5.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-6.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-7.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-all.c | 3 +- gcc/tree-vectorizer.c | 7 ++- 16 files changed, 106 insertions(+), 28 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d2bfbe9b75..69960b010ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-19 Dorit Naishlos + + * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace + STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. + 2004-08-19 Mark Mitchell * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c95d844cf59..007f3dc36a2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2004-08-19 Dorit Naishlos + + * 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 PR c++/17068 @@ -32,7 +49,71 @@ 2004-08-17 Dorit Naishlos * 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 diff --git a/gcc/testsuite/gcc.dg/vect/vect-1.c b/gcc/testsuite/gcc.dg/vect/vect-1.c index aa0b1f2f11c..fc6d7ef0e94 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 0a13ae1db73..aa862c111f6 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 05bd15fce23..36db45d084e 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 cd49a0d267d..1f3d0f84ac0 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 cb7f7cca42a..4742ca7510f 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 8e1cb18368c..bf5af33724e 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 7adbf689eaf..dc77060174f 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 b3c60d9ef13..ce89097bfdc 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 943d71f2047..f4e0671249f 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 bab9e23d491..3719dafa7ae 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 2671fd7e037..afe0d58782e 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 76e0106d7b4..ca4e9c2b423 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 a36d3084baa..bfdbcd6360f 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 8369a6bf6b0..89ebe9062e7 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); } -- 2.30.2