scop.c: expr_writes: use pet_expr_is_affine
[pet.git] / tests / decl.scop
blobd9f34a467ce31ce96498ea5175b75ccce619c75b
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: binary
30     operation: =
31     arguments:
32     - type: access
33       relation: '[N, K, M] -> { S_0[i, j] -> C[i, j] }'
34       reference: __pet_ref_0
35       read: 0
36       write: 1
37     - type: access
38       relation: '[N, K, M] -> { S_0[i, j] -> [0] }'
39       reference: __pet_ref_1
40       read: 1
41       write: 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: '[K, N, M] -> { S_1[i, j, k] -> [0, i, j, 1, k, 0, 0] }'
46   body:
47     type: unary
48     operation: kill
49     arguments:
50     - type: access
51       relation: '[N, K, M] -> { S_1[i, j, k] -> t[] }'
52       reference: __pet_ref_2
53       read: 0
54       write: 0
55 - line: 10
56   domain: '[N, K, M] -> { S_2[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
57     j >= 0 and i <= -1 + M and i >= 0 }'
58   schedule: '[K, N, M] -> { S_2[i, j, k] -> [0, i, j, 1, k, 0, 1] }'
59   body:
60     type: binary
61     operation: =
62     arguments:
63     - type: access
64       relation: '[N, K, M] -> { S_2[i, j, k] -> t[] }'
65       reference: __pet_ref_3
66       read: 0
67       write: 1
68     - type: binary
69       operation: '*'
70       arguments:
71       - type: access
72         relation: '[N, K, M] -> { S_2[i, j, k] -> A[i, k] }'
73         reference: __pet_ref_4
74         read: 1
75         write: 0
76       - type: access
77         relation: '[N, K, M] -> { S_2[i, j, k] -> B[k, j] }'
78         reference: __pet_ref_5
79         read: 1
80         write: 0
81 - line: 11
82   domain: '[N, K, M] -> { S_4[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
83     j >= 0 and i <= -1 + M and i >= 0 }'
84   schedule: '[K, N, M] -> { S_4[i, j, k] -> [0, i, j, 1, k, 1] }'
85   body:
86     type: binary
87     operation: +=
88     arguments:
89     - type: access
90       relation: '[N, K, M] -> { S_4[i, j, k] -> C[i, j] }'
91       reference: __pet_ref_6
92       read: 1
93       write: 1
94     - type: access
95       relation: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
96       reference: __pet_ref_7
97       read: 1
98       write: 0
99 - line: 10
100   domain: '[N, K, M] -> { S_3[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
101     j >= 0 and i <= -1 + M and i >= 0 }'
102   schedule: '[K, N, M] -> { S_3[i, j, k] -> [0, i, j, 1, k, 2] }'
103   body:
104     type: unary
105     operation: kill
106     arguments:
107     - type: access
108       relation: '[N, K, M] -> { S_3[i, j, k] -> t[] }'
109       reference: __pet_ref_8
110       read: 0
111       write: 0