PATCH: Properly move vectorizer tests

Dorit Nuzman DORIT@il.ibm.com
Tue Sep 4 20:44:00 GMT 2007


"H.J. Lu" <hjl@lucon.org> wrote on 03/09/2007 18:05:15:

> This patch:
>
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00546.html
>
> tried to move 3 vectorizer tests, but left the old tests as empty
> files without adding new tests:
>
...
>
> This patch will
>
> 1. Restore the old tests.
> 2. Use "svn rename" to properly move them.
>
> I am checking them in as an obvious fix.
>

oops, didn't notice that.
thanks for the fix!

dorit

>
> H.J.
> -----
> 2007-09-03  H.J. Lu  <hongjiu.lu@intel.com>
>
>    * gcc.dg/vect/no-tree-scev-cprop-vect-iv-1.c: Restored.  Moved
>    to ...
>    * gcc.dg/vect/no-scevccp-vect-iv-1.c: New test.
>    * gcc.dg/vect/no-tree-scev-cprop-vect-iv-2.c: Restored.  Moved
>    to ...
>    * gcc.dg/vect/no-scevccp-vect-iv-2.c: New test.
>    * gcc.dg/vect/no-tree-scev-cprop-vect-iv-3.c: Restored.  Moved
>    to ...
>    * gcc.dg/vect/no-scevccp-vect-iv-3.c: New test.
>
> --- gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c.move
> 2007-09-03 07:51:30.000000000 -0700
> +++ gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c   2007-09-03
> 07:50:29.000000000 -0700
> @@ -0,0 +1,34 @@
> +/* { dg-require-effective-target vect_int } */
> +
> +#include <stdarg.h>
> +#include "tree-vect.h"
> +
> +#define N 26
> +
> +int main1 (int X)
> +{
> +  int s = X;
> +  int i;
> +
> +  /* vectorization of reduction with induction.
> +     Need -fno-tree-scev-cprop or else the loop is eliminated.  */
> +  for (i = 0; i < N; i++)
> +    s += i;
> +
> +  return s;
> +}
> +
> +int main (void)
> +{
> +  int s;
> +  check_vect ();
> +
> +  s = main1 (3);
> +  if (s != 328)
> +    abort ();
> +
> +  return 0;
> +}
> +
> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } }
*/
> +/* { dg-final { cleanup-tree-dump "vect" } } */
> --- gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c.move
> 2007-09-03 07:51:33.000000000 -0700
> +++ gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c   2007-09-03
> 07:50:29.000000000 -0700
> @@ -0,0 +1,49 @@
> +/* { dg-require-effective-target vect_int } */
> +
> +#include <stdarg.h>
> +#include "tree-vect.h"
> +
> +#define N 16
> +
> +int main1 ()
> +{
> +  int arr1[N];
> +  int k = 0;
> +  int m = 3, i = 0;
> +
> +  /* Vectorization of induction that is used after the loop.
> +     Currently vectorizable because scev_ccp disconnects the
> +     use-after-the-loop from the iv def inside the loop.  */
> +
> +   do {
> +        k = k + 2;
> +        arr1[i] = k;
> +   m = m + k;
> +   i++;
> +   } while (i < N);
> +
> +  /* check results:  */
> +  for (i = 0; i < N; i++)
> +    {
> +      if (arr1[i] != 2+2*i)
> +        abort ();
> +    }
> +
> +  return m + k;
> +}
> +
> +int main (void)
> +{
> +  int res;
> +
> +  check_vect ();
> +
> +  res = main1 ();
> +  if (res != 32 + 275)
> +    abort ();
> +
> +  return 0;
> +}
> +
> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"
> { xfail *-*-* } } } */
> +/* { dg-final { cleanup-tree-dump "vect" } } */
> --- gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c.move
> 2007-09-03 07:51:37.000000000 -0700
> +++ gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c   2007-09-03
> 07:50:29.000000000 -0700
> @@ -0,0 +1,27 @@
> +/* { dg-do compile } */
> +/* { dg-require-effective-target vect_int } */
> +
> +#include <stdarg.h>
> +#include "tree-vect.h"
> +
> +#define N 26
> +
> +unsigned int main1 ()
> +{
> +  unsigned short i;
> +  unsigned int intsum = 0;
> +
> +  /* vectorization of reduction with induction, and widenning sum:
> +     sum shorts into int.
> +     Need -fno-tree-scev-cprop or else the loop is eliminated.  */
> +  for (i = 0; i < N; i++)
> +    {
> +      intsum += i;
> +    }
> +
> +  return intsum;
> +}
> +
> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"
> { target vect_widen_sum_hi_to_si } } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern:
> detected" 1 "vect" { target vect_widen_sum_hi_to_si } } } */
> +/* { dg-final { cleanup-tree-dump "vect" } } */



More information about the Gcc-patches mailing list