update isl for rename of isl_map_insert
[pet.git] / tests / matmul.scop
blob84849f8b733580b4e117ea0c76520ca3fe8d6f6b
1 context: '[N, K] -> { [] : K >= 0 and N >= 0 }'
2 arrays:
3 - context: '[K] -> { [] : K >= 0 }'
4   extent: '[K] -> { A[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + K }'
5   element_type: float
6 - context: '[N] -> { [] : N >= 0 }'
7   extent: '[N] -> { B[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + N }'
8   element_type: float
9 - context: '[N] -> { [] : N >= 0 }'
10   extent: '[N] -> { C[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + N }'
11   element_type: float
12   live_out: 1
13 statements:
14 - line: 9
15   domain: '[N, M] -> { S_0[i, j] : i >= 0 and i <= -1 + M and j >= 0 and j <= -1 +
16     N }'
17   schedule: '[N, M] -> { S_0[i, j] -> [0, i, j, 0] }'
18   body:
19     type: binary
20     operation: =
21     arguments:
22     - type: access
23       relation: '[N, M] -> { S_0[i, j] -> C[i, j] }'
24       read: 0
25       write: 1
26     - type: access
27       relation: '[N, M] -> { S_0[i, j] -> [0] }'
28       read: 1
29       write: 0
30 - line: 11
31   domain: '[K, N, M] -> { S_1[i, j, k] : i >= 0 and i <= -1 + M and j >= 0 and j <=
32     -1 + N and k >= 0 and k <= -1 + K }'
33   schedule: '[K, N, M] -> { S_1[i, j, k] -> [0, i, j, 1, k] }'
34   body:
35     type: binary
36     operation: +=
37     arguments:
38     - type: access
39       relation: '[K, N, M] -> { S_1[i, j, k] -> C[i, j] }'
40       read: 1
41       write: 1
42     - type: binary
43       operation: '*'
44       arguments:
45       - type: access
46         relation: '[K, N, M] -> { S_1[i, j, k] -> A[i, k] }'
47         read: 1
48         write: 0
49       - type: access
50         relation: '[K, N, M] -> { S_1[i, j, k] -> B[k, j] }'
51         read: 1
52         write: 0