pet_expr: merge unary, binary and ternary types into operation type
[pet.git] / tests / while_overflow.scop
blob352f1253d302d88d009f8e78d8b3b1ce9c617e24
1 start: 74
2 end: 177
3 context: '[N] -> {  : N <= 2147483647 and N >= -2147483648 }'
4 arrays:
5 - context: '{  :  }'
6   extent: '[N] -> { __pet_test_0[t] : t >= 0 }'
7   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
8   element_type: int
9   element_size: 4
10   uniquely_defined: 1
11 - context: '{  :  }'
12   extent: '[N] -> { s[] }'
13   element_type: int
14   element_size: 4
15 statements:
16 - line: 11
17   domain: '[N] -> { S_0[] }'
18   schedule: '{ S_0[] -> [0] }'
19   body:
20     type: op
21     operation: =
22     arguments:
23     - type: access
24       relation: '[N] -> { S_0[] -> s[] }'
25       index: '[N] -> { S_0[] -> s[] }'
26       reference: __pet_ref_0
27       read: 0
28       write: 1
29     - type: int
30       value: 0
31 - line: 12
32   domain: '[N] -> { [S_1[t] -> [1]] : t >= 0 }'
33   schedule: '{ S_1[t] -> [1, t, 0] }'
34   body:
35     type: op
36     operation: =
37     arguments:
38     - type: access
39       relation: '[N] -> { S_1[t] -> __pet_test_0[t] }'
40       index: '[N] -> { S_1[t] -> __pet_test_0[(t)] }'
41       reference: __pet_ref_2
42       read: 0
43       write: 1
44     - type: call
45       name: t
46   arguments:
47   - type: access
48     relation: '[N] -> { S_1[t] -> __pet_test_0[-1 + t] : t >= 1 }'
49     index: '[N] -> { S_1[t] -> __pet_test_0[((-1 + t) : t >= 1)] }'
50     reference: __pet_ref_1
51     read: 1
52     write: 0
53 - line: 14
54   domain: '[N] -> { [S_2[t, i] -> [1]] : t >= 0 and i >= 0 and N <= 1073741823 and
55     i <= -1 + 2N }'
56   schedule: '[N] -> { S_2[t, i] -> [1, t, 1, 0, i] }'
57   body:
58     type: op
59     operation: =
60     arguments:
61     - type: access
62       relation: '[N] -> { S_2[t, i] -> s[] }'
63       index: '[N] -> { S_2[t, i] -> s[] }'
64       reference: __pet_ref_4
65       read: 0
66       write: 1
67     - type: op
68       operation: +
69       arguments:
70       - type: access
71         relation: '[N] -> { S_2[t, i] -> s[] }'
72         index: '[N] -> { S_2[t, i] -> s[] }'
73         reference: __pet_ref_5
74         read: 1
75         write: 0
76       - type: int
77         value: 1
78   arguments:
79   - type: access
80     relation: '[N] -> { S_2[t, i] -> __pet_test_0[t] }'
81     index: '[N] -> { S_2[t, i] -> __pet_test_0[(t)] }'
82     reference: __pet_ref_3
83     read: 1
84     write: 0
85 implications:
86 - satisfied: 1
87   extension: '{ __pet_test_0[t] -> __pet_test_0[t''] : t'' <= t and t'' >= 0 }'