move PetScan::extract_while before its first use
[pet.git] / tests / decl.scop
blob60a7d64b5a152fc3e6b4dcf8266a254221115624
1 start: 95
2 end: 282
3 context: '[N, K, M] -> {  : K >= 0 and N >= 0 and N <= 2147483647 and K <= 2147483647
4   and M <= 2147483647 and M >= -2147483648 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[N, K, M] -> { t[] }'
8   element_type: float
9   element_size: 4
10   declared: 1
11 - context: '[K] -> {  : K >= 0 }'
12   extent: '[N, K, M] -> { A[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + K }'
13   element_type: float
14   element_size: 4
15 - context: '[N] -> {  : N >= 0 }'
16   extent: '[N, K, M] -> { B[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + N }'
17   element_type: float
18   element_size: 4
19 - context: '[N] -> {  : N >= 0 }'
20   extent: '[N, K, M] -> { C[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + N }'
21   element_type: float
22   element_size: 4
23 statements:
24 - line: 8
25   domain: '[N, K, M] -> { S_0[i, j] : j <= -1 + N and j >= 0 and i <= -1 + M and i
26     >= 0 }'
27   schedule: '[N, M] -> { S_0[i, j] -> [0, i, j, 0] }'
28   body:
29     type: op
30     operation: =
31     arguments:
32     - type: access
33       relation: '[N, K, M] -> { S_0[i, j] -> C[i, j] }'
34       index: '[N, K, M] -> { S_0[i, j] -> C[(i), (j)] }'
35       reference: __pet_ref_0
36       read: 0
37       write: 1
38     - type: int
39       value: 0
40 - line: 10
41   domain: '[N, K, M] -> { S_1[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
42     j >= 0 and i <= -1 + M and i >= 0 }'
43   schedule: '[K, N, M] -> { S_1[i, j, k] -> [0, i, j, 1, k, 0, 0] }'
44   body:
45     type: op
46     operation: kill
47     arguments:
48     - type: access
49       relation: '[N, K, M] -> { S_1[i, j, k] -> t[] }'
50       index: '[N, K, M] -> { S_1[i, j, k] -> t[] }'
51       reference: __pet_ref_1
52       read: 0
53       write: 0
54 - line: 10
55   domain: '[N, K, M] -> { S_2[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
56     j >= 0 and i <= -1 + M and i >= 0 }'
57   schedule: '[K, N, M] -> { S_2[i, j, k] -> [0, i, j, 1, k, 0, 1] }'
58   body:
59     type: op
60     operation: =
61     arguments:
62     - type: access
63       relation: '[N, K, M] -> { S_2[i, j, k] -> t[] }'
64       index: '[N, K, M] -> { S_2[i, j, k] -> t[] }'
65       reference: __pet_ref_2
66       read: 0
67       write: 1
68     - type: op
69       operation: '*'
70       arguments:
71       - type: access
72         relation: '[N, K, M] -> { S_2[i, j, k] -> A[i, k] }'
73         index: '[N, K, M] -> { S_2[i, j, k] -> A[(i), (k)] }'
74         reference: __pet_ref_3
75         read: 1
76         write: 0
77       - type: access
78         relation: '[N, K, M] -> { S_2[i, j, k] -> B[k, j] }'
79         index: '[N, K, M] -> { S_2[i, j, k] -> B[(k), (j)] }'
80         reference: __pet_ref_4
81         read: 1
82         write: 0
83 - line: 11
84   domain: '[N, K, M] -> { S_4[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
85     j >= 0 and i <= -1 + M and i >= 0 }'
86   schedule: '[K, N, M] -> { S_4[i, j, k] -> [0, i, j, 1, k, 1] }'
87   body:
88     type: op
89     operation: +=
90     arguments:
91     - type: access
92       relation: '[N, K, M] -> { S_4[i, j, k] -> C[i, j] }'
93       index: '[N, K, M] -> { S_4[i, j, k] -> C[(i), (j)] }'
94       reference: __pet_ref_5
95       read: 1
96       write: 1
97     - type: access
98       relation: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
99       index: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
100       reference: __pet_ref_6
101       read: 1
102       write: 0
103 - line: 10
104   domain: '[N, K, M] -> { S_3[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
105     j >= 0 and i <= -1 + M and i >= 0 }'
106   schedule: '[K, N, M] -> { S_3[i, j, k] -> [0, i, j, 1, k, 2] }'
107   body:
108     type: op
109     operation: kill
110     arguments:
111     - type: access
112       relation: '[N, K, M] -> { S_3[i, j, k] -> t[] }'
113       index: '[N, K, M] -> { S_3[i, j, k] -> t[] }'
114       reference: __pet_ref_7
115       read: 0
116       write: 0