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