| [case testIntNeq] |
| def f(x: int, y: int) -> bool: |
| return x != y |
| [out] |
| def f(x, y): |
| x, y :: int |
| r0 :: native_int |
| r1, r2 :: bit |
| r3 :: bool |
| r4, r5 :: bit |
| L0: |
| r0 = x & 1 |
| r1 = r0 == 0 |
| if r1 goto L1 else goto L2 :: bool |
| L1: |
| r2 = x != y |
| r3 = r2 |
| goto L3 |
| L2: |
| r4 = CPyTagged_IsEq_(x, y) |
| r5 = r4 ^ 1 |
| r3 = r5 |
| L3: |
| return r3 |
| |
| [case testShortIntComparisons] |
| def f(x: int) -> int: |
| if x == 3: |
| return 1 |
| elif x != 4: |
| return 2 |
| elif 5 == x: |
| return 3 |
| elif 6 != x: |
| return 4 |
| elif x < 4: |
| return 5 |
| return 6 |
| [out] |
| def f(x): |
| x :: int |
| r0, r1, r2, r3 :: bit |
| r4 :: native_int |
| r5, r6, r7 :: bit |
| L0: |
| r0 = x == 6 |
| if r0 goto L1 else goto L2 :: bool |
| L1: |
| return 2 |
| L2: |
| r1 = x != 8 |
| if r1 goto L3 else goto L4 :: bool |
| L3: |
| return 4 |
| L4: |
| r2 = 10 == x |
| if r2 goto L5 else goto L6 :: bool |
| L5: |
| return 6 |
| L6: |
| r3 = 12 != x |
| if r3 goto L7 else goto L8 :: bool |
| L7: |
| return 8 |
| L8: |
| r4 = x & 1 |
| r5 = r4 != 0 |
| if r5 goto L9 else goto L10 :: bool |
| L9: |
| r6 = CPyTagged_IsLt_(x, 8) |
| if r6 goto L11 else goto L12 :: bool |
| L10: |
| r7 = x < 8 :: signed |
| if r7 goto L11 else goto L12 :: bool |
| L11: |
| return 10 |
| L12: |
| L13: |
| L14: |
| L15: |
| L16: |
| return 12 |
| |
| [case testIntMin] |
| def f(x: int, y: int) -> int: |
| return min(x, y) |
| [out] |
| def f(x, y): |
| x, y :: int |
| r0 :: native_int |
| r1 :: bit |
| r2 :: native_int |
| r3, r4, r5 :: bit |
| r6 :: bool |
| r7 :: bit |
| r8 :: int |
| L0: |
| r0 = y & 1 |
| r1 = r0 == 0 |
| r2 = x & 1 |
| r3 = r2 == 0 |
| r4 = r1 & r3 |
| if r4 goto L1 else goto L2 :: bool |
| L1: |
| r5 = y < x :: signed |
| r6 = r5 |
| goto L3 |
| L2: |
| r7 = CPyTagged_IsLt_(y, x) |
| r6 = r7 |
| L3: |
| if r6 goto L4 else goto L5 :: bool |
| L4: |
| r8 = y |
| goto L6 |
| L5: |
| r8 = x |
| L6: |
| return r8 |