support modulo operation in statements
[pet.git] / tests / wdp.scop
blobd19dc551bcca335434bb744924949dbd03000af8
1 context: '[N] -> {  : N >= 8 and N <= 16 }'
2 arrays:
3 - context: '{  :  }'
4   extent: '[N] -> { __pet_test_0[i] : i >= 0 and i <= -1 + N }'
5   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
6   element_type: int
7   uniquely_defined: 1
8 - context: '[N] -> {  : N >= 0 }'
9   extent: '[N] -> { x[i0] : i0 >= 0 and i0 <= -1 + N }'
10   element_type: int
11 - context: '[N] -> {  : N >= -1 and N <= 2147483646 }'
12   extent: '[N] -> { y[i0] : i0 >= 0 and i0 <= N }'
13   element_type: int
14 - context: '[N] -> {  : N >= -1 and N <= 2147483646 }'
15   extent: '[N] -> { t[i0] : i0 >= 0 and i0 <= N }'
16   element_type: int
17 - context: '[N] -> {  : N >= -2 and N <= 2147483645 }'
18   extent: '[N] -> { z[i0] : i0 >= 0 and i0 <= 1 + N }'
19   element_type: int
20 statements:
21 - line: 19
22   domain: '[N] -> { S_0[i] : i >= 0 and i <= -1 + N }'
23   schedule: '[N] -> { S_0[i] -> [0, i] }'
24   body:
25     type: binary
26     operation: =
27     arguments:
28     - type: access
29       relation: '[N] -> { S_0[i] -> x[i] }'
30       read: 0
31       write: 1
32     - type: call
33       name: _Source_x
34 - line: 22
35   domain: '[N] -> { S_1[i] : i >= 0 and i <= N }'
36   schedule: '[N] -> { S_1[i] -> [1, i] }'
37   body:
38     type: call
39     name: _Source_yt
40     arguments:
41     - type: unary
42       operation: '&'
43       arguments:
44       - type: access
45         relation: '[N] -> { S_1[i] -> y[i] }'
46         read: 0
47         write: 1
48     - type: unary
49       operation: '&'
50       arguments:
51       - type: access
52         relation: '[N] -> { S_1[i] -> t[i] }'
53         read: 0
54         write: 1
55 - line: 25
56   domain: '[N] -> { S_2[i] : i >= 0 and i <= 1 + N }'
57   schedule: '[N] -> { S_2[i] -> [2, i] }'
58   body:
59     type: binary
60     operation: =
61     arguments:
62     - type: access
63       relation: '[N] -> { S_2[i] -> z[i] }'
64       read: 0
65       write: 1
66     - type: call
67       name: _Source_z
68 - line: 29
69   domain: '[N] -> { [S_4[i] -> [0]] : i >= 0 and i <= -1 + N }'
70   schedule: '[N] -> { S_4[i] -> [3, i, 0] }'
71   body:
72     type: binary
73     operation: =
74     arguments:
75     - type: access
76       relation: '[N] -> { S_4[i] -> x[i] }'
77       read: 0
78       write: 1
79     - type: call
80       name: F1
81       arguments:
82       - type: access
83         relation: '[N] -> { S_4[i] -> x[i] }'
84         read: 1
85         write: 0
86   arguments:
87   - type: access
88     relation: '[N] -> { S_4[i] -> z[i] }'
89     read: 1
90     write: 0
91 - line: 30
92   domain: '[N] -> { S_5[i] : i >= 0 and i <= -1 + N }'
93   schedule: '[N] -> { S_5[i] -> [3, i, 1, 0] }'
94   body:
95     type: binary
96     operation: =
97     arguments:
98     - type: access
99       relation: '[N] -> { S_5[i] -> __pet_test_0[i] }'
100       read: 0
101       write: 1
102     - type: binary
103       operation: '>'
104       arguments:
105       - type: binary
106         operation: '*'
107         arguments:
108         - type: access
109           relation: '[N] -> { S_5[i] -> x[i] }'
110           read: 1
111           write: 0
112         - type: access
113           relation: '[N] -> { S_5[i] -> x[i] }'
114           read: 1
115           write: 0
116       - type: access
117         relation: '[N] -> { S_5[i] -> [100] }'
118         read: 1
119         write: 0
120 - line: 31
121   domain: '[N] -> { [S_6[i] -> [1]] : i >= 0 and i <= -1 + N }'
122   schedule: '[N] -> { S_6[i] -> [3, i, 1, 1, 0] }'
123   body:
124     type: binary
125     operation: =
126     arguments:
127     - type: access
128       relation: '[N] -> { S_6[i] -> y[1 + i] }'
129       read: 0
130       write: 1
131     - type: call
132       name: F2
133       arguments:
134       - type: access
135         relation: '[N] -> { S_6[i] -> y[i] }'
136         read: 1
137         write: 0
138   arguments:
139   - type: access
140     relation: '[N] -> { S_6[i] -> __pet_test_0[i] }'
141     read: 1
142     write: 0
143 - line: 32
144   domain: '[N] -> { [S_7[i] -> [1]] : i >= 0 and i <= -1 + N }'
145   schedule: '[N] -> { S_7[i] -> [3, i, 1, 1, 1] }'
146   body:
147     type: binary
148     operation: =
149     arguments:
150     - type: access
151       relation: '[N] -> { S_7[i] -> t[i] }'
152       read: 0
153       write: 1
154     - type: call
155       name: F3
156       arguments:
157       - type: access
158         relation: '[N] -> { S_7[i] -> t[i] }'
159         read: 1
160         write: 0
161   arguments:
162   - type: access
163     relation: '[N] -> { S_7[i] -> __pet_test_0[i] }'
164     read: 1
165     write: 0
166 - line: 34
167   domain: '[N] -> { S_8[i] : i >= 0 and i <= -1 + N }'
168   schedule: '[N] -> { S_8[i] -> [3, i, 2] }'
169   body:
170     type: call
171     name: F4
172     arguments:
173     - type: access
174       relation: '[N] -> { S_8[i] -> y[1 + i] }'
175       read: 1
176       write: 0
177     - type: access
178       relation: '[N] -> { S_8[i] -> z[i] }'
179       read: 1
180       write: 0
181     - type: unary
182       operation: '&'
183       arguments:
184       - type: access
185         relation: '[N] -> { S_8[i] -> y[1 + i] }'
186         read: 0
187         write: 1
188     - type: unary
189       operation: '&'
190       arguments:
191       - type: access
192         relation: '[N] -> { S_8[i] -> z[2 + i] }'
193         read: 0
194         write: 1