tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
authorDorit Naishlos <dorit@il.ibm.com>
Sun, 9 Jan 2005 17:30:24 +0000 (17:30 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Sun, 9 Jan 2005 17:30:24 +0000 (17:30 +0000)
        * 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 <irar@il.ibm.com>
From-SVN: r93114

74 files changed:
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-1.c
gcc/testsuite/gcc.dg/vect/vect-10.c
gcc/testsuite/gcc.dg/vect/vect-11.c
gcc/testsuite/gcc.dg/vect/vect-12.c
gcc/testsuite/gcc.dg/vect/vect-13.c
gcc/testsuite/gcc.dg/vect/vect-14.c
gcc/testsuite/gcc.dg/vect/vect-15.c
gcc/testsuite/gcc.dg/vect/vect-16.c
gcc/testsuite/gcc.dg/vect/vect-17.c
gcc/testsuite/gcc.dg/vect/vect-18.c
gcc/testsuite/gcc.dg/vect/vect-19.c
gcc/testsuite/gcc.dg/vect/vect-2.c
gcc/testsuite/gcc.dg/vect/vect-20.c
gcc/testsuite/gcc.dg/vect/vect-21.c
gcc/testsuite/gcc.dg/vect/vect-22.c
gcc/testsuite/gcc.dg/vect/vect-23.c
gcc/testsuite/gcc.dg/vect/vect-24.c
gcc/testsuite/gcc.dg/vect/vect-25.c
gcc/testsuite/gcc.dg/vect/vect-26.c
gcc/testsuite/gcc.dg/vect/vect-27.c
gcc/testsuite/gcc.dg/vect/vect-28.c
gcc/testsuite/gcc.dg/vect/vect-29.c
gcc/testsuite/gcc.dg/vect/vect-3.c
gcc/testsuite/gcc.dg/vect/vect-31.c
gcc/testsuite/gcc.dg/vect/vect-32.c
gcc/testsuite/gcc.dg/vect/vect-33.c
gcc/testsuite/gcc.dg/vect/vect-34.c
gcc/testsuite/gcc.dg/vect/vect-35.c
gcc/testsuite/gcc.dg/vect/vect-36.c
gcc/testsuite/gcc.dg/vect/vect-37.c
gcc/testsuite/gcc.dg/vect/vect-4.c
gcc/testsuite/gcc.dg/vect/vect-40.c
gcc/testsuite/gcc.dg/vect/vect-41.c
gcc/testsuite/gcc.dg/vect/vect-42.c
gcc/testsuite/gcc.dg/vect/vect-43.c
gcc/testsuite/gcc.dg/vect/vect-44.c
gcc/testsuite/gcc.dg/vect/vect-46.c
gcc/testsuite/gcc.dg/vect/vect-47.c
gcc/testsuite/gcc.dg/vect/vect-48.c
gcc/testsuite/gcc.dg/vect/vect-5.c
gcc/testsuite/gcc.dg/vect/vect-50.c
gcc/testsuite/gcc.dg/vect/vect-52.c
gcc/testsuite/gcc.dg/vect/vect-54.c
gcc/testsuite/gcc.dg/vect/vect-56.c
gcc/testsuite/gcc.dg/vect/vect-58.c
gcc/testsuite/gcc.dg/vect/vect-6.c
gcc/testsuite/gcc.dg/vect/vect-60.c
gcc/testsuite/gcc.dg/vect/vect-62.c
gcc/testsuite/gcc.dg/vect/vect-64.c
gcc/testsuite/gcc.dg/vect/vect-65.c
gcc/testsuite/gcc.dg/vect/vect-66.c
gcc/testsuite/gcc.dg/vect/vect-67.c
gcc/testsuite/gcc.dg/vect/vect-68.c
gcc/testsuite/gcc.dg/vect/vect-69.c
gcc/testsuite/gcc.dg/vect/vect-7.c
gcc/testsuite/gcc.dg/vect/vect-70.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-71.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-72.c
gcc/testsuite/gcc.dg/vect/vect-73.c
gcc/testsuite/gcc.dg/vect/vect-74.c
gcc/testsuite/gcc.dg/vect/vect-75.c
gcc/testsuite/gcc.dg/vect/vect-76.c
gcc/testsuite/gcc.dg/vect/vect-77.c
gcc/testsuite/gcc.dg/vect/vect-78.c
gcc/testsuite/gcc.dg/vect/vect-80.c
gcc/testsuite/gcc.dg/vect/vect-86.c
gcc/testsuite/gcc.dg/vect/vect-87.c
gcc/testsuite/gcc.dg/vect/vect-88.c
gcc/testsuite/gcc.dg/vect/vect-89.c
gcc/testsuite/gcc.dg/vect/vect-all.c
gcc/testsuite/gcc.dg/vect/vect-none.c
gcc/tree-vectorizer.c

index 3d39d220579cdf5fdbd8dcb4805bced112ed3ebc..da2f470a9cd44d99820d0bf8786eaf1689c7da56 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
+
+       * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
+       (vect_analyze_data_refs_alignment): Add dump prints.
+
 2005-01-09  Ira Rosen  <irar@il.ibm.com>
 
        * tree-vectorizer.c (vect_analyze_offset_expr): Use 
index 7806fa6b133ac1f753c70c503699311ea63f5242..994fd674814a21974ac84bdc9b3bdf69c57d1baa 100644 (file)
@@ -1,3 +1,90 @@
+2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
+
+       * 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  <dorit@il.ibm.com>
+           Ira Rosen  <irar@il.ibm.com>
+
+       * gcc.dg/vect/vect-70.c: New test.
+       * gcc.dg/vect/vect-71.c: New test.
+
 2005-01-09  Manfred Hollstein  <mh@suse.com>
 
        * gcc.dg/pr18241-1.c: Fix dg-do parameter.
index 3715b777566ad777fa1fd6a4a8f83f33a649a2a6..3e9449e92e06c94c61144844fc0f52ad3014fee6 100644 (file)
@@ -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" } } */
index 286c76a7e730c9ec812cbe38ce49de49d388a2b3..ea27b1b76599b3558e7e4ab38c01ebbf2516ac43 100644 (file)
@@ -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];
index ce4bdfc8fee226ed636fd28018f14a6cbaf78123..1ad27604627098adc16b1235e9855c690904bc5a 100644 (file)
@@ -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];
index 76e610bbbf1fd848a57931504f71f6d6b18f18bd..359dc4f416c5877765ff996666a25e3221843198 100644 (file)
@@ -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];
index 0cec89bc2c625b4a236528b56bb8d4a8bd43d4e0..ad21072ce039f9976f932dec7b4290393cddef98 100644 (file)
@@ -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" } } */
index aceafa13e7914f9f3dbf54ad8d26ba1f50ace9b4..26a834b33ddc48bceef6c7a172395d4bf8d7e2f4 100644 (file)
@@ -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;
   }
