link against single libLLVM shared library when available
[pet.git] / tests / matmul.scop
bloba65c1a92e4b943d6fe1fbe59271bf0cdccb564c9
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 schedule: '{ domain: "[N, K, M] -> { S_1[i, j, k] : i >= 0 and i <= -1 + M and j >=
7   0 and j <= -1 + N and k >= 0 and k <= -1 + K; S_3[]; S_0[i, j] : i >= 0 and i <=
8   -1 + M and j >= 0 and j <= -1 + N; S_2[]; S_4[] }", child: { sequence: [ { filter:
9   "[M, N, K] -> { S_0[i, j]; S_1[i, j, k] }", child: { schedule: "[M, N, K] -> L_0[{
10   S_0[i, j] -> [(i)]; S_1[i, j, k] -> [(i)] }]", child: { schedule: "[M, N, K] ->
11   L_1[{ S_0[i, j] -> [(j)]; S_1[i, j, k] -> [(j)] }]", child: { sequence: [ { filter:
12   "[M, N, K] -> { S_0[i, j] }" }, { filter: "[M, N, K] -> { S_1[i, j, k] }", child:
13   { schedule: "[M, N, K] -> L_2[{ S_1[i, j, k] -> [(k)] }]" } } ] } } } }, { filter:
14   "[M, N, K] -> { S_3[]; S_2[]; S_4[] }", child: { set: [ { filter: "{ S_2[] }" },
15   { filter: "{ S_3[] }" }, { filter: "{ S_4[] }" } ] } } ] } }'
16 arrays:
17 - context: '[K] -> {  : K >= 0 }'
18   extent: '[N, K, M] -> { A[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + K }'
19   element_type: float
20   element_size: 4
21 - context: '[N] -> {  : N >= 0 }'
22   extent: '[N, K, M] -> { B[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + N }'
23   element_type: float
24   element_size: 4
25 - context: '[N] -> {  : N >= 0 }'
26   extent: '[N, K, M] -> { C[i0, i1] : i0 >= 0 and i1 >= 0 and i1 <= -1 + N }'
27   element_type: float
28   element_size: 4
29   live_out: 1
30 - context: '{  :  }'
31   extent: '[N, K, M] -> { i[] }'
32   element_type: int
33   element_size: 4
34 - context: '{  :  }'
35   extent: '[N, K, M] -> { j[] }'
36   element_type: int
37   element_size: 4
38 - context: '{  :  }'
39   extent: '[N, K, M] -> { k[] }'
40   element_type: int
41   element_size: 4
42 statements:
43 - line: 9
44   domain: '[N, K, M] -> { S_0[i, j] : i >= 0 and i <= -1 + M and j >= 0 and j <= -1
45     + N }'
46   body:
47     type: expression
48     expr:
49       type: op
50       operation: =
51       arguments:
52       - type: access
53         index: '[N, K, M] -> { S_0[i, j] -> C[(i), (j)] }'
54         reference: __pet_ref_0
55         read: 0
56         write: 1
57       - type: int
58         value: 0
59 - line: 11
60   domain: '[N, K, M] -> { S_1[i, j, k] : i >= 0 and i <= -1 + M and j >= 0 and j <=
61     -1 + N and k >= 0 and k <= -1 + K }'
62   body:
63     type: expression
64     expr:
65       type: op
66       operation: +=
67       arguments:
68       - type: access
69         index: '[N, K, M] -> { S_1[i, j, k] -> C[(i), (j)] }'
70         reference: __pet_ref_1
71         read: 1
72         write: 1
73       - type: op
74         operation: '*'
75         arguments:
76         - type: access
77           index: '[N, K, M] -> { S_1[i, j, k] -> A[(i), (k)] }'
78           reference: __pet_ref_2
79           read: 1
80           write: 0
81         - type: access
82           index: '[N, K, M] -> { S_1[i, j, k] -> B[(k), (j)] }'
83           reference: __pet_ref_3
84           read: 1
85           write: 0
86 - line: -1
87   domain: '[N, K, M] -> { S_2[] }'
88   body:
89     type: expression
90     expr:
91       type: op
92       operation: kill
93       arguments:
94       - type: access
95         killed: '[N, K, M] -> { S_2[] -> i[] }'
96         index: '[N, K, M] -> { S_2[] -> i[] }'
97         reference: __pet_ref_4
98         kill: 1
99 - line: -1
100   domain: '[N, K, M] -> { S_3[] }'
101   body:
102     type: expression
103     expr:
104       type: op
105       operation: kill
106       arguments:
107       - type: access
108         killed: '[N, K, M] -> { S_3[] -> j[] }'
109         index: '[N, K, M] -> { S_3[] -> j[] }'
110         reference: __pet_ref_5
111         kill: 1
112 - line: -1
113   domain: '[N, K, M] -> { S_4[] }'
114   body:
115     type: expression
116     expr:
117       type: op
118       operation: kill
119       arguments:
120       - type: access
121         killed: '[N, K, M] -> { S_4[] -> k[] }'
122         index: '[N, K, M] -> { S_4[] -> k[] }'
123         reference: __pet_ref_6
124         kill: 1