update test case outputs
[pet.git] / tests / conditional_assignment2.scop
blobb1ab5fb6735dcde4575fe8ec67903f92383abbd5
1 start: 225
2 end: 507
3 context: '[N, M] -> {  : N >= 0 and M >= 0 and N <= 2147483647 and M <= 2147483647
4   }'
5 arrays:
6 - context: '[M, N] -> {  : N >= 0 and M >= 0 }'
7   extent: '[N, M] -> { in1[i0, i1] : i1 <= -1 + M and i1 >= 0 and i0 <= -1 + N and
8     i0 >= 0 }'
9   element_type: int
10   element_size: 4
11 - context: '{  :  }'
12   extent: '[N, M] -> { in2[] }'
13   value_bounds: '{ [i0] : i0 >= -1 and i0 <= 1 }'
14   element_type: int
15   element_size: 4
16 - context: '[N] -> {  : N >= 0 }'
17   extent: '[N, M] -> { A[i0, i1] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <=
18     9 }'
19   element_type: int
20   element_size: 4
21 - context: '[N] -> {  : N >= 0 }'
22   extent: '[N, M] -> { C[i0] : i0 <= -1 + N and i0 >= 0 }'
23   element_type: int
24   element_size: 4
25 - context: '{  :  }'
26   extent: '[N, M] -> { m[] }'
27   element_type: int
28   element_size: 4
29 statements:
30 - line: 21
31   domain: '[N, M] -> { S_0[] }'
32   schedule: '{ S_0[] -> [0] }'
33   body:
34     type: binary
35     operation: =
36     arguments:
37     - type: access
38       relation: '[N, M] -> { S_0[] -> in2[] }'
39       read: 0
40       write: 1
41     - type: call
42       name: g2
43 - line: 23
44   domain: '[N, M] -> { S_1[i] : i <= -1 + N and i >= 0 }'
45   schedule: '[N] -> { S_1[i] -> [1, i, 0] }'
46   body:
47     type: binary
48     operation: =
49     arguments:
50     - type: access
51       relation: '[N, M] -> { S_1[i] -> m[] }'
52       read: 0
53       write: 1
54     - type: binary
55       operation: +
56       arguments:
57       - type: access
58         relation: '[N, M] -> { S_1[i] -> [i] }'
59         read: 1
60         write: 0
61       - type: access
62         relation: '[N, M] -> { S_1[i] -> [1] }'
63         read: 1
64         write: 0
65 - line: 25
66   domain: '[N, M] -> { S_2[i, j] : j <= -1 + M and j >= 0 and i <= -1 + N and i >=
67     0 }'
68   schedule: '[M, N] -> { S_2[i, j] -> [1, i, 1, j] }'
69   body:
70     type: binary
71     operation: =
72     arguments:
73     - type: access
74       relation: '[N, M] -> { S_2[i, j] -> m[] }'
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           relation: '[N, M] -> { S_2[i, j] -> m[] }'
85           read: 1
86           write: 0
87       - type: access
88         relation: '[N, M] -> { S_2[i, j] -> in1[i, j] }'
89         read: 1
90         write: 0
91 - line: 26
92   domain: '[N, M] -> { S_3[i] : i <= -1 + N and i >= 0 }'
93   schedule: '[N] -> { S_3[i] -> [1, i, 2] }'
94   body:
95     type: call
96     name: compute_row
97     arguments:
98     - type: call
99       name: h
100       arguments:
101       - type: access
102         relation: '[N, M] -> { S_3[i] -> m[] }'
103         read: 1
104         write: 0
105     - type: access
106       relation: '[N, M] -> { S_3[i] -> A[i, o1] }'
107       read: 0
108       write: 1
109 - line: 28
110   domain: '[N, M] -> { S_4[] }'
111   schedule: '{ S_4[] -> [2] }'
112   body:
113     type: binary
114     operation: =
115     arguments:
116     - type: access
117       relation: '[N, M] -> { S_4[] -> A[5, 6] }'
118       read: 0
119       write: 1
120     - type: access
121       relation: '[N, M] -> { S_4[] -> [0] }'
122       read: 1
123       write: 0
124 - line: 30
125   domain: '[N, M] -> { S_5[i] : i <= -1 + N and i >= 0 }'
126   schedule: '[N] -> { S_5[i] -> [3, i] }'
127   body:
128     type: binary
129     operation: =
130     arguments:
131     - type: access
132       relation: '[N, M] -> { S_5[i] -> C[i] }'
133       read: 0
134       write: 1
135     - type: ternary
136       arguments:
137       - type: access
138         relation: '[N, M] -> { [S_5[i] -> [i1]] -> [1] : i1 >= -i and i1 <= -1 + N
139           - i; [S_5[-1 + N] -> [1]] -> [0]; [S_5[0] -> [-1]] -> [0] }'
140         read: 1
141         write: 0
142         arguments:
143         - type: access
144           relation: '[N, M] -> { S_5[i] -> in2[] }'
145           read: 1
146           write: 0
147       - type: call
148         name: f
149         arguments:
150         - type: access
151           relation: '[N, M] -> { [S_5[i] -> [i1]] -> A[i + i1, o1] : i1 >= -i and
152             i1 <= -1 + N - i }'
153           read: 1
154           write: 0
155           arguments:
156           - type: access
157             relation: '[N, M] -> { S_5[i] -> in2[] }'
158             read: 1
159             write: 0
160       - type: access
161         relation: '[N, M] -> { [S_5[-1 + N] -> [1]] -> [0]; [S_5[0] -> [-1]] -> [0]
162           }'
163         read: 1
164         write: 0
165         arguments:
166         - type: access
167           relation: '[N, M] -> { S_5[i] -> in2[] }'
168           read: 1
169           write: 0