Ton
78 строк · 2.5 Кб
1#pragma allow-post-modification;
2
3forall X -> tuple unsafe_tuple(X x) asm "NOP";
4
5(int, int) inc(int x, int y) {
6return (x + y, y * 10);
7}
8
9(int, int, int, int, int, int, int) test_return(int x) method_id(11) {
10return (x, x~inc(x / 20), x, x = x * 2, x, x += 1, x);
11}
12
13(int, int, int, int, int, int, int) test_assign(int x) method_id(12) {
14(int x1, int x2, int x3, int x4, int x5, int x6, int x7) = (x, x~inc(x / 20), x, x = x * 2, x, x += 1, x);
15return (x1, x2, x3, x4, x5, x6, x7);
16}
17
18tuple test_tuple(int x) method_id(13) {
19tuple t = unsafe_tuple([x, x~inc(x / 20), x, x = x * 2, x, x += 1, x]);
20return t;
21}
22
23(int, int, int, int, int, int, int) test_tuple_assign(int x) method_id(14) {
24[int x1, int x2, int x3, int x4, int x5, int x6, int x7] = [x, x~inc(x / 20), x, x = x * 2, x, x += 1, x];
25return (x1, x2, x3, x4, x5, x6, x7);
26}
27
28(int, int, int, int, int, int, int) foo1(int x1, int x2, int x3, int x4, int x5, int x6, int x7) {
29return (x1, x2, x3, x4, x5, x6, x7);
30}
31
32(int, int, int, int, int, int, int) test_call_1(int x) method_id(15) {
33return foo1(x, x~inc(x / 20), x, x = x * 2, x, x += 1, x);
34}
35
36(int, int, int, int, int, int, int) foo2(int x1, int x2, (int, int, int, int) x3456, int x7) {
37(int x3, int x4, int x5, int x6) = x3456;
38return (x1, x2, x3, x4, x5, x6, x7);
39}
40
41(int, int, int, int, int, int, int) test_call_2(int x) method_id(16) {
42return foo2(x, x~inc(x / 20), (x, x = x * 2, x, x += 1), x);
43}
44
45(int, int, int, int, int, int, int) asm_func(int x1, int x2, int x3, int x4, int x5, int x6, int x7) asm
46(x4 x5 x6 x7 x1 x2 x3 -> 0 1 2 3 4 5 6) "NOP";
47
48(int, int, int, int, int, int, int) test_call_asm_old(int x) method_id(17) {
49return asm_func(x, x += 1, x, x, x~inc(x / 20), x, x = x * 2);
50}
51
52#pragma compute-asm-ltr;
53
54(int, int, int, int, int, int, int) test_call_asm_new(int x) method_id(18) {
55return asm_func(x, x~inc(x / 20), x, x = x * 2, x, x += 1, x);
56}
57
58global int xx;
59(int, int, int, int, int, int, int) test_global(int x) method_id(19) {
60xx = x;
61return (xx, xx~inc(xx / 20), xx, xx = xx * 2, xx, xx += 1, xx);
62}
63
64() main() {
65}
66
67{-
68method_id | in | out
69TESTCASE | 11 | 100 | 100 50 105 210 210 211 211
70TESTCASE | 12 | 100 | 100 50 105 210 210 211 211
71TESTCASE | 13 | 100 | [ 100 50 105 210 210 211 211 ]
72TESTCASE | 14 | 100 | 100 50 105 210 210 211 211
73TESTCASE | 15 | 100 | 100 50 105 210 210 211 211
74TESTCASE | 16 | 100 | 100 50 105 210 210 211 211
75TESTCASE | 17 | 100 | 100 50 105 210 210 211 211
76TESTCASE | 18 | 100 | 210 210 211 211 100 50 105
77TESTCASE | 19 | 100 | 100 50 105 210 210 211 211
78-}
79