@@ -13,38 +13,62 @@ def f(a):
1313 r0 :: short_int
1414 x :: int
1515 r1 :: bool
16- r2 :: short_int
16+ r2, r3, r4 :: native_int
17+ r5, r6, r7 :: bool
18+ r8 :: short_int
1719 y :: int
18- r3 :: short_int
20+ r9 :: short_int
1921 z :: int
20- r4 :: None
22+ r10 :: None
2123L0:
2224 r0 = 1
2325 x = r0
24- r1 = CPyTagged_IsEq(x, a)
25- if r1 goto L1 else goto L2 :: bool
26- L1:
2726 r2 = 1
28- y = r2
27+ r3 = x & r2
28+ r4 = 0
29+ r5 = r3 == r4
30+ if r5 goto L1 else goto L2 :: bool
31+ L1:
32+ r6 = x == a
33+ r1 = r6
2934 goto L3
3035L2:
31- r3 = 1
32- z = r3
36+ r7 = CPyTagged_IsEq_(x, a)
37+ r1 = r7
3338L3:
34- r4 = None
35- return r4
39+ if r1 goto L4 else goto L5 :: bool
40+ L4:
41+ r8 = 1
42+ y = r8
43+ goto L6
44+ L5:
45+ r9 = 1
46+ z = r9
47+ L6:
48+ r10 = None
49+ return r10
3650(0, 0) {a} {a}
3751(0, 1) {a} {a, x}
3852(0, 2) {a, x} {a, x}
3953(0, 3) {a, x} {a, x}
54+ (0, 4) {a, x} {a, x}
55+ (0, 5) {a, x} {a, x}
56+ (0, 6) {a, x} {a, x}
4057(1, 0) {a, x} {a, x}
41- (1, 1) {a, x} {a, x, y }
42- (1, 2) {a, x, y } {a, x, y }
58+ (1, 1) {a, x} {a, r1, x }
59+ (1, 2) {a, r1, x } {a, r1, x }
4360(2, 0) {a, x} {a, x}
44- (2, 1) {a, x} {a, x, z}
45- (2, 2) {a, x, z} {a, x, z}
46- (3, 0) {a, x, y, z} {a, x, y, z}
47- (3, 1) {a, x, y, z} {a, x, y, z}
61+ (2, 1) {a, x} {a, r1, x}
62+ (2, 2) {a, r1, x} {a, r1, x}
63+ (3, 0) {a, r1, x} {a, r1, x}
64+ (4, 0) {a, r1, x} {a, r1, x}
65+ (4, 1) {a, r1, x} {a, r1, x, y}
66+ (4, 2) {a, r1, x, y} {a, r1, x, y}
67+ (5, 0) {a, r1, x} {a, r1, x}
68+ (5, 1) {a, r1, x} {a, r1, x, z}
69+ (5, 2) {a, r1, x, z} {a, r1, x, z}
70+ (6, 0) {a, r1, x, y, z} {a, r1, x, y, z}
71+ (6, 1) {a, r1, x, y, z} {a, r1, x, y, z}
4872
4973[case testSimple_Liveness]
5074def f(a: int) -> int:
@@ -418,34 +442,58 @@ def f(a: int) -> int:
418442def f(a):
419443 a :: int
420444 r0 :: bool
421- r1 :: short_int
445+ r1, r2, r3 :: native_int
446+ r4, r5, r6 :: bool
447+ r7 :: short_int
422448 x :: int
423- r2, r3 :: short_int
449+ r8, r9 :: short_int
424450L0:
425- r0 = CPyTagged_IsEq(a, a)
426- if r0 goto L1 else goto L2 :: bool
451+ r1 = 1
452+ r2 = a & r1
453+ r3 = 0
454+ r4 = r2 == r3
455+ if r4 goto L1 else goto L2 :: bool
427456L1:
428- r1 = 2
429- x = r1
430- r2 = 1
431- a = r2
457+ r5 = a == a
458+ r0 = r5
432459 goto L3
433460L2:
434- r3 = 1
435- x = r3
461+ r6 = CPyTagged_IsEq_(a, a)
462+ r0 = r6
436463L3:
464+ if r0 goto L4 else goto L5 :: bool
465+ L4:
466+ r7 = 2
467+ x = r7
468+ r8 = 1
469+ a = r8
470+ goto L6
471+ L5:
472+ r9 = 1
473+ x = r9
474+ L6:
437475 return x
438476(0, 0) {a} {a}
439477(0, 1) {a} {a}
478+ (0, 2) {a} {a}
479+ (0, 3) {a} {a}
480+ (0, 4) {a} {a}
440481(1, 0) {a} {a}
441482(1, 1) {a} {a}
442483(1, 2) {a} {a}
443- (1, 3) {a} {}
444- (1, 4) {} {}
445484(2, 0) {a} {a}
446485(2, 1) {a} {a}
447486(2, 2) {a} {a}
448- (3, 0) {} {}
487+ (3, 0) {a} {a}
488+ (4, 0) {a} {a}
489+ (4, 1) {a} {a}
490+ (4, 2) {a} {a}
491+ (4, 3) {a} {}
492+ (4, 4) {} {}
493+ (5, 0) {a} {a}
494+ (5, 1) {a} {a}
495+ (5, 2) {a} {a}
496+ (6, 0) {} {}
449497
450498[case testLoop_BorrowedArgument]
451499def f(a: int) -> int:
0 commit comments