OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.dg/] [vect/] [no-vfa-vect-depend-1.c] - Blame information for rev 298

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 298 jeremybenn
/* { dg-require-effective-target vect_int } */
2
 
3
#include <stdarg.h>
4
#include "tree-vect.h"
5
 
6
#define N 17
7
 
8
int ia[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48};
9
int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48};
10
int res[N] = {12,24,36,48,60,72,84,96,108,120,132,144,156,168,180,192,48};
11
 
12
__attribute__ ((noinline))
13
int main1 ()
14
{
15
  int i;
16
 
17
  /* Not vectorizable due to data dependence: dependence distance 1.  */
18
  for (i = 0; i < N - 1; i++)
19
    {
20
      ia[i+1] = ia[i] * 4;
21
    }
22
 
23
  /* check results:  */
24
  for (i = 0; i < N - 1; i++)
25
    {
26
      if (ia[i] != 0)
27
        abort ();
28
    }
29
 
30
  /* Vectorizable. Dependence distance -1.  */
31
  for (i = 0; i < N - 1; i++)
32
    {
33
      ib[i] = ib[i+1] * 4;
34
    }
35
 
36
  /* check results:  */
37
  for (i = 0; i < N - 1; i++)
38
    {
39
      if (ib[i] != res[i])
40
        abort ();
41
    }
42
 
43
  return 0;
44
}
45
 
46
int main (void)
47
{
48
  check_vect();
49
 
50
  return main1 ();
51
}
52
 
53
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail vect_no_align } } } */
54
/* { dg-final { scan-tree-dump-times "dependence distance >= VF or negative" 1 "vect"  } } */
55
/* { dg-final { cleanup-tree-dump "vect" } } */
56
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.