From: Dorit Naishlos Date: Sun, 9 Jan 2005 17:30:24 +0000 (+0000) Subject: tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5a3ed97adb8d216fa4a9e08dba1e36568c8df57f;p=gcc.git tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints. * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints. (vect_analyze_data_refs_alignment): Add dump prints. * gcc.dg/vect/pr18400.c: Add checks for alignment prints. * gcc.dg/vect/pr18425.c: Add checks for alignment prints. * gcc.dg/vect/pr18536.c: Add checks for alignment prints. * gcc.dg/vect/vect-1.c: Add checks for alignment prints. * gcc.dg/vect/vect-2.c: Add checks for alignment prints. * gcc.dg/vect/vect-3.c: Add checks for alignment prints. * gcc.dg/vect/vect-4.c: Add checks for alignment prints. * gcc.dg/vect/vect-5.c: Add checks for alignment prints. * gcc.dg/vect/vect-6.c: Add checks for alignment prints. * gcc.dg/vect/vect-7.c: Add checks for alignment prints. * gcc.dg/vect/vect-13.c: Add checks for alignment prints. * gcc.dg/vect/vect-17.c: Add checks for alignment prints. * gcc.dg/vect/vect-18.c: Add checks for alignment prints. * gcc.dg/vect/vect-19.c: Add checks for alignment prints. * gcc.dg/vect/vect-20.c: Add checks for alignment prints. * gcc.dg/vect/vect-21.c: Add checks for alignment prints. * gcc.dg/vect/vect-22.c: Add checks for alignment prints. * gcc.dg/vect/vect-23.c: Add checks for alignment prints. * gcc.dg/vect/vect-24.c: Add checks for alignment prints. * gcc.dg/vect/vect-25.c: Add checks for alignment prints. * gcc.dg/vect/vect-26.c: Add checks for alignment prints. * gcc.dg/vect/vect-27.c: Add checks for alignment prints. * gcc.dg/vect/vect-28.c: Add checks for alignment prints. * gcc.dg/vect/vect-29.c: Add checks for alignment prints. * gcc.dg/vect/vect-31.c: Add checks for alignment prints. * gcc.dg/vect/vect-32.c: Add checks for alignment prints. * gcc.dg/vect/vect-33.c: Add checks for alignment prints. * gcc.dg/vect/vect-34.c: Add checks for alignment prints. * gcc.dg/vect/vect-35.c: Add checks for alignment prints. * gcc.dg/vect/vect-36.c: Add checks for alignment prints. * gcc.dg/vect/vect-37.c: Add checks for alignment prints. * gcc.dg/vect/vect-40.c: Add checks for alignment prints. * gcc.dg/vect/vect-41.c: Add checks for alignment prints. * gcc.dg/vect/vect-42.c: Add checks for alignment prints. * gcc.dg/vect/vect-43.c: Add checks for alignment prints. * gcc.dg/vect/vect-44.c: Add checks for alignment prints. * gcc.dg/vect/vect-46.c: Add checks for alignment prints. * gcc.dg/vect/vect-47.c: Add checks for alignment prints. * gcc.dg/vect/vect-48.c: Add checks for alignment prints. * gcc.dg/vect/vect-50.c: Add checks for alignment prints. * gcc.dg/vect/vect-52.c: Add checks for alignment prints. * gcc.dg/vect/vect-53.c: Add checks for alignment prints. * gcc.dg/vect/vect-56.c: Add checks for alignment prints. * gcc.dg/vect/vect-58.c: Add checks for alignment prints. * gcc.dg/vect/vect-60.c: Add checks for alignment prints. * gcc.dg/vect/vect-62.c: Add checks for alignment prints. * gcc.dg/vect/vect-64.c: Add checks for alignment prints. * gcc.dg/vect/vect-65.c: Add checks for alignment prints. * gcc.dg/vect/vect-66.c: Add checks for alignment prints. * gcc.dg/vect/vect-67.c: Add checks for alignment prints. * gcc.dg/vect/vect-68.c: Add checks for alignment prints. * gcc.dg/vect/vect-69.c: Add checks for alignment prints. * gcc.dg/vect/vect-72.c: Add checks for alignment prints. * gcc.dg/vect/vect-73.c: Add checks for alignment prints. * gcc.dg/vect/vect-74.c: Add checks for alignment prints. * gcc.dg/vect/vect-75.c: Add checks for alignment prints. * gcc.dg/vect/vect-76.c: Add checks for alignment prints. * gcc.dg/vect/vect-77.c: Add checks for alignment prints. * gcc.dg/vect/vect-78.c: Add checks for alignment prints. * gcc.dg/vect/vect-80.c: Add checks for alignment prints. * gcc.dg/vect/vect-86.c: Add checks for alignment prints. * gcc.dg/vect/vect-87.c: Add checks for alignment prints. * gcc.dg/vect/vect-88.c: Add checks for alignment prints. * gcc.dg/vect/vect-89.c: Add checks for alignment prints. * gcc.dg/vect/vect-all.c: Add checks for alignment prints. * gcc.dg/vect/vect-1.c: Fix spelling. * gcc.dg/vect/vect-10.c: Fix spelling. * gcc.dg/vect/vect-11.c: Fix spelling. * gcc.dg/vect/vect-12.c: Fix spelling. * gcc.dg/vect/vect-14.c: Fix spelling. * gcc.dg/vect/vect-15.c: Fix spelling. * gcc.dg/vect/vect-16.c: Fix spelling. * gcc.dg/vect/vect-46.c: Remove obsolete comment. * gcc.dg/vect/vect-64.c: Fix comments. * gcc.dg/vect/vect-none.c: Remove vectorizable loop. Co-Authored-By: Ira Rosen From-SVN: r93114 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3d39d220579..da2f470a9cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-01-09 Dorit Naishlos + + * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints. + (vect_analyze_data_refs_alignment): Add dump prints. + 2005-01-09 Ira Rosen * tree-vectorizer.c (vect_analyze_offset_expr): Use diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7806fa6b133..994fd674814 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,90 @@ +2005-01-09 Dorit Naishlos + + * gcc.dg/vect/pr18400.c: Add checks for alignment prints. + * gcc.dg/vect/pr18425.c: Add checks for alignment prints. + * gcc.dg/vect/pr18536.c: Add checks for alignment prints. + * gcc.dg/vect/vect-1.c: Add checks for alignment prints. + * gcc.dg/vect/vect-2.c: Add checks for alignment prints. + * gcc.dg/vect/vect-3.c: Add checks for alignment prints. + * gcc.dg/vect/vect-4.c: Add checks for alignment prints. + * gcc.dg/vect/vect-5.c: Add checks for alignment prints. + * gcc.dg/vect/vect-6.c: Add checks for alignment prints. + * gcc.dg/vect/vect-7.c: Add checks for alignment prints. + * gcc.dg/vect/vect-13.c: Add checks for alignment prints. + * gcc.dg/vect/vect-17.c: Add checks for alignment prints. + * gcc.dg/vect/vect-18.c: Add checks for alignment prints. + * gcc.dg/vect/vect-19.c: Add checks for alignment prints. + * gcc.dg/vect/vect-20.c: Add checks for alignment prints. + * gcc.dg/vect/vect-21.c: Add checks for alignment prints. + * gcc.dg/vect/vect-22.c: Add checks for alignment prints. + * gcc.dg/vect/vect-23.c: Add checks for alignment prints. + * gcc.dg/vect/vect-24.c: Add checks for alignment prints. + * gcc.dg/vect/vect-25.c: Add checks for alignment prints. + * gcc.dg/vect/vect-26.c: Add checks for alignment prints. + * gcc.dg/vect/vect-27.c: Add checks for alignment prints. + * gcc.dg/vect/vect-28.c: Add checks for alignment prints. + * gcc.dg/vect/vect-29.c: Add checks for alignment prints. + * gcc.dg/vect/vect-31.c: Add checks for alignment prints. + * gcc.dg/vect/vect-32.c: Add checks for alignment prints. + * gcc.dg/vect/vect-33.c: Add checks for alignment prints. + * gcc.dg/vect/vect-34.c: Add checks for alignment prints. + * gcc.dg/vect/vect-35.c: Add checks for alignment prints. + * gcc.dg/vect/vect-36.c: Add checks for alignment prints. + * gcc.dg/vect/vect-37.c: Add checks for alignment prints. + * gcc.dg/vect/vect-40.c: Add checks for alignment prints. + * gcc.dg/vect/vect-41.c: Add checks for alignment prints. + * gcc.dg/vect/vect-42.c: Add checks for alignment prints. + * gcc.dg/vect/vect-43.c: Add checks for alignment prints. + * gcc.dg/vect/vect-44.c: Add checks for alignment prints. + * gcc.dg/vect/vect-46.c: Add checks for alignment prints. + * gcc.dg/vect/vect-47.c: Add checks for alignment prints. + * gcc.dg/vect/vect-48.c: Add checks for alignment prints. + * gcc.dg/vect/vect-50.c: Add checks for alignment prints. + * gcc.dg/vect/vect-52.c: Add checks for alignment prints. + * gcc.dg/vect/vect-53.c: Add checks for alignment prints. + * gcc.dg/vect/vect-56.c: Add checks for alignment prints. + * gcc.dg/vect/vect-58.c: Add checks for alignment prints. + * gcc.dg/vect/vect-60.c: Add checks for alignment prints. + * gcc.dg/vect/vect-62.c: Add checks for alignment prints. + * gcc.dg/vect/vect-64.c: Add checks for alignment prints. + * gcc.dg/vect/vect-65.c: Add checks for alignment prints. + * gcc.dg/vect/vect-66.c: Add checks for alignment prints. + * gcc.dg/vect/vect-67.c: Add checks for alignment prints. + * gcc.dg/vect/vect-68.c: Add checks for alignment prints. + * gcc.dg/vect/vect-69.c: Add checks for alignment prints. + * gcc.dg/vect/vect-70.c: Add checks for alignment prints. + * gcc.dg/vect/vect-71.c: Add checks for alignment prints. + * gcc.dg/vect/vect-72.c: Add checks for alignment prints. + * gcc.dg/vect/vect-73.c: Add checks for alignment prints. + * gcc.dg/vect/vect-74.c: Add checks for alignment prints. + * gcc.dg/vect/vect-75.c: Add checks for alignment prints. + * gcc.dg/vect/vect-76.c: Add checks for alignment prints. + * gcc.dg/vect/vect-77.c: Add checks for alignment prints. + * gcc.dg/vect/vect-78.c: Add checks for alignment prints. + * gcc.dg/vect/vect-80.c: Add checks for alignment prints. + * gcc.dg/vect/vect-86.c: Add checks for alignment prints. + * gcc.dg/vect/vect-87.c: Add checks for alignment prints. + * gcc.dg/vect/vect-88.c: Add checks for alignment prints. + * gcc.dg/vect/vect-89.c: Add checks for alignment prints. + * gcc.dg/vect/vect-all.c: Add checks for alignment prints. + + * gcc.dg/vect/vect-1.c: Fix spelling. + * gcc.dg/vect/vect-10.c: Fix spelling. + * gcc.dg/vect/vect-11.c: Fix spelling. + * gcc.dg/vect/vect-12.c: Fix spelling. + * gcc.dg/vect/vect-14.c: Fix spelling. + * gcc.dg/vect/vect-15.c: Fix spelling. + * gcc.dg/vect/vect-16.c: Fix spelling. + * gcc.dg/vect/vect-46.c: Remove obsolete comment. + * gcc.dg/vect/vect-64.c: Fix comments. + * gcc.dg/vect/vect-none.c: Remove vectorizable loop. + +2005-01-09 Dorit Naishlos + Ira Rosen + + * gcc.dg/vect/vect-70.c: New test. + * gcc.dg/vect/vect-71.c: New test. + 2005-01-09 Manfred Hollstein * gcc.dg/pr18241-1.c: Fix dg-do parameter. diff --git a/gcc/testsuite/gcc.dg/vect/vect-1.c b/gcc/testsuite/gcc.dg/vect/vect-1.c index 3715b777566..3e9449e92e0 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-1.c +++ b/gcc/testsuite/gcc.dg/vect/vect-1.c @@ -29,7 +29,7 @@ foo (int n) char image[N][N]; char block[N][N]; - /* Not vetorizable yet (cross-iteration cycle). */ + /* Not vectorizable yet (cross-iteration cycle). */ diff = 0; for (i = 0; i < N; i++) { diff += (cb[i] - cc[i]); @@ -37,7 +37,7 @@ foo (int n) ibar (&diff); - /* Not vetorizable yet (outer-loop: not attempted. + /* Not vectorizable yet (outer-loop: not attempted. inner-loop: cross iteration cycle; multi-dimensional arrays). */ diff = 0; for (i = 0; i < N; i++) { @@ -62,7 +62,7 @@ foo (int n) fbar (a); - /* Not vetorizable yet (access pattern). */ + /* Not vectorizable yet (access pattern). */ for (i = 0; i < N/2; i++){ a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i]; d[i] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i]; @@ -99,3 +99,4 @@ foo (int n) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-10.c b/gcc/testsuite/gcc.dg/vect/vect-10.c index 286c76a7e73..ea27b1b7659 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-10.c +++ b/gcc/testsuite/gcc.dg/vect/vect-10.c @@ -13,7 +13,7 @@ int foo () short c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; - /* Not vetorizable yet (strided access pattern). */ + /* Not vectorizable yet (strided access pattern). */ for (i = 0; i < N/2; i++) { a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i]; diff --git a/gcc/testsuite/gcc.dg/vect/vect-11.c b/gcc/testsuite/gcc.dg/vect/vect-11.c index ce4bdfc8fee..1ad27604627 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-11.c +++ b/gcc/testsuite/gcc.dg/vect/vect-11.c @@ -12,7 +12,7 @@ int main1 () int ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; - /* Not vetorizable yet (integer mult). */ + /* Not vectorizable yet (integer mult). */ for (i = 0; i < N; i++) { ia[i] = ib[i] * ic[i]; diff --git a/gcc/testsuite/gcc.dg/vect/vect-12.c b/gcc/testsuite/gcc.dg/vect/vect-12.c index 76e610bbbf1..359dc4f416c 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-12.c +++ b/gcc/testsuite/gcc.dg/vect/vect-12.c @@ -15,7 +15,7 @@ int main1 () short sc[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; - /* Not vetorizable yet (multiple types with different nunits in vector). */ + /* Not vectorizable yet (multiple types with different nunits in vector). */ for (i = 0; i < N; i++) { ia[i] = ib[i] + ic[i]; diff --git a/gcc/testsuite/gcc.dg/vect/vect-13.c b/gcc/testsuite/gcc.dg/vect/vect-13.c index 0cec89bc2c6..ad21072ce03 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-13.c +++ b/gcc/testsuite/gcc.dg/vect/vect-13.c @@ -37,3 +37,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_max } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-14.c b/gcc/testsuite/gcc.dg/vect/vect-14.c index aceafa13e79..26a834b33dd 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-14.c +++ b/gcc/testsuite/gcc.dg/vect/vect-14.c @@ -11,7 +11,7 @@ int main1 () int ia[N]; - /* Not vetorizable yet (induction). */ + /* Not vectorizable yet (induction). */ for ( i = 0; i < N; i++) { ia[i] = i; } diff --git a/gcc/testsuite/gcc.dg/vect/vect-15.c b/gcc/testsuite/gcc.dg/vect/vect-15.c index c7d20a82294..aa521d36d81 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-15.c +++ b/gcc/testsuite/gcc.dg/vect/vect-15.c @@ -11,7 +11,7 @@ int main1 () int a[N]; int b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; - /* Not vetorizable yet (reverse access and forward access). */ + /* Not vectorizable yet (reverse access and forward access). */ for (i = N; i > 0; i--) { a[N-i] = b[i-1]; diff --git a/gcc/testsuite/gcc.dg/vect/vect-16.c b/gcc/testsuite/gcc.dg/vect/vect-16.c index d24b0aa83d7..f6f134ed4d6 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-16.c +++ b/gcc/testsuite/gcc.dg/vect/vect-16.c @@ -13,7 +13,7 @@ int main1 () float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; float diff; - /* Not vetorizable yet (reduction). */ + /* Not vectorizable yet (reduction). */ diff = 0; for (i = 0; i < N; i++) { diff += (b[i] - c[i]); diff --git a/gcc/testsuite/gcc.dg/vect/vect-17.c b/gcc/testsuite/gcc.dg/vect/vect-17.c index 210e31486be..20345992fc3 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-17.c +++ b/gcc/testsuite/gcc.dg/vect/vect-17.c @@ -125,3 +125,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-18.c b/gcc/testsuite/gcc.dg/vect/vect-18.c index 2f9f2015846..c2c1ad6bf93 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-18.c +++ b/gcc/testsuite/gcc.dg/vect/vect-18.c @@ -124,3 +124,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-19.c b/gcc/testsuite/gcc.dg/vect/vect-19.c index 681e5866ab4..27f168e7a56 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-19.c +++ b/gcc/testsuite/gcc.dg/vect/vect-19.c @@ -124,3 +124,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-2.c b/gcc/testsuite/gcc.dg/vect/vect-2.c index e4c08774ba1..4a21f03d65a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-2.c +++ b/gcc/testsuite/gcc.dg/vect/vect-2.c @@ -34,3 +34,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-20.c b/gcc/testsuite/gcc.dg/vect/vect-20.c index 73df78d9386..04b3cdf02db 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-20.c +++ b/gcc/testsuite/gcc.dg/vect/vect-20.c @@ -96,3 +96,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-21.c b/gcc/testsuite/gcc.dg/vect/vect-21.c index 20709aa5e3e..a24749820fc 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-21.c +++ b/gcc/testsuite/gcc.dg/vect/vect-21.c @@ -124,4 +124,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-22.c b/gcc/testsuite/gcc.dg/vect/vect-22.c index 51c2b028dea..42e3b974d19 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-22.c +++ b/gcc/testsuite/gcc.dg/vect/vect-22.c @@ -95,4 +95,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-23.c b/gcc/testsuite/gcc.dg/vect/vect-23.c index 85fd9cfe578..97c44748285 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-23.c +++ b/gcc/testsuite/gcc.dg/vect/vect-23.c @@ -124,4 +124,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-24.c b/gcc/testsuite/gcc.dg/vect/vect-24.c index 72645650f91..273bb039dc0 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-24.c +++ b/gcc/testsuite/gcc.dg/vect/vect-24.c @@ -124,4 +124,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-25.c b/gcc/testsuite/gcc.dg/vect/vect-25.c index bde05b15d5f..8edc5fc19b1 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-25.c +++ b/gcc/testsuite/gcc.dg/vect/vect-25.c @@ -50,3 +50,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-26.c b/gcc/testsuite/gcc.dg/vect/vect-26.c index 75e1db9c2dc..a34449bc30f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-26.c +++ b/gcc/testsuite/gcc.dg/vect/vect-26.c @@ -35,4 +35,6 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-27.c b/gcc/testsuite/gcc.dg/vect/vect-27.c index 1c77877814a..4652fdf4777 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-27.c +++ b/gcc/testsuite/gcc.dg/vect/vect-27.c @@ -41,4 +41,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ - +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-28.c b/gcc/testsuite/gcc.dg/vect/vect-28.c index 5ce659842a7..42118d4ea9c 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-28.c +++ b/gcc/testsuite/gcc.dg/vect/vect-28.c @@ -38,4 +38,6 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-29.c b/gcc/testsuite/gcc.dg/vect/vect-29.c index 4d71bca7c76..818e2c831ea 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-29.c +++ b/gcc/testsuite/gcc.dg/vect/vect-29.c @@ -44,4 +44,6 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-3.c b/gcc/testsuite/gcc.dg/vect/vect-3.c index cb00ca8bc44..99c1a091442 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-3.c +++ b/gcc/testsuite/gcc.dg/vect/vect-3.c @@ -46,6 +46,7 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-31.c b/gcc/testsuite/gcc.dg/vect/vect-31.c index 77e524ecd8d..a27de677b21 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-31.c +++ b/gcc/testsuite/gcc.dg/vect/vect-31.c @@ -86,3 +86,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-32.c b/gcc/testsuite/gcc.dg/vect/vect-32.c index 312e4053fb8..6d4745343ca 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-32.c +++ b/gcc/testsuite/gcc.dg/vect/vect-32.c @@ -35,3 +35,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-33.c b/gcc/testsuite/gcc.dg/vect/vect-33.c index dc37eb5eee5..94625a1f000 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-33.c +++ b/gcc/testsuite/gcc.dg/vect/vect-33.c @@ -37,3 +37,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-34.c b/gcc/testsuite/gcc.dg/vect/vect-34.c index 4ce8474d4a5..aea0f2d4546 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-34.c +++ b/gcc/testsuite/gcc.dg/vect/vect-34.c @@ -36,3 +36,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-35.c b/gcc/testsuite/gcc.dg/vect/vect-35.c index f0943940b9a..4aa7693a5da 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-35.c +++ b/gcc/testsuite/gcc.dg/vect/vect-35.c @@ -45,3 +45,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-36.c b/gcc/testsuite/gcc.dg/vect/vect-36.c index f62ed8b0ec6..023af294c13 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-36.c +++ b/gcc/testsuite/gcc.dg/vect/vect-36.c @@ -41,3 +41,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-37.c b/gcc/testsuite/gcc.dg/vect/vect-37.c index 97cd0ec902b..03937e59861 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-37.c +++ b/gcc/testsuite/gcc.dg/vect/vect-37.c @@ -56,3 +56,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-4.c b/gcc/testsuite/gcc.dg/vect/vect-4.c index d82903a5c5f..7d4503a9cd9 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-4.c +++ b/gcc/testsuite/gcc.dg/vect/vect-4.c @@ -36,3 +36,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-40.c b/gcc/testsuite/gcc.dg/vect/vect-40.c index fa2139b3716..fe3dd7773c5 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-40.c +++ b/gcc/testsuite/gcc.dg/vect/vect-40.c @@ -50,3 +50,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-41.c b/gcc/testsuite/gcc.dg/vect/vect-41.c index f86039843fc..686618c6750 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-41.c +++ b/gcc/testsuite/gcc.dg/vect/vect-41.c @@ -51,3 +51,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-42.c b/gcc/testsuite/gcc.dg/vect/vect-42.c index acc5a57cc2e..a29f26718f9 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-42.c +++ b/gcc/testsuite/gcc.dg/vect/vect-42.c @@ -53,3 +53,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-43.c b/gcc/testsuite/gcc.dg/vect/vect-43.c index 29e0a2c1221..317d9ada90c 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-43.c +++ b/gcc/testsuite/gcc.dg/vect/vect-43.c @@ -54,3 +54,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-44.c b/gcc/testsuite/gcc.dg/vect/vect-44.c index b14a3a3835f..f23fbad0a90 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-44.c +++ b/gcc/testsuite/gcc.dg/vect/vect-44.c @@ -55,3 +55,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-46.c b/gcc/testsuite/gcc.dg/vect/vect-46.c index 647172eaf06..8a59b583a60 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-46.c +++ b/gcc/testsuite/gcc.dg/vect/vect-46.c @@ -50,6 +50,5 @@ int main (void) return 0; } -/* This fails to vectorize for 64-bit powerpc but there's no way to - specify that in an xfail list. */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-47.c b/gcc/testsuite/gcc.dg/vect/vect-47.c index a16ebaa03c3..73253ecb468 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-47.c +++ b/gcc/testsuite/gcc.dg/vect/vect-47.c @@ -52,3 +52,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-48.c b/gcc/testsuite/gcc.dg/vect/vect-48.c index 48c569648b0..106a57342e6 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-48.c +++ b/gcc/testsuite/gcc.dg/vect/vect-48.c @@ -53,3 +53,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-5.c b/gcc/testsuite/gcc.dg/vect/vect-5.c index 38896053ac8..09cf0b9fa37 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-5.c +++ b/gcc/testsuite/gcc.dg/vect/vect-5.c @@ -52,3 +52,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-50.c b/gcc/testsuite/gcc.dg/vect/vect-50.c index feac1c59baf..1245a77ad7f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-50.c +++ b/gcc/testsuite/gcc.dg/vect/vect-50.c @@ -50,3 +50,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-52.c b/gcc/testsuite/gcc.dg/vect/vect-52.c index 745f36204b5..24228cd799b 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-52.c +++ b/gcc/testsuite/gcc.dg/vect/vect-52.c @@ -52,3 +52,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-54.c b/gcc/testsuite/gcc.dg/vect/vect-54.c index 86f2cdfe6c9..b169bb33452 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-54.c +++ b/gcc/testsuite/gcc.dg/vect/vect-54.c @@ -51,3 +51,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-56.c b/gcc/testsuite/gcc.dg/vect/vect-56.c index e3cb64101dd..90570167e06 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-56.c +++ b/gcc/testsuite/gcc.dg/vect/vect-56.c @@ -51,3 +51,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-58.c b/gcc/testsuite/gcc.dg/vect/vect-58.c index feb8ab364e6..df814d9452d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-58.c +++ b/gcc/testsuite/gcc.dg/vect/vect-58.c @@ -52,3 +52,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-6.c b/gcc/testsuite/gcc.dg/vect/vect-6.c index 1ddcdda30c0..514e8753aa1 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-6.c +++ b/gcc/testsuite/gcc.dg/vect/vect-6.c @@ -53,5 +53,6 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-60.c b/gcc/testsuite/gcc.dg/vect/vect-60.c index d3225e12591..26a3627cf44 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-60.c +++ b/gcc/testsuite/gcc.dg/vect/vect-60.c @@ -52,3 +52,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-62.c b/gcc/testsuite/gcc.dg/vect/vect-62.c index 4138eb881e8..cdc28da544c 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-62.c +++ b/gcc/testsuite/gcc.dg/vect/vect-62.c @@ -63,3 +63,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-64.c b/gcc/testsuite/gcc.dg/vect/vect-64.c index febc52f1b68..bf84ac86434 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-64.c +++ b/gcc/testsuite/gcc.dg/vect/vect-64.c @@ -13,7 +13,7 @@ int main1 () int ic[N][N][3][13]; int id[N][N][N]; - /* Multidimensional array. Not aligned: not vectorizable. */ + /* Multidimensional array. Not aligned: vectorizable. */ for (i = 0; i < N; i++) { for (j = 0; j < N; j++) @@ -31,7 +31,7 @@ int main1 () } } - /* Multidimensional array. Not aligned: not vectorizable. */ + /* Multidimensional array. Not aligned: vectorizable. */ for (i = 0; i < N; i++) { for (j = 0; j < N; j++) @@ -81,3 +81,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-65.c b/gcc/testsuite/gcc.dg/vect/vect-65.c index 25ba878203c..0c12d1b9ea5 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-65.c +++ b/gcc/testsuite/gcc.dg/vect/vect-65.c @@ -79,3 +79,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-66.c b/gcc/testsuite/gcc.dg/vect/vect-66.c index 423723d6cbf..635297be64e 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-66.c +++ b/gcc/testsuite/gcc.dg/vect/vect-66.c @@ -77,3 +77,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-67.c b/gcc/testsuite/gcc.dg/vect/vect-67.c index 648000084c0..7b54a95b01b 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-67.c +++ b/gcc/testsuite/gcc.dg/vect/vect-67.c @@ -42,3 +42,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-68.c b/gcc/testsuite/gcc.dg/vect/vect-68.c index 236acee48c9..4dfaad31ee7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-68.c +++ b/gcc/testsuite/gcc.dg/vect/vect-68.c @@ -85,3 +85,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-69.c b/gcc/testsuite/gcc.dg/vect/vect-69.c index 6794a283b71..ed213741cd9 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-69.c +++ b/gcc/testsuite/gcc.dg/vect/vect-69.c @@ -112,3 +112,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-7.c b/gcc/testsuite/gcc.dg/vect/vect-7.c index ae751cbd42c..e92cea42ad0 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-7.c +++ b/gcc/testsuite/gcc.dg/vect/vect-7.c @@ -47,3 +47,4 @@ int main (void) /* Fails for targets that don't vectorize PLUS. */ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail alpha*-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-70.c b/gcc/testsuite/gcc.dg/vect/vect-70.c new file mode 100644 index 00000000000..38daaf371e0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-70.c @@ -0,0 +1,67 @@ +/* { dg-require-effective-target vect_int } */ + +#include +#include "tree-vect.h" + +#define N 16 + +struct s{ + int m; + int n[N][N][N]; +}; + +struct test1{ + struct s a; /* array a.n is unaligned */ + int b; + int c; + struct s e[N]; /* array e.n is aligned */ +}; + +int main1 () +{ + int i,j; + struct test1 tmp1; + + for (i = 0; i < N; i++) + for (j = 3; j < N-3; j++) + { + tmp1.e[i].n[1][2][j] = 8; + } + + /* check results: */ + for (i = 0; i < N; i++) + for (j = 3; j < N-3; j++) + { + if (tmp1.e[i].n[1][2][j] != 8) + abort (); + } + + /* not consecutive */ + for (i = 0; i < N; i++) + for (j = 3; j < N-3; j++) + { + tmp1.e[j].n[1][2][j] = 8; + } + + /* check results: */ + for (i = 0; i < N; i++) + for (j = 3; j < N-3; j++) + { + if (tmp1.e[j].n[1][2][j] != 8) + abort (); + } + + return 0; +} + +int main (void) +{ + check_vect (); + + return main1 (); +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ + diff --git a/gcc/testsuite/gcc.dg/vect/vect-71.c b/gcc/testsuite/gcc.dg/vect/vect-71.c new file mode 100644 index 00000000000..1086dbc49e7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-71.c @@ -0,0 +1,39 @@ +/* { dg-require-effective-target vect_int } */ + +#include +#include "tree-vect.h" + +#define N 16 + +/* unaligned load. */ + +int main1 () +{ + int i; + unsigned ia[N]; + unsigned ib[N+1] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2}; + + for (i = 2; i < N+1; i++) + { + ia[ib[i]] = 0; + } + + /* check results: */ + for (i = 2; i < N+1; i++) + { + if (ia[ib[i]] != 0) + abort(); + } + + return 0; +} + +int main (void) +{ + check_vect (); + + return main1 (); +} + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */ + diff --git a/gcc/testsuite/gcc.dg/vect/vect-72.c b/gcc/testsuite/gcc.dg/vect/vect-72.c index 12a88099935..8d9266ef7df 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-72.c +++ b/gcc/testsuite/gcc.dg/vect/vect-72.c @@ -41,4 +41,6 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-73.c b/gcc/testsuite/gcc.dg/vect/vect-73.c index b350bdf6cf6..a0639fd669a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-73.c +++ b/gcc/testsuite/gcc.dg/vect/vect-73.c @@ -37,3 +37,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-74.c b/gcc/testsuite/gcc.dg/vect/vect-74.c index d93eed46ef0..0c08f0aebc9 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-74.c +++ b/gcc/testsuite/gcc.dg/vect/vect-74.c @@ -41,3 +41,4 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-75.c b/gcc/testsuite/gcc.dg/vect/vect-75.c index 3ee2421bd6d..6ddbfdaf65e 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-75.c +++ b/gcc/testsuite/gcc.dg/vect/vect-75.c @@ -41,4 +41,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-76.c b/gcc/testsuite/gcc.dg/vect/vect-76.c index 47c14d7db62..999fcb60312 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-76.c +++ b/gcc/testsuite/gcc.dg/vect/vect-76.c @@ -68,4 +68,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-77.c b/gcc/testsuite/gcc.dg/vect/vect-77.c index 1cbdf8f78d4..a8781d82003 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-77.c +++ b/gcc/testsuite/gcc.dg/vect/vect-77.c @@ -40,3 +40,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail lp64_or_vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail lp64_or_vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-78.c b/gcc/testsuite/gcc.dg/vect/vect-78.c index 5768b602f90..6d558218c37 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-78.c +++ b/gcc/testsuite/gcc.dg/vect/vect-78.c @@ -41,3 +41,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail lp64_or_vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail lp64_or_vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-80.c b/gcc/testsuite/gcc.dg/vect/vect-80.c index 3b6869259fb..112e892f531 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-80.c +++ b/gcc/testsuite/gcc.dg/vect/vect-80.c @@ -43,3 +43,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-86.c b/gcc/testsuite/gcc.dg/vect/vect-86.c index e90349d74c7..10cbf0c6c21 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-86.c +++ b/gcc/testsuite/gcc.dg/vect/vect-86.c @@ -47,3 +47,5 @@ int main (void) /* Fails for targets that don't vectorize PLUS. */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-87.c b/gcc/testsuite/gcc.dg/vect/vect-87.c index afc8a9ed594..0b90c280358 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-87.c +++ b/gcc/testsuite/gcc.dg/vect/vect-87.c @@ -51,3 +51,5 @@ int main (void) /* Fails for targets that don't vectorize PLUS. */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail alpha*-*-* } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-88.c b/gcc/testsuite/gcc.dg/vect/vect-88.c index d492eacc897..3b98bda33c6 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-88.c +++ b/gcc/testsuite/gcc.dg/vect/vect-88.c @@ -51,3 +51,5 @@ int main (void) /* Fails for targets that don't vectorize PLUS. */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail alpha*-*-* } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-89.c b/gcc/testsuite/gcc.dg/vect/vect-89.c index 754e984bada..92752ec3302 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-89.c +++ b/gcc/testsuite/gcc.dg/vect/vect-89.c @@ -44,3 +44,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-all.c b/gcc/testsuite/gcc.dg/vect/vect-all.c index aba1f7d1ebe..343864cbdf1 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-all.c +++ b/gcc/testsuite/gcc.dg/vect/vect-all.c @@ -213,3 +213,5 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 10 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-none.c b/gcc/testsuite/gcc.dg/vect/vect-none.c index a7c05086c50..f5303b93e18 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-none.c +++ b/gcc/testsuite/gcc.dg/vect/vect-none.c @@ -89,15 +89,7 @@ foo (int n) char block[N][N]; - /* Test 1 - unknown loop bound. */ - for (i = 0; i < n; i++) - { - a[i] = b[i]; - } - fbar (a); - - - /* Test 2 - type cast. */ + /* Test 1 - type cast. */ for (i = 0; i < N; i++) { ia[i] = (int) sb[i]; @@ -105,7 +97,7 @@ foo (int n) fbar (a); - /* Test 3 - strided access pattern. */ + /* Test 2 - strided access pattern. */ for (i = 0; i < N/2; i++) { a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i]; @@ -114,7 +106,7 @@ foo (int n) fbar (a); - /* Test 4 - no target support for integer mult. */ + /* Test 3 - no target support for integer mult. */ for (i = 0; i < N; i++) { ia[i] = ib[i] * ic[i]; @@ -122,7 +114,7 @@ foo (int n) ibar (ia); - /* Test 5 - two types with different nunits in vector. */ + /* Test 4 - two types with different nunits in vector. */ for (i = 0; i < N; i++) { ia[i] = ib[i] + ic[i]; @@ -132,7 +124,7 @@ foo (int n) sbar (sa); - /* Test 6 - too conservative dependence test. */ + /* Test 5 - too conservative dependence test. */ for (i = 0; i < N; i++){ a[i] = b[i] + c[i]; a[i+1] = b[i] + c[i]; @@ -140,14 +132,14 @@ foo (int n) fbar (a); - /* Test 7 - condition in loop. */ + /* Test 6 - condition in loop. */ for (i = 0; i < N; i++){ a[i] = (b[i] > 0 ? b[i] : 0); } fbar (a); - /* Test 8 - cross-iteration cycle. */ + /* Test 7 - cross-iteration cycle. */ diff = 0; for (i = 0; i < N; i++) { diff += (cb[i] - cc[i]); @@ -155,7 +147,7 @@ foo (int n) ibar (&diff); - /* Test 9 - outer-loop not attempted; inner-loop has cross + /* Test 8 - outer-loop not attempted; inner-loop has cross iteration cycle and multi-dimensional arrays. */ diff = 0; for (i = 0; i < N; i++) { @@ -166,14 +158,14 @@ foo (int n) ibar (&diff); - /* Test 10 - induction. */ + /* Test 9 - induction. */ for ( i = 0; i < N; i++) { a[i] = i; } fbar (a); - /* Test 11 - reverse access and forward access. */ + /* Test 10 - reverse access and forward access. */ for (i = N; i > 0; i--) { a[N-i] = b[i-1]; @@ -189,5 +181,4 @@ foo (int n) } /* { dg-final { scan-tree-dump-times "vectorized " 3 "vect"} } */ -/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect"} } */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 3 "vect"} } */ diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 62767edd3f9..b8908013da5 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -4415,7 +4415,11 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo) { struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i); if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo)) - DR_MISALIGNMENT (dr) = 0; + { + DR_MISALIGNMENT (dr) = 0; + if (vect_debug_details (loop) || vect_debug_stats (loop)) + fprintf (dump_file, "Alignment of access forced using peeling."); + } else DR_MISALIGNMENT (dr) = -1; } @@ -4423,7 +4427,11 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo) { struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i); if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo)) - DR_MISALIGNMENT (dr) = 0; + { + DR_MISALIGNMENT (dr) = 0; + if (vect_debug_details (loop) || vect_debug_stats (loop)) + fprintf (dump_file, "Alignment of access forced using peeling."); + } else DR_MISALIGNMENT (dr) = -1; } @@ -4481,6 +4489,9 @@ vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo) fprintf (dump_file, "not vectorized: unsupported unaligned load."); return false; } + if (supportable_dr_alignment != dr_aligned + && (vect_debug_details (loop) || vect_debug_stats (loop))) + fprintf (dump_file, "Vectorizing an unaligned access."); } for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++) { @@ -4492,6 +4503,9 @@ vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo) fprintf (dump_file, "not vectorized: unsupported unaligned store."); return false; } + if (supportable_dr_alignment != dr_aligned + && (vect_debug_details (loop) || vect_debug_stats (loop))) + fprintf (dump_file, "Vectorizing an unaligned access."); } return true;