summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog83
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-1.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-2.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-25.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-3.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-31.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-32.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-34.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-36.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-4.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-5.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-6.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-7.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-all.c3
-rw-r--r--gcc/tree-vectorizer.c7
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 <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 c95d844cf59..007f3dc36a2 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 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);
}