pet_expr: merge unary, binary and ternary types into operation type
[pet.git] / tests / propagate.scop
blob6b800c3aa0865938599720e0d8381905c223d8df
1 start: 66
2 end: 204
3 context: '[N] -> {  : N <= 2147483647 and N >= 0 }'
4 arrays:
5 - context: '[N] -> {  : N >= 0 }'
6   extent: '[N] -> { a[i0, i1] : i1 >= 0 and i0 >= 0 and i1 <= -1 + N }'
7   element_type: int
8   element_size: 4
9 - context: '{  :  }'
10   extent: '[N] -> { ind[] }'
11   element_type: int
12   element_size: 4
13 statements:
14 - line: 9
15   domain: '[N] -> { S_0[i, j] : j >= i and i >= 0 and j <= -1 + N }'
16   schedule: '[N] -> { S_0[i, j] -> [0, i, j, 0] }'
17   body:
18     type: op
19     operation: =
20     arguments:
21     - type: access
22       relation: '[N] -> { S_0[i, j] -> ind[] }'
23       index: '[N] -> { S_0[i, j] -> ind[] }'
24       reference: __pet_ref_0
25       read: 0
26       write: 1
27     - type: op
28       operation: '?:'
29       arguments:
30       - type: access
31         relation: '[N] -> { S_0[i, j] -> [1] : i >= 1; S_0[0, j] -> [0] }'
32         index: '[N] -> { S_0[i, j] -> [((1) : i >= 1; (0) : i = 0)] }'
33         reference: __pet_ref_1
34         read: 1
35         write: 0
36       - type: op
37         operation: '-'
38         arguments:
39         - type: access
40           relation: '[N] -> { S_0[i, j] -> [i] }'
41           index: '[N] -> { S_0[i, j] -> [(i)] }'
42           reference: __pet_ref_2
43           read: 1
44           write: 0
45         - type: int
46           value: 1
47       - type: access
48         relation: '[N] -> { S_0[i, j] -> [i] }'
49         index: '[N] -> { S_0[i, j] -> [(i)] }'
50         reference: __pet_ref_3
51         read: 1
52         write: 0
53 - line: 10
54   domain: '[N] -> { S_1[i, j] : j >= i and i >= 0 and j <= -1 + N }'
55   schedule: '[N] -> { S_1[i, j] -> [0, i, j, 1] }'
56   body:
57     type: op
58     operation: =
59     arguments:
60     - type: access
61       relation: '[N] -> { S_1[i, j] -> a[i, j] }'
62       index: '[N] -> { S_1[i, j] -> a[(i), (j)] }'
63       reference: __pet_ref_4
64       read: 0
65       write: 1
66     - type: access
67       relation: '[N] -> { S_1[i, j] -> a[-1 + i, 0] : i >= 1; S_1[0, j] -> a[0, 0]
68         }'
69       index: '[N] -> { S_1[i, j] -> a[((-1 + i) : i >= 1; (0) : i = 0), (0)] }'
70       reference: __pet_ref_5
71       read: 1
72       write: 0