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/] [slp-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 <stdio.h>
5
#include "tree-vect.h"
6
 
7
#define N 128 
8
 
9
int
10
main1 ()
11
{
12
  int i;
13
  unsigned short out[N*8];
14
 
15
  for (i = 0; i < N; i++)
16
    {
17
      out[i*4] = 8;
18
      out[i*4 + 1] = 18;
19
      out[i*4 + 2] = 28;
20
      out[i*4 + 3] = 38;
21
    }
22
 
23
  /* check results:  */
24
  for (i = 0; i < N; i++)
25
    {
26
      if (out[i*4] != 8
27
         || out[i*4 + 1] != 18
28
         || out[i*4 + 2] != 28
29
         || out[i*4 + 3] != 38)
30
        abort ();
31
    }
32
 
33
  for (i = 0; i < N; i++)
34
    {
35
      out[i*8] = 8;
36
      out[i*8 + 1] = 7;
37
      out[i*8 + 2] = 81;
38
      out[i*8 + 3] = 28;
39
      out[i*8 + 4] = 18;
40
      out[i*8 + 5] = 85;
41
      out[i*8 + 6] = 5;
42
      out[i*8 + 7] = 4;
43
    }
44
 
45
  /* check results:  */
46
  for (i = 0; i < N; i++)
47
    {
48
      if (out[i*8] != 8
49
         || out[i*8 + 1] != 7
50
         || out[i*8 + 2] != 81
51
         || out[i*8 + 3] != 28
52
         || out[i*8 + 4] != 18
53
         || out[i*8 + 5] != 85
54
         || out[i*8 + 6] != 5
55
         || out[i*8 + 7] != 4)
56
        abort ();
57
    }
58
 
59
  /* SLP with unrolling by 8.  */
60
  for (i = 0; i < N; i++)
61
    {
62
      out[i*5] = 8;
63
      out[i*5 + 1] = 7;
64
      out[i*5 + 2] = 81;
65
      out[i*5 + 3] = 28;
66
      out[i*5 + 4] = 18;
67
    }
68
 
69
  /* check results:  */
70
  for (i = 0; i < N; i++)
71
    {
72
      if (out[i*5] != 8
73
         || out[i*5 + 1] != 7
74
         || out[i*5 + 2] != 81
75
         || out[i*5 + 3] != 28
76
         || out[i*5 + 4] != 18)
77
        abort ();
78
    }
79
 
80
  /* SLP with unrolling by 8.  */
81
  for (i = 0; i < N/2; i++)
82
    {
83
      out[i*9] = 8;
84
      out[i*9 + 1] = 7;
85
      out[i*9 + 2] = 81;
86
      out[i*9 + 3] = 28;
87
      out[i*9 + 4] = 18;
88
      out[i*9 + 5] = 85;
89
      out[i*9 + 6] = 5;
90
      out[i*9 + 7] = 4;
91
      out[i*9 + 8] = 14;
92
    }
93
 
94
  /* check results:  */
95
  for (i = 0; i < N/2; i++)
96
    {
97
      if (out[i*9] != 8
98
         || out[i*9 + 1] != 7
99
         || out[i*9 + 2] != 81
100
         || out[i*9 + 3] != 28
101
         || out[i*9 + 4] != 18
102
         || out[i*9 + 5] != 85
103
         || out[i*9 + 6] != 5
104
         || out[i*9 + 7] != 4
105
         || out[i*9 + 8] != 14)
106
        abort ();
107
    }
108
 
109
  return 0;
110
}
111
 
112
int main (void)
113
{
114
  check_vect ();
115
 
116
  main1 ();
117
 
118
  return 0;
119
}
120
 
121
/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect"  } } */
122
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect"  } } */
123
/* { dg-final { cleanup-tree-dump "vect" } } */
124
 

powered by: WebSVN 2.1.0

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