index c7d20a82294a3d8bb57ea3135f253e9786d06982..aa521d36d818302465fddbdfd8cae92608c3b270 100644 (file)
@@ -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];
index d24b0aa83d7ae622f2d20961e5896b1441cd5c91..f6f134ed4d693b7f7de72b2a3d30940a48c95826 100644 (file)
@@ -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]);
index 210e31486bea29ede8d40466c0b23cc89102b01f..20345992fc3764237944836bd90393a16d6980fb 100644 (file)
@@ -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" } } */
index 2f9f201584654a2aa123a4277db00a0cd600b385..c2c1ad6bf93bb6321798c0880a59bad6794e5cea 100644 (file)
@@ -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" } } */
index 681e5866ab42ba188b4acbb72240244c1682b499..27f168e7a5602e9a904c688297ff378acc15a545 100644 (file)
@@ -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" } } */
index e4c08774ba1139bca188018aa4cb086b0005a8a7..4a21f03d65add1ab07552c0b349ae34d2b5b52df 100644 (file)
@@ -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" } } */
index 73df78d9386d8f017f5864c5df17753a2af95637..04b3cdf02db78d638936c904da39763f25957514 100644 (file)
@@ -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" } } */
index 20709aa5e3e5c2bedcdca9c0cc993cb0c7e194b3..a24749820fc0eedd931dfc8ca270fba97897bc8a 100644 (file)
@@ -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" } } */
 
index 51c2b028dea3388503c299c3accb3a5692496331..42e3b974d19a1f44313d20d634709c975b4b22d5 100644 (file)
@@ -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" } } */
 
index 85fd9cfe5789ff5f4ec449a9789b0e72d1c32374..97c44748285b398720969bf0f158b5bb57e97a5d 100644 (file)
@@ -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" } } */
 
index 72645650f9155731b16521e963dcd4e01d67576e..273bb039dc0314dd1b8b56b0dfc84ad1f9fa1258 100644 (file)
@@ -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" } } */
 
index bde05b15d5f6274ee5357cb5d2b303b3e5bad9bc..8edc5fc19b187216469b8d3689ec154eab9a9aee 100644 (file)
@@ -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" } } */
index 75e1db9c2dc33040be3be9e916a5e0c293534c0d..a34449bc30fa159e35469b3fada85d8400148bc6 100644 (file)
@@ -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" } } */
 
