m4/ax_detect_clang.m4: check presence of clang/Basic/LangStandard.h
[pet.git] / tests / propagate.scop
blobb076b11d8a36bb0639016d8f6ee985514b994c4a
1 start: 66
2 end: 204
3 indent: "\t"
4 context: '[N] -> {  : 0 <= N <= 2147483647 }'
5 schedule: '{ domain: "[N] -> { S_4[i, j] : i >= 0 and i <= j < N; S_7[]; S_3[i, j]
6   : i >= 0 and i <= j < N; S_2[i, j] : i >= 0 and i <= j < N; S_6[]; S_0[]; S_8[];
7   S_1[i] : 0 <= i < N; S_5[i] : 0 <= i < N }", child: { sequence: [ { filter: "[N]
8   -> { S_0[] }" }, { filter: "[N] -> { S_4[i, j]; S_3[i, j]; S_2[i, j]; S_1[i]; S_5[i]
9   }", child: { schedule: "[N] -> L_0[{ S_4[i, j] -> [(i)]; S_2[i, j] -> [(i)]; S_3[i,
10   j] -> [(i)]; S_1[i] -> [(i)]; S_5[i] -> [(i)] }]", child: { sequence: [ { filter:
11   "[N] -> { S_1[i] }" }, { filter: "[N] -> { S_4[i, j]; S_2[i, j]; S_3[i, j] }", child:
12   { schedule: "[N] -> L_1[{ S_4[i, j] -> [(j)]; S_2[i, j] -> [(j)]; S_3[i, j] -> [(j)]
13   }]", child: { sequence: [ { filter: "[N] -> { S_2[i, j] }" }, { filter: "[N] ->
14   { S_3[i, j] }" }, { filter: "[N] -> { S_4[i, j] }" } ] } } }, { filter: "[N] ->
15   { S_5[i] }" } ] } } }, { filter: "[N] -> { S_7[]; S_6[]; S_8[] }", child: { set:
16   [ { filter: "{ S_6[] }" }, { filter: "{ S_7[] }" }, { filter: "{ S_8[] }" } ] }
17   } ] } }'
18 arrays:
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: '{  :  }'
24   extent: '[N] -> { i[] }'
25   element_type: int
26   element_size: 4
27 - context: '{  :  }'
28   extent: '[N] -> { ind[] }'
29   element_type: int
30   element_size: 4
31 - context: '{  :  }'
32   extent: '[N] -> { j[] }'
33   element_type: int
34   element_size: 4
35 statements:
36 - line: 7
37   domain: '[N] -> { S_0[] }'
38   body:
39     type: expression
40     expr:
41       type: op
42       operation: =
43       arguments:
44       - type: access
45         index: '[N] -> { S_0[] -> i[] }'
46         reference: __pet_ref_0
47         read: 0
48         write: 1
49       - type: int
50         value: 0
51 - line: 8
52   domain: '[N] -> { S_1[i] : 0 <= i < N }'
53   body:
54     type: expression
55     expr:
56       type: op
57       operation: =
58       arguments:
59       - type: access
60         index: '[N] -> { S_1[i] -> j[] }'
61         reference: __pet_ref_1
62         read: 0
63         write: 1
64       - type: access
65         index: '[N] -> { S_1[i] -> [(i)] }'
66         reference: __pet_ref_2
67         read: 1
68         write: 0
69 - line: 9
70   domain: '[N] -> { S_2[i, j] : i >= 0 and i <= j < N }'
71   body:
72     type: expression
73     expr:
74       type: op
75       operation: =
76       arguments:
77       - type: access
78         index: '[N] -> { S_2[i, j] -> ind[] }'
79         reference: __pet_ref_3
80         read: 0
81         write: 1
82       - type: access
83         index: '[N] -> { S_2[i, j] -> [((-1 + i) : i > 0; (0) : i = 0)] }'
84         reference: __pet_ref_4
85         read: 1
86         write: 0
87 - line: 10
88   domain: '[N] -> { S_3[i, j] : i >= 0 and i <= j < N }'
89   body:
90     type: expression
91     expr:
92       type: op
93       operation: =
94       arguments:
95       - type: access
96         index: '[N] -> { S_3[i, j] -> a[(i), (j)] }'
97         reference: __pet_ref_5
98         read: 0
99         write: 1
100       - type: access
101         index: '[N] -> { S_3[i, j] -> a[((-1 + i) : i > 0; (0) : i = 0), (0)] }'
102         reference: __pet_ref_6
103         read: 1
104         write: 0
105 - line: 8
106   domain: '[N] -> { S_4[i, j] : i >= 0 and i <= j < N }'
107   body:
108     type: expression
109     expr:
110       type: op
111       operation: =
112       arguments:
113       - type: access
114         index: '[N] -> { S_4[i, j] -> j[] }'
115         reference: __pet_ref_7
116         read: 0
117         write: 1
118       - type: access
119         index: '[N] -> { S_4[i, j] -> [(1 + j)] }'
120         reference: __pet_ref_8
121         read: 1
122         write: 0
123 - line: 7
124   domain: '[N] -> { S_5[i] : 0 <= i < N }'
125   body:
126     type: expression
127     expr:
128       type: op
129       operation: =
130       arguments:
131       - type: access
132         index: '[N] -> { S_5[i] -> i[] }'
133         reference: __pet_ref_9
134         read: 0
135         write: 1
136       - type: access
137         index: '[N] -> { S_5[i] -> [(1 + i)] }'
138         reference: __pet_ref_10
139         read: 1
140         write: 0
141 - line: -1
142   domain: '[N] -> { S_6[] }'
143   body:
144     type: expression
145     expr:
146       type: op
147       operation: kill
148       arguments:
149       - type: access
150         killed: '[N] -> { S_6[] -> i[] }'
151         index: '[N] -> { S_6[] -> i[] }'
152         reference: __pet_ref_11
153         kill: 1
154 - line: -1
155   domain: '[N] -> { S_7[] }'
156   body:
157     type: expression
158     expr:
159       type: op
160       operation: kill
161       arguments:
162       - type: access
163         killed: '[N] -> { S_7[] -> j[] }'
164         index: '[N] -> { S_7[] -> j[] }'
165         reference: __pet_ref_12
166         kill: 1
167 - line: -1
168   domain: '[N] -> { S_8[] }'
169   body:
170     type: expression
171     expr:
172       type: op
173       operation: kill
174       arguments:
175       - type: access
176         killed: '[N] -> { S_8[] -> ind[] }'
177         index: '[N] -> { S_8[] -> ind[] }'
178         reference: __pet_ref_13
179         kill: 1