add support for (single) declarations
[pet.git] / tests / decl.scop
blob056c8ed3d02bf3cb4d480017289ed3393b6894d7
1 context: '[N, K, M] -> {  : K >= 0 and N >= 0 and N <= 2147483647 and K <= 2147483647
2   and M <= 2147483647 and M >= -2147483648 }'
3 arrays:
4 - context: '{  :  }'
5   extent: '[N, K, M] -> { t[] }'
6   element_type: float
7   element_size: 4
8   declared: 1
9 - context: '[K] -> {  : K >= 0 }'
10   extent: '[N, K, M] -> { A[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + K }'
11   element_type: float
12   element_size: 4
13 - context: '[N] -> {  : N >= 0 }'
14   extent: '[N, K, M] -> { B[i0, i1] : i1 >= 0 and i1 <= -1 + N and i0 >= 0 }'
15   element_type: float
16   element_size: 4
17 - context: '[N] -> {  : N >= 0 }'
18   extent: '[N, K, M] -> { C[i0, i1] : i1 >= 0 and i1 <= -1 + N and i0 >= 0 }'
19   element_type: float
20   element_size: 4
21 statements:
22 - line: 8
23   domain: '[N, K, M] -> { S_0[i, j] : i >= 0 and i <= -1 + M and j >= 0 and j <= -1
24     + N }'
25   schedule: '[N, M] -> { S_0[i, j] -> [0, i, j, 0] }'
26   body:
27     type: binary
28     operation: =
29     arguments:
30     - type: access
31       relation: '[N, K, M] -> { S_0[i, j] -> C[i, j] }'
32       read: 0
33       write: 1
34     - type: access
35       relation: '[N, K, M] -> { S_0[i, j] -> [0] }'
36       read: 1
37       write: 0
38 - line: 10
39   domain: '[N, K, M] -> { S_1[i, j, k] : k >= 0 and j >= 0 and j <= -1 + N and k <=
40     -1 + K and i >= 0 and i <= -1 + M }'
41   schedule: '[K, N, M] -> { S_1[i, j, k] -> [0, i, j, 1, k, 0, 0] }'
42   body:
43     type: unary
44     operation: kill
45     arguments:
46     - type: access
47       relation: '[N, K, M] -> { S_1[i, j, k] -> t[] }'
48       read: 0
49       write: 0
50 - line: 10
51   domain: '[N, K, M] -> { S_2[i, j, k] : k >= 0 and j >= 0 and j <= -1 + N and k <=
52     -1 + K and i >= 0 and i <= -1 + M }'
53   schedule: '[K, N, M] -> { S_2[i, j, k] -> [0, i, j, 1, k, 0, 1] }'
54   body:
55     type: binary
56     operation: =
57     arguments:
58     - type: access
59       relation: '[N, K, M] -> { S_2[i, j, k] -> t[] }'
60       read: 0
61       write: 1
62     - type: binary
63       operation: '*'
64       arguments:
65       - type: access
66         relation: '[N, K, M] -> { S_2[i, j, k] -> A[i, k] }'
67         read: 1
68         write: 0
69       - type: access
70         relation: '[N, K, M] -> { S_2[i, j, k] -> B[k, j] }'
71         read: 1
72         write: 0
73 - line: 11
74   domain: '[N, K, M] -> { S_4[i, j, k] : k >= 0 and j >= 0 and j <= -1 + N and k <=
75     -1 + K and i >= 0 and i <= -1 + M }'
76   schedule: '[K, N, M] -> { S_4[i, j, k] -> [0, i, j, 1, k, 1] }'
77   body:
78     type: binary
79     operation: +=
80     arguments:
81     - type: access
82       relation: '[N, K, M] -> { S_4[i, j, k] -> C[i, j] }'
83       read: 1
84       write: 1
85     - type: access
86       relation: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
87       read: 1
88       write: 0
89 - line: 10
90   domain: '[N, K, M] -> { S_3[i, j, k] : k >= 0 and j >= 0 and j <= -1 + N and k <=
91     -1 + K and i >= 0 and i <= -1 + M }'
92   schedule: '[K, N, M] -> { S_3[i, j, k] -> [0, i, j, 1, k, 2] }'
93   body:
94     type: unary
95     operation: kill
96     arguments:
97     - type: access
98       relation: '[N, K, M] -> { S_3[i, j, k] -> t[] }'
99       read: 0
100       write: 0