index 1c77877814a947e1fef36a5b92b91c25b6591d9c..4652fdf4777faa8e98a77630c47ea2a4bcb3286e 100644 (file)
@@ -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" } } */
index 5ce659842a75a1ead1350c515203579e98952899..42118d4ea9cfbcc7dea4f42aa6a3fd925e3a2dc4 100644 (file)
@@ -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" } } */
 
index 4d71bca7c7602dddd117b871814b027a8f7a6923..818e2c831ea510dc4779276394759b77d421862b 100644 (file)
@@ -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" } } */
 
index cb00ca8bc44fcb55b3156d3a44e56af21d3d4aa3..99c1a091442fec472af24eb9805aa55f0ebd7dd8 100644 (file)
@@ -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" } } */
 
 
 
index 77e524ecd8d1ced8356ea75de897905546900374..a27de677b2191d2d396be5ae4cbeda94bf952f69 100644 (file)
@@ -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" } } */
index 312e4053fb874b25f375cbd9b5a0631764c7c245..6d4745343ca0e4d5968a50d50fbc8abb9166b5d2 100644 (file)
@@ -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" } } */
index dc37eb5eee5adb4e0c86672c31491f0bb59f4ec1..94625a1f0004cd3759b26c10f946a7052828908a 100644 (file)
@@ -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" } } */
index 4ce8474d4a5d32592b9d0c07039db11f4ff6855d..aea0f2d4546bc1c3d27e92664afb17171ff4cb40 100644 (file)
@@ -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" } } */
index f0943940b9a4bd24078ede32477dda62a61d7f0a..4aa7693a5da008941ca798627d69579cca8d262b 100644 (file)
@@ -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" } } */
index f62ed8b0ec6a60164614cb0cdeec7d45135cd9e9..023af294c133eaa15ae66f0067779804f76218d9 100644 (file)
@@ -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" } } */
index 97cd0ec902bed627d39cc363ad69ce376f77f9f5..03937e598615fd08ca96ca56d58c2851a3d74bb1 100644 (file)
@@ -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" } } */
index d82903a5c5f8570903087400f5eba3b1aa9490d7..7d4503a9cd9876b4430395da89b3f9c8892069d1 100644 (file)
@@ -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" } } */
index fa2139b3716cbea9a8233dbc78834dff8dcc23f5..fe3dd7773c5dd07fb85d3302709007c0579fab26 100644 (file)
@@ -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" } } */
index f86039843fc307f794fcc499f54592700f8e3695..686618c67501fbcfe4940c0868a47e07b718be1b 100644 (file)
@@ -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" } } */
index acc5a57cc2e156dbe9d9fd1b23ffea0e43d715e7..a29f26718f9f820d9e910d6768db2df09f3115ee 100644 (file)
@@ -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" } } */
index 29e0a2c122139f2e585cd7a28ce88acd7a4e98c3..317d9ada90c18c72a56e13991247d89ed71b95b8 100644 (file)
@@ -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" } } */
index b14a3a3835f5faaf6faa699f2f7f2b1d0b4bd2c2..f23fbad0a902821b99312500945dfcf543998d84 100644 (file)
@@ -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 } } } */
index 647172eaf06ff824aa12330e6d199ee06e5dad47..8a59b583a60d07e4dc66f8f88bc8f0289657432e 100644 (file)
@@ -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" } } */
index a16ebaa03c3d0a72703853eb3eea3c065279a8af..73253ecb468b7a8fa404bdc6cbba796f00b2b2fd 100644 (file)
@@ -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" } } */
index 48c569648b0ddbf31a1e9b7cd5c94d94353e4584..106a57342e6fb196d36ea74ab93eef64ac2dc044 100644 (file)
@@ -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" } } */
index 38896053ac8c77327765efca4ff0ca2c0919c309..09cf0b9fa374753487be5495de2df03f7fdbe8fd 100644 (file)
@@ -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" } } */
index feac1c59baf4ec183b34bb8461bb9371df6c92ca..1245a77ad7f3c27a7bcdbe35b3fb943d593d1e26 100644 (file)
@@ -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 } } } */
index 745f36204b592198389a6f659f203e808158a401..24228cd799b85ba3719943c126bd97cd2fdac943 100644 (file)
@@ -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" } } */
index 86f2cdfe6c9d9e1671c86cd6a6a705259ce220a5..b169bb334520e391ac050c231db30780a6a69a28 100644 (file)
@@ -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 } } } */
index e3cb64101ddea7cf1c89616aa852c979ef90bc5e..90570167e06894e249b2c990a7ff2e6362d9eab3 100644 (file)
@@ -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" } } */
index feb8ab364e614f42eb1d51719488a327d0069d31..df814d9452d150d79bab920994aba9397bd02ec7 100644 (file)
@@ -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 } } } */
index 1ddcdda30c0d11583313573cb715faaf28d4cc89..514e8753aa1a650a8259bc9895d930b93a62de69 100644 (file)
@@ -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" } } */
 
 
index d3225e12591215773f4cc08c55dc2ea0c0bd1dce..26a3627cf44111ffd1366846d6c43a3f43c0e240 100644 (file)
@@ -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" } } */
index 4138eb881e86e641373e556a9d55f5ef582e6b5a..cdc28da544cd73e8fe3c77480cf63768f438bde0 100644 (file)
@@ -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" } } */
index febc52f1b6879aca1f996e8a0c2a87144884df5c..bf84ac8643431d215fb023085720305fb8d3c29d 100644 (file)
@@ -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" } } */
index 25ba878203ccf795ba79756c9d04babb934b8456..0c12d1b9ea57e2d09b0837df3eed711e7dc52834 100644 (file)
@@ -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" } } */
index 423723d6cbff3b96b08d0321edee3b0a7520b084..635297be64eb20beb33b783f9e0352724d4509c7 100644 (file)
@@ -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" } } */
index 648000084c0430c3c0e95e30826822ae7c19c7bc..7b54a95b01b34739552822472e2b510c2eee2f8e 100644 (file)
@@ -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" } } */
index 236acee48c9e3d60247967e3c1deb6f428dd0688..4dfaad31ee7f354b9a58ddcbe4e1aec7ab7c6f16 100644 (file)
@@ -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" } } */
index 6794a283b71d0060a43963d371ef839787522068..ed213741cd9a66110b39f7c73701204458d806cf 100644 (file)
@@ -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" } } */
index ae751cbd42cddb12a7dc1e20f36e1d120d824323..e92cea42ad018cf8f37fcced50f0b2a8ba204e44 100644 (file)
@@ -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 (file)
index 0000000..38daaf3
--- /dev/null
@@ -0,0 +1,67 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+#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 (file)
index 0000000..1086dbc
--- /dev/null
@@ -0,0 +1,39 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+#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 *-*-* } } } */
+
index 12a88099935b3f1dfdf4b37af9ff34ee4374a394..8d9266ef7dfaee79f33e80ab6c6df1cbdf20a368 100644 (file)
@@ -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" } } */
 
