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