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