pr20122.c: Fix test (now vectorized, with versioning for aliasing).
authorDorit Nuzman <dorit@il.ibm.com>
Sun, 19 Aug 2007 09:32:22 +0000 (09:32 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Sun, 19 Aug 2007 09:32:22 +0000 (09:32 +0000)
        * testsuite/gcc.dg/vect/pr20122.c: Fix test (now vectorized, with
        versioning for aliasing).
        * testsuite/gcc.dg/vect/vect-35.c: Likewise.

        * testsuite/gcc.dg/vect/vect-iv-6.c: Fix test for vect_no_align targets.
        * testsuite/gcc.dg/vect/vect-multitypes-11.c: Likewise.

From-SVN: r127621

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/pr20122.c
gcc/testsuite/gcc.dg/vect/vect-35.c
gcc/testsuite/gcc.dg/vect/vect-iv-6.c
gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c

index 3e5ff061f34642de56455a6d3e5be73070116652..61f0352224d02a310fbc4d62a0f5c83af3316567 100644 (file)
@@ -1,3 +1,12 @@
+2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * testsuite/gcc.dg/vect/pr20122.c: Fix test (now vectorized, with
+       versioning for aliasing).
+       * testsuite/gcc.dg/vect/vect-35.c: Likewise.
+
+       * testsuite/gcc.dg/vect/vect-iv-6.c: Fix test for vect_no_align targets.
+       * testsuite/gcc.dg/vect/vect-multitypes-11.c: Likewise.
+
 2007-08-18  Tom Tromey  <tromey@redhat.com>
 
        PR preprocessor/32974:
index 4c09eec35461cbb797b4b76f7672ee9e5961dfb3..05948c7fc8127bd85196556918c6941005ac55c7 100644 (file)
@@ -7,7 +7,8 @@ short Kernshort[24] __attribute__ ((__aligned__(16)));
 static void VecBug(short Kernel[8][24]) __attribute__((noinline));
 static void VecBug2(short Kernel[8][24]) __attribute__((noinline));
 
-/* Not vectorizable: Kernel may alias Kernshort - a global array.  */
+/* Kernel may alias Kernshort - a global array.
+   Use versioning for aliasing.  */
 static void VecBug(short Kernel[8][24])
 {
   int k,i;
@@ -48,7 +49,8 @@ int main (int argc, char **argv)
     return 0;
 }
 
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
-/*  { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target vect_no_align } } } */
+/* The loops in VecBug and VecBug2 require versioning for alignment.
+   The loop in main is aligned.  */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */
+/*  { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target vect_no_align } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index ef36d1ca6e80efe132638005c6586232bda1dac1..f4392cd539fb5fcd22db7d75f784e6b638b8a944 100644 (file)
@@ -8,8 +8,8 @@
 int main1 ()
 {  
   union {
-    char a[N] __attribute__ ((__aligned__(16)));
-    char b[N] __attribute__ ((__aligned__(16)));
+    unsigned char a[N] __attribute__ ((__aligned__(16)));
+    unsigned char b[N] __attribute__ ((__aligned__(16)));
   } s;
   int i;
 
@@ -19,8 +19,8 @@ int main1 ()
       s.b[i] = 3*i;
     }
 
-  /* Can't vectorize - dependence analysis fails cause s.a and s.b may
-     overlap.  */
+  /* Dependence analysis fails cause s.a and s.b may overlap.
+     Use runtime aliasing test with versioning.  */
   for (i = 0; i < N; i++)
     {
       s.a[i] = s.b[i] + 1;
@@ -44,6 +44,6 @@ int main (void)
 } 
 
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 3c301eb58d1e1eb6f07ac3ebaa8c9641d1d32650..6f02575b0239493061afaad5e7b322672b9e6c8b 100644 (file)
@@ -17,7 +17,8 @@ int main1 (int X)
       by the loop-header phi (as opposed to the other uses of k that are
       defined in the loop), in which case we exercise the fact that we
       reuse the same vector def-use-cycle for both uses. 
-      Peeling to align the store is also applied.  */
+      Peeling to align the store is also applied. This peeling also aligns
+      the load (as they have the same misalignment).  */
 
    do { 
        arr2[i+1] = 2*k;
@@ -45,5 +46,5 @@ int main (void)
   return main1 (3);
 } 
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 26bba0b1f24e8bdd5dcb0317a47448c0e25122e4..81b2003ba974b947edde8247110e59d604df9eee 100644 (file)
@@ -40,6 +40,5 @@ int main (void)
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_unpack } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_no_align && vect_unpack } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */