handle pencil independent pragmas
[pet.git] / tests / independent3.scop
blob4a20aba2079acddcc2b5062e7b1f7e6ba5bebb1a
1 start: 44
2 end: 209
3 indent: "\t"
4 context: '[n] -> {  : n >= 0 and n <= 2147483647 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[n] -> { t[] }'
8   element_type: float
9   element_size: 4
10   declared: 1
11 - context: '[n] -> {  : n >= 0 }'
12   extent: '[n] -> { A[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + n }'
13   element_type: int
14   element_size: 4
15 - context: '[n] -> {  : n >= 0 }'
16   extent: '[n] -> { B[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + n }'
17   element_type: int
18   element_size: 4
19 statements:
20 - line: 7
21   domain: '[n] -> { S_0[i, j] : i >= 0 and i <= -1 + n and j <= -1 + n and j >= 0
22     }'
23   schedule: '[n] -> { S_0[i, j] -> [0, i, j, 0, 0] }'
24   body:
25     type: expression
26     expr:
27       type: op
28       operation: kill
29       arguments:
30       - type: access
31         relation: '[n] -> { S_0[i, j] -> t[] }'
32         index: '[n] -> { S_0[i, j] -> t[] }'
33         reference: __pet_ref_0
34         read: 0
35         write: 0
36 - line: 7
37   domain: '[n] -> { S_1[i, j] : i >= 0 and i <= -1 + n and j <= -1 + n and j >= 0
38     }'
39   schedule: '[n] -> { S_1[i, j] -> [0, i, j, 0, 1] }'
40   body:
41     type: expression
42     expr:
43       type: op
44       operation: =
45       arguments:
46       - type: access
47         relation: '[n] -> { S_1[i, j] -> t[] }'
48         index: '[n] -> { S_1[i, j] -> t[] }'
49         reference: __pet_ref_1
50         read: 0
51         write: 1
52       - type: op
53         operation: +
54         arguments:
55         - type: access
56           relation: '[n] -> { S_1[i, j] -> [i] }'
57           index: '[n] -> { S_1[i, j] -> [(i)] }'
58           reference: __pet_ref_2
59           read: 1
60           write: 0
61         - type: access
62           relation: '[n] -> { S_1[i, j] -> [j] }'
63           index: '[n] -> { S_1[i, j] -> [(j)] }'
64           reference: __pet_ref_3
65           read: 1
66           write: 0
67 - line: 8
68   domain: '[n] -> { S_3[i, j] : i >= 0 and i <= -1 + n and j <= -1 + n and j >= 0
69     }'
70   schedule: '[n] -> { S_3[i, j] -> [0, i, j, 1] }'
71   body:
72     type: expression
73     expr:
74       type: op
75       operation: =
76       arguments:
77       - type: access
78         relation: '[n] -> { [S_3[i, j] -> [i2]] -> B[i, i2] : i2 >= 0 }'
79         index: '[n] -> { [S_3[i, j] -> [i2]] -> B[(i), ((i2) : i2 >= 0)] }'
80         reference: __pet_ref_5
81         read: 0
82         write: 1
83         arguments:
84         - type: access
85           relation: '[n] -> { S_3[i, j] -> A[i, j] }'
86           index: '[n] -> { S_3[i, j] -> A[(i), (j)] }'
87           reference: __pet_ref_4
88           read: 1
89           write: 0
90       - type: access
91         relation: '[n] -> { S_3[i, j] -> t[] }'
92         index: '[n] -> { S_3[i, j] -> t[] }'
93         reference: __pet_ref_6
94         read: 1
95         write: 0
96 - line: 7
97   domain: '[n] -> { S_2[i, j] : i >= 0 and i <= -1 + n and j <= -1 + n and j >= 0
98     }'
99   schedule: '[n] -> { S_2[i, j] -> [0, i, j, 2] }'
100   body:
101     type: expression
102     expr:
103       type: op
104       operation: kill
105       arguments:
106       - type: access
107         relation: '[n] -> { S_2[i, j] -> t[] }'
108         index: '[n] -> { S_2[i, j] -> t[] }'
109         reference: __pet_ref_7
110         read: 0
111         write: 0
112 independences:
113 - filter: '[n] -> { S_2[i, j] -> S_2[i, j''] : j'' >= 1 + j; S_0[i, j] -> S_1[i, j'']
114     : j'' >= 1 + j; S_2[i, j] -> S_1[i, j''] : j'' >= 1 + j; S_3[i, j] -> S_1[i, j'']
115     : j'' >= 1 + j; S_0[i, j] -> S_2[i, j''] : j'' >= 1 + j; S_3[i, j] -> S_2[i, j'']
116     : j'' >= 1 + j; S_1[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_2[i, j] -> S_0[i, j'']
117     : j'' >= 1 + j; S_0[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_0[i, j] -> S_3[i, j'']
118     : j'' >= 1 + j; S_3[i, j] -> S_0[i, j''] : j'' >= 1 + j; S_1[i, j] -> S_2[i, j'']
119     : j'' >= 1 + j; S_3[i, j] -> S_3[i, j''] : j'' >= 1 + j; S_1[i, j] -> S_3[i, j'']
120     : j'' >= 1 + j; S_1[i, j] -> S_1[i, j''] : j'' >= 1 + j; S_2[i, j] -> S_3[i, j'']
121     : j'' >= 1 + j }'
122   local: '{ t[] }'