export pet_expr_new_cast
[pet.git] / tests / matmul.scop
blobe4a5316f2889965918f221343a5922b6766105af
1 start: 95
2 end: 277
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: '[K] -> {  : K >= 0 }'
8   extent: '[N, K, M] -> { A[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + K }'
9   element_type: float
10   element_size: 4
11 - context: '[N] -> {  : N >= 0 }'
12   extent: '[N, K, M] -> { B[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + N }'
13   element_type: float
14   element_size: 4
15 - context: '[N] -> {  : N >= 0 }'
16   extent: '[N, K, M] -> { C[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + N }'
17   element_type: float
18   element_size: 4
19   live_out: 1
20 statements:
21 - line: 9
22   domain: '[N, K, M] -> { S_0[i, j] : j <= -1 + N and j >= 0 and i <= -1 + M and i
23     >= 0 }'
24   schedule: '[M, N] -> { S_0[i, j] -> [0, i, j, 0] }'
25   body:
26     type: expression
27     expr:
28       type: op
29       operation: =
30       arguments:
31       - type: access
32         index: '[N, K, M] -> { S_0[i, j] -> C[(i), (j)] }'
33         reference: __pet_ref_0
34         read: 0
35         write: 1
36       - type: int
37         value: 0
38 - line: 11
39   domain: '[N, K, M] -> { S_1[i, j, k] : k <= -1 + K and k >= 0 and j <= -1 + N and
40     j >= 0 and i <= -1 + M and i >= 0 }'
41   schedule: '[M, N, K] -> { S_1[i, j, k] -> [0, i, j, 1, k] }'
42   body:
43     type: expression
44     expr:
45       type: op
46       operation: +=
47       arguments:
48       - type: access
49         index: '[N, K, M] -> { S_1[i, j, k] -> C[(i), (j)] }'
50         reference: __pet_ref_1
51         read: 1
52         write: 1
53       - type: op
54         operation: '*'
55         arguments:
56         - type: access
57           index: '[N, K, M] -> { S_1[i, j, k] -> A[(i), (k)] }'
58           reference: __pet_ref_2
59           read: 1
60           write: 0
61         - type: access
62           index: '[N, K, M] -> { S_1[i, j, k] -> B[(k), (j)] }'
63           reference: __pet_ref_3
64           read: 1
65           write: 0