use an isl_multi_pw_aff to represent a skip condition
[pet.git] / tests / data_dependent.scop
blob7511ebe8b8fa31fc41d8600b7fe1f057657bdda1
1 start: 274
2 end: 498
3 context: '[N, M] -> {  : M >= 10 and M <= 1000 and N >= 10 and N <= 1000 }'
4 arrays:
5 - context: '[M, N] -> {  : N >= 0 and M >= 0 }'
6   extent: '[N, M] -> { in1[i0, i1] : i1 <= -1 + M and i1 >= 0 and i0 <= -1 + N and
7     i0 >= 0 }'
8   element_type: int
9   element_size: 4
10 - context: '[N] -> {  : N >= 0 }'
11   extent: '[N, M] -> { in2[i0] : i0 <= -1 + N and i0 >= 0 }'
12   value_bounds: '{ [i0] : i0 >= -1 and i0 <= 1 }'
13   element_type: int
14   element_size: 4
15 - context: '[N] -> {  : N >= 0 }'
16   extent: '[N, M] -> { A[i0, i1] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <=
17     9 }'
18   element_type: int
19   element_size: 4
20 - context: '[N] -> {  : N >= 0 }'
21   extent: '[N, M] -> { C[i0] : i0 <= -1 + N and i0 >= 0 }'
22   element_type: int
23   element_size: 4
24 - context: '{  :  }'
25   extent: '[N, M] -> { m[] }'
26   element_type: int
27   element_size: 4
28 statements:
29 - line: 23
30   domain: '[N, M] -> { S_0[i] : i <= -1 + N and i >= 0 }'
31   schedule: '[N] -> { S_0[i] -> [0, i, 0] }'
32   body:
33     type: binary
34     operation: =
35     arguments:
36     - type: access
37       relation: '[N, M] -> { S_0[i] -> m[] }'
38       reference: __pet_ref_0
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         reference: __pet_ref_1
47         read: 1
48         write: 0
49       - type: access
50         relation: '[N, M] -> { S_0[i] -> [1] }'
51         reference: __pet_ref_2
52         read: 1
53         write: 0
54 - line: 25
55   domain: '[N, M] -> { S_1[i, j] : j <= -1 + M and j >= 0 and i <= -1 + N and i >=
56     0 }'
57   schedule: '[M, N] -> { S_1[i, j] -> [0, i, 1, j] }'
58   body:
59     type: binary
60     operation: =
61     arguments:
62     - type: access
63       relation: '[N, M] -> { S_1[i, j] -> m[] }'
64       reference: __pet_ref_3
65       read: 0
66       write: 1
67     - type: call
68       name: g
69       arguments:
70       - type: call
71         name: h
72         arguments:
73         - type: access
74           relation: '[N, M] -> { S_1[i, j] -> m[] }'
75           reference: __pet_ref_4
76           read: 1
77           write: 0
78       - type: access
79         relation: '[N, M] -> { S_1[i, j] -> in1[i, j] }'
80         reference: __pet_ref_5
81         read: 1
82         write: 0
83 - line: 26
84   domain: '[N, M] -> { S_2[i] : i <= -1 + N and i >= 0 }'
85   schedule: '[N] -> { S_2[i] -> [0, i, 2] }'
86   body:
87     type: call
88     name: compute_row
89     arguments:
90     - type: call
91       name: h
92       arguments:
93       - type: access
94         relation: '[N, M] -> { S_2[i] -> m[] }'
95         reference: __pet_ref_6
96         read: 1
97         write: 0
98     - type: access
99       relation: '[N, M] -> { S_2[i] -> A[i, o1] }'
100       reference: __pet_ref_7
101       read: 0
102       write: 1
103 - line: 28
104   domain: '[N, M] -> { S_3[] }'
105   schedule: '{ S_3[] -> [1] }'
106   body:
107     type: binary
108     operation: =
109     arguments:
110     - type: access
111       relation: '[N, M] -> { S_3[] -> A[5, 6] }'
112       reference: __pet_ref_8
113       read: 0
114       write: 1
115     - type: access
116       relation: '[N, M] -> { S_3[] -> [0] }'
117       reference: __pet_ref_9
118       read: 1
119       write: 0
120 - line: 30
121   domain: '[N, M] -> { S_4[i] : i <= -3 + N and i >= 0 }'
122   schedule: '[N] -> { S_4[i] -> [2, i] }'
123   body:
124     type: binary
125     operation: =
126     arguments:
127     - type: access
128       relation: '[N, M] -> { S_4[i] -> C[i] }'
129       reference: __pet_ref_10
130       read: 0
131       write: 1
132     - type: call
133       name: f
134       arguments:
135       - type: access
136         relation: '[N, M] -> { [S_4[i] -> [i1]] -> A[1 + i + i1, o1] }'
137         reference: __pet_ref_12
138         read: 1
139         write: 0
140         arguments:
141         - type: access
142           relation: '[N, M] -> { S_4[i] -> in2[i] }'
143           reference: __pet_ref_11
144           read: 1
145           write: 0