update test case outputs
[pet.git] / tests / conditional_assignment.scop
blob128223cb300007a01e4b1df1864aaef9bc1ce559
1 start: 218
2 end: 496
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: '[N] -> {  : N >= 0 }'
12   extent: '[N, M] -> { in2[i0] : i0 <= -1 + N and i0 >= 0 }'
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[i] : i <= -1 + N and i >= 0 }'
32   schedule: '[N] -> { S_0[i] -> [0, i, 0] }'
33   body:
34     type: binary
35     operation: =
36     arguments:
37     - type: access
38       relation: '[N, M] -> { S_0[i] -> m[] }'
39       read: 0
40       write: 1
41     - type: binary
42       operation: +
43       arguments:
44       - type: access
45         relation: '[N, M] -> { S_0[i] -> [i] }'
46         read: 1
47         write: 0
48       - type: access
49         relation: '[N, M] -> { S_0[i] -> [1] }'
50         read: 1
51         write: 0
52 - line: 23
53   domain: '[N, M] -> { S_1[i, j] : j <= -1 + M and j >= 0 and i <= -1 + N and i >=
54     0 }'
55   schedule: '[M, N] -> { S_1[i, j] -> [0, i, 1, j] }'
56   body:
57     type: binary
58     operation: =
59     arguments:
60     - type: access
61       relation: '[N, M] -> { S_1[i, j] -> m[] }'
62       read: 0
63       write: 1
64     - type: call
65       name: g
66       arguments:
67       - type: call
68         name: h
69         arguments:
70         - type: access
71           relation: '[N, M] -> { S_1[i, j] -> m[] }'
72           read: 1
73           write: 0
74       - type: access
75         relation: '[N, M] -> { S_1[i, j] -> in1[i, j] }'
76         read: 1
77         write: 0
78 - line: 24
79   domain: '[N, M] -> { S_2[i] : i <= -1 + N and i >= 0 }'
80   schedule: '[N] -> { S_2[i] -> [0, i, 2] }'
81   body:
82     type: call
83     name: compute_row
84     arguments:
85     - type: call
86       name: h
87       arguments:
88       - type: access
89         relation: '[N, M] -> { S_2[i] -> m[] }'
90         read: 1
91         write: 0
92     - type: access
93       relation: '[N, M] -> { S_2[i] -> A[i, o1] }'
94       read: 0
95       write: 1
96 - line: 26
97   domain: '[N, M] -> { S_3[] }'
98   schedule: '{ S_3[] -> [1] }'
99   body:
100     type: binary
101     operation: =
102     arguments:
103     - type: access
104       relation: '[N, M] -> { S_3[] -> A[5, 6] }'
105       read: 0
106       write: 1
107     - type: access
108       relation: '[N, M] -> { S_3[] -> [0] }'
109       read: 1
110       write: 0
111 - line: 28
112   domain: '[N, M] -> { S_4[i] : i <= -1 + N and i >= 0 }'
113   schedule: '[N] -> { S_4[i] -> [2, i] }'
114   body:
115     type: binary
116     operation: =
117     arguments:
118     - type: access
119       relation: '[N, M] -> { S_4[i] -> C[i] }'
120       read: 0
121       write: 1
122     - type: ternary
123       arguments:
124       - type: access
125         relation: '[N, M] -> { [S_4[i] -> [i1]] -> [1] : i1 >= -i and i1 <= -1 + N
126           - i; [S_4[-1 + N] -> [1]] -> [0]; [S_4[0] -> [-1]] -> [0] }'
127         read: 1
128         write: 0
129         arguments:
130         - type: access
131           relation: '[N, M] -> { S_4[i] -> in2[i] }'
132           read: 1
133           write: 0
134       - type: call
135         name: f
136         arguments:
137         - type: access
138           relation: '[N, M] -> { [S_4[i] -> [i1]] -> A[i + i1, o1] : i1 >= -i and
139             i1 <= -1 + N - i }'
140           read: 1
141           write: 0
142           arguments:
143           - type: access
144             relation: '[N, M] -> { S_4[i] -> in2[i] }'
145             read: 1
146             write: 0
147       - type: access
148         relation: '[N, M] -> { [S_4[-1 + N] -> [1]] -> [0]; [S_4[0] -> [-1]] -> [0]
149           }'
150         read: 1
151         write: 0
152         arguments:
153         - type: access
154           relation: '[N, M] -> { S_4[i] -> in2[i] }'
155           read: 1
156           write: 0