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