pet_scop_gist: gist domain of schedule
[pet.git] / tests / for_while_unsigned2.scop
blob640664a4013eb90ad635880f579d5be369e6be4a
1 start: 100
2 end: 316
3 indent: "\t"
4 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
5 schedule: '{ domain: "[n] -> { S1[x1] : x1 >= 0 and x1 <= -1 + n; S_1[x1, x2] : exists
6   (e0 = floor((x2)/3): 3e0 = x2 and x1 >= 0 and x1 <= -1 + n and x2 <= 9); R[x1] :
7   x1 >= 0 and x1 <= -1 + n; S2[x1, x2, x3] : exists (e0 = floor((x2)/256), e1 = floor((x2)/3):
8   3e1 = x2 and x1 >= 0 and x1 <= -1 + n and x2 <= 9 and x3 >= 0 and 256e0 <= x2 -
9   x3 and 256e0 >= -255 + x2) }", child: { schedule: "[n] -> L_0[{ S1[x1] -> [(x1)];
10   S_1[x1, x2] -> [(x1)]; R[x1] -> [(x1)]; S2[x1, x2, x3] -> [(x1)] }]", child: { sequence:
11   [ { filter: "[n] -> { S1[x1] }" }, { filter: "[n] -> { S_1[x1, x2]; S2[x1, x2, x3]
12   }", child: { schedule: "[n] -> L_1[{ S_1[x1, x2] -> [(-x2)]; S2[x1, x2, x3] -> [(-x2)]
13   }]", child: { sequence: [ { filter: "[n] -> { S_1[x1, x2] }" }, { filter: "[n] ->
14   { S2[x1, x2, x3] }", child: { schedule: "[n] -> L_2[{ S2[x1, x2, x3] -> [(x3)] }]"
15   } } ] } } }, { filter: "[n] -> { R[x1] }" } ] } } }'
16 arrays:
17 - context: '{  :  }'
18   extent: '[n] -> { __pet_test_0[x1, x2] : exists (e0 = floor((x2)/3): 3e0 = x2 and
19     x1 >= 0 and x1 <= -1 + n and x2 <= 9) }'
20   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
21   element_type: int
22   element_size: 4
23   uniquely_defined: 1
24 - context: '{  :  }'
25   extent: '[n] -> { a[i0, i1] : i0 >= 0 and i1 <= 255 and i1 >= 0 }'
26   element_type: int
27   element_size: 4
28 - context: '{  :  }'
29   extent: '[n] -> { s[] }'
30   element_type: int
31   element_size: 4
32 statements:
33 - line: 12
34   domain: '[n] -> { S1[x1] : x1 >= 0 and x1 <= -1 + n }'
35   body:
36     type: expression
37     expr:
38       type: op
39       operation: =
40       arguments:
41       - type: access
42         index: '[n] -> { S1[x1] -> s[] }'
43         reference: __pet_ref_0
44         read: 0
45         write: 1
46       - type: call
47         name: f
48 - line: 13
49   domain: '[n] -> { [S_1[x1, x2] -> [1]] : exists (e0 = floor((x2)/3): 3e0 = x2 and
50     x1 >= 0 and x1 <= -1 + n and x2 <= 9) }'
51   body:
52     type: expression
53     expr:
54       type: op
55       operation: =
56       arguments:
57       - type: access
58         index: '[n] -> { S_1[x1, x2] -> __pet_test_0[(x1), (x2)] }'
59         reference: __pet_ref_2
60         read: 0
61         write: 1
62       - type: call
63         name: P
64         arguments:
65         - type: access
66           index: '[n] -> { S_1[x1, x2] -> [(x1)] }'
67           reference: __pet_ref_3
68           read: 1
69           write: 0
70         - type: access
71           index: '[n] -> { S_1[x1, x2] -> [(x2 - 256*floor((x2)/256))] }'
72           reference: __pet_ref_4
73           read: 1
74           write: 0
75   arguments:
76   - type: access
77     index: '[n] -> { S_1[x1, x2] -> __pet_test_0[(x1), ((3 + x2) : x2 <= 6)] }'
78     reference: __pet_ref_1
79     read: 1
80     write: 0
81 - line: 15
82   domain: '[n] -> { [S2[x1, x2, x3] -> [1]] : exists (e0 = floor((x2)/256), e1 = floor((x2)/3):
83     3e1 = x2 and x1 >= 0 and x1 <= -1 + n and x2 <= 9 and x3 >= 0 and 256e0 <= x2
84     - x3 and 256e0 >= -255 + x2) }'
85   body:
86     type: expression
87     expr:
88       type: op
89       operation: =
90       arguments:
91       - type: access
92         index: '[n] -> { S2[x1, x2, x3] -> s[] }'
93         reference: __pet_ref_6
94         read: 0
95         write: 1
96       - type: call
97         name: g
98         arguments:
99         - type: op
100           operation: +
101           arguments:
102           - type: access
103             index: '[n] -> { S2[x1, x2, x3] -> s[] }'
104             reference: __pet_ref_7
105             read: 1
106             write: 0
107           - type: access
108             index: '[n] -> { S2[x1, x2, x3] -> a[(x2 - 256*floor((x2)/256)), (255
109               - x2 + 256*floor((x2)/256))] }'
110             reference: __pet_ref_8
111             read: 1
112             write: 0
113   arguments:
114   - type: access
115     index: '[n] -> { S2[x1, x2, x3] -> __pet_test_0[(x1), (x2)] }'
116     reference: __pet_ref_5
117     read: 1
118     write: 0
119 - line: 17
120   domain: '[n] -> { R[x1] : x1 >= 0 and x1 <= -1 + n }'
121   body:
122     type: expression
123     expr:
124       type: call
125       name: h
126       arguments:
127       - type: access
128         index: '[n] -> { R[x1] -> s[] }'
129         reference: __pet_ref_9
130         read: 1
131         write: 0
132 implications:
133 - satisfied: 1
134   extension: '[n] -> { __pet_test_0[x1, x2] -> __pet_test_0[x1, x2''] : exists (e0
135     = floor((x2'')/3): 3e0 = x2'' and x2'' >= x2 and x1 >= 0 and x1 <= -1 + n and
136     x2'' <= 9) }'