index b350bdf6cf65b390e84b2dcb5b62c2d64dc5f640..a0639fd669a89f30d23c57ddf6b61f1c90f0ec57 100644 (file)
@@ -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" } } */
index d93eed46ef0cbb327bf8c928ef9082db743eda7e..0c08f0aebc995153c3372ee0acff9d6961afff5d 100644 (file)
@@ -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" } } */
index 3ee2421bd6db41ce62c9ae59b26d27d1b2d8d82d..6ddbfdaf65e6de4253b468ee068f28a891fe92e3 100644 (file)
@@ -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" } } */
 
index 47c14d7db62f862263f98c642649d71dc2efd9aa..999fcb60312d7da7063339077e12a69ec008dff1 100644 (file)
@@ -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" } } */
 
index 1cbdf8f78d455983c6a3aec53b7d4c2d344be644..a8781d82003990691877c2419b84881012df2ea9 100644 (file)
@@ -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" } } */
index 5768b602f90874edb97c7e2cf5e8e651ea2b0dec..6d558218c37f035a945ac3e2eb82e92e988a04cc 100644 (file)
@@ -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" } } */
index 3b6869259fbda530da3b6a316743885929da11c5..112e892f531c7b3c1fde6ea7c4134958a899af87 100644 (file)
@@ -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" } } */
index e90349d74c7707c29b39e5c7ba8b98d1cc30bce6..10cbf0c6c21b64bc974d18067d0656bbf6e69261 100644 (file)
@@ -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" } } */
index afc8a9ed59456df03d8df64f1f731fa6194e381f..0b90c280358c25b6b882e176c937bbd22b459972 100644 (file)
@@ -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*-*-* } } } */
index d492eacc8979bd01b2493f415783f1fd0cfae3d2..3b98bda33c6524f62b507ccdf7df290fcf16d4e9 100644 (file)
@@ -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*-*-* } } } */
index 754e984bada898efbe1ce2b056c86bdd6c70ca3c..92752ec33021a827b5d34de00e13fca1a30b852e 100644 (file)
@@ -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" } } */
index aba1f7d1ebe7168f616c254da044a376b07c856e..343864cbdf1ba00bd8ac3318b29d38db7647fa28 100644 (file)
@@ -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" } } */
index a7c05086c50eb22a92317d05ab4bd4b0f2bcd7d5..f5303b93e18b2e676cc460f4e1e926d59ef31715 100644 (file)
@@ -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"} } */
index 62767edd3f9f3324ed37ef53e6f816f9a6ec3004..b8908013da59e68588300dc6dd9babd58a0867da 100644 (file)
@@ -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;