privately export pet_stmt_is_affine_assume
[pet.git] / tests / struct9.scop
blob4573a937ab67b68ce8e8d1eaa5994ce419a2d553
1 start: 127
2 end: 359
3 indent: "\t"
4 context: '{  :  }'
5 schedule: '{ domain: "{ S_3[]; S_1[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and
6   0 <= k <= 29 and 0 <= l <= 39; S_2[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and
7   0 <= k <= 29 and 0 <= l <= 39; S_0[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and
8   0 <= k <= 29 and 0 <= l <= 39 }", child: { sequence: [ { filter: "{ S_1[i, j, k,
9   l]; S_2[i, j, k, l]; S_0[i, j, k, l] }", child: { schedule: "L_0[{ S_1[i, j, k,
10   l] -> [(i)]; S_2[i, j, k, l] -> [(i)]; S_0[i, j, k, l] -> [(i)] }]", child: { schedule:
11   "L_1[{ S_1[i, j, k, l] -> [(j)]; S_2[i, j, k, l] -> [(j)]; S_0[i, j, k, l] -> [(j)]
12   }]", child: { schedule: "L_2[{ S_1[i, j, k, l] -> [(k)]; S_2[i, j, k, l] -> [(k)];
13   S_0[i, j, k, l] -> [(k)] }]", child: { schedule: "L_3[{ S_1[i, j, k, l] -> [(l)];
14   S_2[i, j, k, l] -> [(l)]; S_0[i, j, k, l] -> [(l)] }]", child: { sequence: [ { filter:
15   "{ S_0[i, j, k, l] }" }, { filter: "{ S_1[i, j, k, l] }" }, { filter: "{ S_2[i,
16   j, k, l] }" } ] } } } } } }, { filter: "{ S_3[] }" } ] } }'
17 types:
18 - name: s
19   definition: "struct s {\n    int a[30][40];\n}"
20 arrays:
21 - context: '{  :  }'
22   extent: '{ s[i0, i1] : 0 <= i0 <= 9 and 0 <= i1 <= 19 }'
23   element_type: struct s
24   element_size: 4800
25   element_is_record: 1
26 - context: '{  :  }'
27   extent: '{ s_a[s[i0, i1] -> a[i2, i3]] : 0 <= i0 <= 9 and 0 <= i1 <= 19 and 0 <=
28     i2 <= 29 and 0 <= i3 <= 39 }'
29   element_type: int
30   element_size: 4
31 statements:
32 - line: 18
33   domain: '{ S_0[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and 0 <= k <= 29 and 0
34     <= l <= 39 }'
35   body:
36     type: expression
37     expr:
38       type: call
39       name: f1
40       arguments:
41       - type: access
42         index: '{ S_0[i, j, k, l] -> s_a[s[(i), (j)] -> a[(k), (l)]] }'
43         reference: __pet_ref_0
44         read: 1
45         write: 0
46 - line: 19
47   domain: '{ S_1[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and 0 <= k <= 29 and 0
48     <= l <= 39 }'
49   body:
50     type: expression
51     expr:
52       type: call
53       name: f2
54       arguments:
55       - type: access
56         may_read: '{ S_1[i, j, k, l] -> s_a[s[i, j] -> a[k, o3]] }'
57         may_write: '{ S_1[i, j, k, l] -> s_a[s[i, j] -> a[k, o3]] }'
58         must_write: '{  }'
59         index: '{ S_1[i, j, k, l] -> s_a[s[(i), (j)] -> a[(k)]] }'
60         depth: 4
61         reference: __pet_ref_1
62         read: 1
63         write: 1
64 - line: 20
65   domain: '{ S_2[i, j, k, l] : 0 <= i <= 9 and 0 <= j <= 19 and 0 <= k <= 29 and 0
66     <= l <= 39 }'
67   body:
68     type: expression
69     expr:
70       type: call
71       name: f3
72       arguments:
73       - type: access
74         may_read: '{ S_2[i, j, k, l] -> s_a[s[i, j] -> a[o2, o3]] }'
75         may_write: '{ S_2[i, j, k, l] -> s_a[s[i, j] -> a[o2, o3]] }'
76         must_write: '{  }'
77         index: '{ S_2[i, j, k, l] -> s_a[s[(i), (j)] -> a[]] }'
78         depth: 4
79         reference: __pet_ref_2
80         read: 1
81         write: 1
82 - line: -1
83   domain: '{ S_3[] }'
84   body:
85     type: expression
86     expr:
87       type: op
88       operation: kill
89       arguments:
90       - type: access
91         killed: '{ S_3[] -> s[o0, o1] : 0 <= o0 <= 9 and 0 <= o1 <= 19 }'
92         index: '{ S_3[] -> s[] }'
93         depth: 2
94         reference: __pet_ref_3
95         kill: 1