package float32 file_number 0 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 2 "/inputs/subtree/xls/dslx/stdlib/abs_diff.x" file_number 3 "/inputs/subtree/xls/dslx/stdlib/float32.x" top fn __float32__fma(a: (bits[1], bits[8], bits[23]) id=517, b: (bits[1], bits[8], bits[23]) id=518, c: (bits[1], bits[8], bits[23]) id=519) -> (bits[1], bits[8], bits[23]) { a_bexp__1: bits[8] = tuple_index(a, index=1, id=1527, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,369,56)]) literal.1529: bits[8] = literal(value=0, id=1529, pos=[(0,3642,30), (3,369,56)]) b_bexp__1: bits[8] = tuple_index(b, index=1, id=1528, pos=[(0,3444,45), (0,3570,29), (0,3632,25), (3,369,56)]) cancel__1: bits[1] = literal(value=0, id=1526, pos=[(0,3692,17), (3,369,56)]) bnot__1: bits[1] = literal(value=1, id=1530, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,369,56)]) a_fraction__1: bits[23] = tuple_index(a, index=2, id=1531, pos=[(0,3430,33), (0,3570,29), (0,3632,25), (3,369,56)]) b_fraction__1: bits[23] = tuple_index(b, index=2, id=1532, pos=[(0,3431,33), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1535: bits[1] = eq(a_bexp__1, literal.1529, id=1535, pos=[(0,804,5), (0,3427,40), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1536: bits[1] = eq(b_bexp__1, literal.1529, id=1536, pos=[(0,804,5), (0,3427,67), (0,3570,29), (0,3632,25), (3,369,56)]) concat.1533: bits[9] = concat(cancel__1, a_bexp__1, id=1533, pos=[(0,3570,29), (0,3632,25), (3,369,56)]) concat.1534: bits[9] = concat(cancel__1, b_bexp__1, id=1534, pos=[(0,3570,29), (0,3632,25), (3,369,56)]) a_significand__1: bits[24] = concat(bnot__1, a_fraction__1, id=1537, pos=[(0,3430,24), (0,3570,29), (0,3632,25), (3,369,56)]) b_significand__1: bits[24] = concat(bnot__1, b_fraction__1, id=1538, pos=[(0,3431,24), (0,3570,29), (0,3632,25), (3,369,56)]) nor.1835: bits[1] = nor(eq.1535, eq.1536, id=1835, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,369,56)]) add.1539: bits[9] = add(concat.1533, concat.1534, id=1539, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,369,56)]) umul.1541: bits[48] = umul(a_significand__1, b_significand__1, id=1541, pos=[(1,224,5), (0,3435,61), (0,3570,29), (0,3632,25), (3,369,56)]) sign_ext.1791: bits[48] = sign_ext(nor.1835, new_bit_count=48, id=1791, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,369,56)]) max_exp: bits[8] = literal(value=255, id=1543, pos=[(0,3736,32), (3,369,56)]) literal.1544: bits[23] = literal(value=0, id=1544, pos=[(0,3732,55), (3,369,56)]) concat.1545: bits[10] = concat(cancel__1, add.1539, id=1545, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,369,56)]) literal.1546: bits[10] = literal(value=897, id=1546, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,369,56)]) full_product: bits[48] = and(umul.1541, sign_ext.1791, id=1792, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1548: bits[1] = eq(a_bexp__1, max_exp, id=1548, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1549: bits[1] = eq(a_fraction__1, literal.1544, id=1549, pos=[(0,96,44), (0,3477,31), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1550: bits[1] = eq(b_bexp__1, max_exp, id=1550, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,369,56)]) eq.1551: bits[1] = eq(b_fraction__1, literal.1544, id=1551, pos=[(0,96,44), (0,3477,44), (0,3570,29), (0,3632,25), (3,369,56)]) exp: bits[10] = add(concat.1545, literal.1546, id=1552, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,369,56)]) sign_ext.1794: bits[10] = sign_ext(nor.1835, new_bit_count=10, id=1794, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,369,56)]) literal.1554: bits[9] = literal(value=0, id=1554, pos=[(0,3652,64), (3,369,56)]) in_upper_binade: bits[1] = bit_slice(full_product, start=47, width=1, id=1555, pos=[(1,357,61), (0,3459,34), (0,3570,29), (0,3632,25), (3,369,56)]) and.1556: bits[1] = and(eq.1548, eq.1549, id=1556, pos=[(0,96,6), (0,3477,31), (0,3570,29), (0,3632,25), (3,369,56)]) and.1557: bits[1] = and(eq.1550, eq.1551, id=1557, pos=[(0,96,6), (0,3477,44), (0,3570,29), (0,3632,25), (3,369,56)]) exp__1: bits[10] = and(exp, sign_ext.1794, id=1795, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,369,56)]) concat.1559: bits[10] = concat(literal.1554, in_upper_binade, id=1559, pos=[(0,3570,29), (0,3632,25), (3,369,56)]) has_inf_arg: bits[1] = or(and.1556, and.1557, id=1560, pos=[(0,3484,28), (0,3570,29), (0,3632,25), (3,369,56)]) result_exp__1: bits[10] = add(exp__1, concat.1559, id=1561, pos=[(0,3464,14), (0,3570,29), (0,3632,25), (3,369,56)]) literal.1562: bits[10] = literal(value=511, id=1562, pos=[(0,3478,62), (0,3570,29), (0,3632,25), (3,369,56)]) result_exp__3: bits[10] = sel(has_inf_arg, cases=[result_exp__1, literal.1562], id=1566, pos=[(0,3478,21), (0,3570,29), (0,3632,25), (3,369,56)]) literal.1553: bits[10] = literal(value=0, id=1553, pos=[(0,3726,37), (3,369,56)]) is_subnormal: bits[1] = sle(result_exp__3, literal.1553, id=1571, pos=[(0,3576,34), (0,3632,25), (3,369,56)]) not.1564: bits[1] = not(eq.1548, id=1564, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,369,56)]) not.1565: bits[1] = not(eq.1550, id=1565, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,369,56)]) has_0_arg: bits[1] = or(eq.1535, eq.1536, id=1540, pos=[(0,3427,40), (0,3570,29), (0,3632,25), (3,369,56)]) not.1796: bits[1] = not(is_subnormal, id=1796, pos=[(0,3577,21), (0,3632,25), (3,369,56)]) nor.1568: bits[1] = nor(not.1564, eq.1549, id=1568, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,369,56)]) nor.1569: bits[1] = nor(not.1565, eq.1551, id=1569, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,369,56)]) and.1570: bits[1] = and(has_0_arg, has_inf_arg, id=1570, pos=[(0,3485,40), (0,3570,29), (0,3632,25), (3,369,56)]) bit_slice.1572: bits[9] = bit_slice(result_exp__3, start=0, width=9, id=1572, pos=[(0,3632,25), (3,369,56)]) sign_ext.1797: bits[9] = sign_ext(not.1796, new_bit_count=9, id=1797, pos=[(0,3577,21), (0,3632,25), (3,369,56)]) is_result_nan__1: bits[1] = or(nor.1568, nor.1569, and.1570, id=1575, pos=[(0,3485,24), (0,3570,29), (0,3632,25), (3,369,56)]) result_exp: bits[9] = and(bit_slice.1572, sign_ext.1797, id=1798, pos=[(0,3577,21), (0,3632,25), (3,369,56)]) literal.1577: bits[9] = literal(value=511, id=1577, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) c_bexp__2: bits[8] = tuple_index(c, index=1, id=1563, pos=[(0,3635,44), (3,369,56)]) ab_bexp__2: bits[9] = sel(is_result_nan__1, cases=[result_exp, literal.1577], id=1580, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) literal.1775: bits[2] = literal(value=1, id=1775, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) bnot__2: bits[8] = not(c_bexp__2, id=1578, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,369,56)]) ab_bexp_extended__1: bits[10] = concat(cancel__1, ab_bexp__2, id=1583, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) bnot_extended__2: bits[10] = concat(literal.1775, bnot__2, id=1776, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) full_result: bits[10] = add(ab_bexp_extended__1, bnot_extended__2, id=1587, pos=[(1,1119,45), (2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) overflow_detected: bits[1] = bit_slice(full_result, start=9, width=1, id=1589, pos=[(1,1121,49), (2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) bit_slice.1574: bits[47] = bit_slice(full_product, start=0, width=47, id=1574, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,369,56)]) nc: bits[1] = not(overflow_detected, id=1593, pos=[(2,92,19), (0,3005,44), (0,3635,33), (3,369,56)]) concat.1579: bits[48] = concat(bit_slice.1574, cancel__1, id=1579, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,369,56)]) not.1799: bits[1] = not(has_inf_arg, id=1799, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,369,56)]) narrowed_result: bits[9] = bit_slice(full_result, start=0, width=9, id=1599, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,369,56)]) ab_bexpor_mask__2: bits[9] = sign_ext(nc, new_bit_count=9, id=1600, pos=[(2,94,32), (0,3005,44), (0,3635,33), (3,369,56)]) result_fraction__1: bits[48] = sel(in_upper_binade, cases=[concat.1579, full_product], id=1582, pos=[(0,3460,30), (0,3570,29), (0,3632,25), (3,369,56)]) sign_ext.1800: bits[48] = sign_ext(not.1799, new_bit_count=48, id=1800, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,369,56)]) neg.1586: bits[9] = neg(bit_slice.1572, id=1586, pos=[(0,3579,33), (0,3632,25), (3,369,56)]) sign_ext.1802: bits[9] = sign_ext(is_subnormal, new_bit_count=9, id=1802) result: bits[9] = xor(narrowed_result, ab_bexpor_mask__2, id=1604, pos=[(2,95,18), (0,3005,44), (0,3635,33), (3,369,56)]) concat.1605: bits[9] = concat(literal.1529, overflow_detected, id=1605, pos=[(0,3006,68), (0,3635,33), (3,369,56)]) result_fraction__2: bits[48] = and(result_fraction__1, sign_ext.1800, id=1801, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,369,56)]) and.1803: bits[9] = and(neg.1586, sign_ext.1802, id=1803) exp_difference: bits[9] = add(result, concat.1605, id=1608, pos=[(2,54,7), (0,3006,68), (0,3635,33), (3,369,56)]) c_fraction__2: bits[23] = tuple_index(c, index=2, id=1590, pos=[(0,3641,18), (3,369,56)]) ne.1832: bits[1] = ne(c_bexp__2, literal.1529, id=1832, pos=[(0,3642,17), (3,369,56)]) sign_ext.1807: bits[9] = sign_ext(overflow_detected, new_bit_count=9, id=1807, pos=[(0,3653,19), (3,369,56)]) result_fraction__5: bits[48] = shrl(result_fraction__2, and.1803, id=1789) literal.1592: bits[48] = literal(value=211106232532992, id=1592, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) literal.1612: bits[73] = literal(value=0x1ff_ffff_ffff_ffff_ffff, id=1612, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) rshift_ab: bits[9] = and(exp_difference, ab_bexpor_mask__2, id=1806, pos=[(0,3652,20), (3,369,56)]) concat.1595: bits[24] = concat(bnot__1, c_fraction__2, id=1595, pos=[(0,3642,17), (3,369,56)]) sign_ext.1810: bits[24] = sign_ext(ne.1832, new_bit_count=24, id=1810, pos=[(0,3642,17), (3,369,56)]) rshift_c: bits[9] = and(exp_difference, sign_ext.1807, id=1808, pos=[(0,3653,19), (3,369,56)]) ab_fraction__2: bits[48] = sel(is_result_nan__1, cases=[result_fraction__5, literal.1592], id=1597, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) literal.1598: bits[25] = literal(value=0, id=1598, pos=[(0,3647,11), (3,369,56)]) shll.1618: bits[73] = shll(literal.1612, rshift_ab, id=1618, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) wide_c__3: bits[24] = and(concat.1595, sign_ext.1810, id=1811, pos=[(0,3642,17), (3,369,56)]) literal.1602: bits[49] = literal(value=0, id=1602, pos=[(0,3648,17), (3,369,56)]) not.1850: bits[23] = not(c_fraction__2, id=1850, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) shll.1620: bits[73] = shll(literal.1612, rshift_c, id=1620, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1625, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,369,56)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1626, pos=[(0,3467,33), (0,3570,29), (0,3632,25), (3,369,56)]) wide_ab: bits[73] = concat(ab_fraction__2, literal.1598, id=1603, pos=[(0,3647,11), (3,369,56)]) not.1610: bits[48] = not(ab_fraction__2, id=1610, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) bit_slice.1622: bits[48] = bit_slice(shll.1618, start=25, width=48, id=1622, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) wide_c__2: bits[73] = concat(wide_c__3, literal.1602, id=1606, pos=[(0,3648,17), (3,369,56)]) concat.1853: bits[24] = concat(cancel__1, not.1850, id=1853, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) not.1838: bits[24] = not(sign_ext.1810, id=1838, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) bit_slice.1624: bits[24] = bit_slice(shll.1620, start=49, width=24, id=1624, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1631, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,369,56)]) shifted_ab: bits[73] = shrl(wide_ab, rshift_ab, id=1627, pos=[(0,3654,21), (3,369,56)]) nor.1628: bits[48] = nor(not.1610, bit_slice.1622, id=1628, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) literal.1542: bits[48] = literal(value=0, id=1542, pos=[(0,3435,23), (0,3570,29), (0,3632,25), (3,369,56)]) shifted_c: bits[73] = shrl(wide_c__2, rshift_c, id=1629, pos=[(0,3655,20), (3,369,56)]) nor.1839: bits[24] = nor(concat.1853, not.1838, bit_slice.1624, id=1839, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) literal.1596: bits[24] = literal(value=0, id=1596, pos=[(0,3642,17), (3,369,56)]) not.1636: bits[1] = not(result_sign__3, id=1636, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) bit_slice.1632: bits[1] = bit_slice(shifted_ab, start=0, width=1, id=1632, pos=[(0,3660,22), (3,369,56)]) ne.1633: bits[1] = ne(nor.1628, literal.1542, id=1633, pos=[(1,1501,17), (1,1528,22), (0,3656,38), (3,369,56)]) bit_slice.1634: bits[1] = bit_slice(shifted_c, start=0, width=1, id=1634, pos=[(0,3661,21), (3,369,56)]) ne.1635: bits[1] = ne(nor.1839, literal.1596, id=1635, pos=[(1,1501,17), (1,1528,22), (0,3657,37), (3,369,56)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1642, pos=[(0,3637,55), (3,369,56)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1636, id=1641, pos=[(0,3584,4), (0,3632,25), (3,369,56)]) bit_slice.1637: bits[72] = bit_slice(shifted_ab, start=1, width=72, id=1637, pos=[(0,3660,22), (3,369,56)]) or.1638: bits[1] = or(bit_slice.1632, ne.1633, id=1638, pos=[(0,3660,22), (3,369,56)]) bit_slice.1639: bits[72] = bit_slice(shifted_c, start=1, width=72, id=1639, pos=[(0,3661,21), (3,369,56)]) or.1640: bits[1] = or(bit_slice.1634, ne.1635, id=1640, pos=[(0,3661,21), (3,369,56)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1764, pos=[(0,3637,8), (3,369,56)]) shifted_ab__1_squeezed: bits[74] = concat(cancel__1, bit_slice.1637, or.1638, id=1866, pos=[(3,369,56)]) shifted_c__1_squeezed: bits[74] = concat(cancel__1, bit_slice.1639, or.1640, id=1869, pos=[(3,369,56)]) xor.1649: bits[1] = xor(ab_sign__2, greater_sign, id=1649, pos=[(0,3664,26), (3,369,56)]) neg.1647: bits[74] = neg(shifted_ab__1_squeezed, id=1647, pos=[(0,3664,50), (3,369,56)]) xor.1652: bits[1] = xor(c_sign__2, greater_sign, id=1652, pos=[(0,3665,24), (3,369,56)]) neg.1648: bits[74] = neg(shifted_c__1_squeezed, id=1648, pos=[(0,3665,48), (3,369,56)]) shifted_ab__2_squeezed: bits[74] = sel(xor.1649, cases=[shifted_ab__1_squeezed, neg.1647], id=1859, pos=[(0,3664,21), (3,369,56)]) shifted_c__2_squeezed: bits[74] = sel(xor.1652, cases=[shifted_c__1_squeezed, neg.1648], id=1863, pos=[(0,3665,20), (3,369,56)]) shifted_ab__2: bits[75] = sign_ext(shifted_ab__2_squeezed, new_bit_count=75, id=1860, pos=[(0,3664,21), (3,369,56)]) shifted_c__2: bits[75] = sign_ext(shifted_c__2_squeezed, new_bit_count=75, id=1864, pos=[(0,3665,20), (3,369,56)]) sum_fraction: bits[75] = add(shifted_ab__2, shifted_c__2, id=1657, pos=[(0,3668,23), (3,369,56)]) bit_slice.1658: bits[74] = bit_slice(sum_fraction, start=0, width=74, id=1658, pos=[(0,3677,24), (3,369,56)]) bit_slice.1659: bits[1] = bit_slice(sum_fraction, start=74, width=1, id=1659, pos=[(0,3670,47), (3,369,56)]) neg.1660: bits[74] = neg(bit_slice.1658, id=1660, pos=[(0,3678,27), (3,369,56)]) abs_fraction__2: bits[74] = sel(bit_slice.1659, cases=[bit_slice.1658, neg.1660], id=1661, pos=[(0,3677,24), (3,369,56)]) reverse.1662: bits[74] = reverse(abs_fraction__2, id=1662, pos=[(0,3691,28), (3,369,56)]) one_hot.1663: bits[75] = one_hot(reverse.1662, lsb_prio=true, id=1663, pos=[(0,3691,28), (3,369,56)]) encode.1664: bits[7] = encode(one_hot.1663, id=1664, pos=[(0,3691,28), (3,369,56)]) bit_slice.1665: bits[6] = bit_slice(encode.1664, start=1, width=6, id=1665, pos=[(0,3692,17), (3,369,56)]) cancel__2: bits[1] = or_reduce(bit_slice.1665, id=1666, pos=[(0,3692,17), (3,369,56)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=73, width=1, id=1667, pos=[(0,3685,32), (3,369,56)]) concat.1668: bits[8] = concat(cancel__1, encode.1664, id=1668, pos=[(0,3691,28), (3,369,56)]) not.1669: bits[1] = not(cancel__2, id=1669, pos=[(3,369,56)]) not.1670: bits[1] = not(carry_bit__2, id=1670, pos=[(3,369,56)]) bit_slice.1671: bits[1] = bit_slice(abs_fraction__2, start=1, width=1, id=1671, pos=[(0,3687,25), (3,369,56)]) bit_slice.1672: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1672, pos=[(0,3687,55), (3,369,56)]) add.1673: bits[8] = add(concat.1668, max_exp, id=1673, pos=[(0,3694,26), (3,369,56)]) nor.1674: bits[1] = nor(carry_bit__2, cancel__2, id=1674, pos=[(3,369,56)]) nor.1675: bits[1] = nor(carry_bit__2, not.1669, id=1675, pos=[(3,369,56)]) nor.1676: bits[1] = nor(not.1670, cancel__2, id=1676, pos=[(3,369,56)]) bit_slice.1677: bits[72] = bit_slice(abs_fraction__2, start=2, width=72, id=1677, pos=[(0,3687,25), (3,369,56)]) carry_fraction__1: bits[1] = or(bit_slice.1671, bit_slice.1672, id=1678, pos=[(0,3687,25), (3,369,56)]) bit_slice.1679: bits[73] = bit_slice(abs_fraction__2, start=0, width=73, id=1679, pos=[(3,369,56)]) sign_ext.1680: bits[74] = sign_ext(add.1673, new_bit_count=74, id=1680, pos=[(0,3694,26), (3,369,56)]) concat.1681: bits[3] = concat(nor.1674, nor.1675, nor.1676, id=1681, pos=[(3,369,56)]) carry_fraction__2: bits[73] = concat(bit_slice.1677, carry_fraction__1, id=1682, pos=[(0,3687,25), (3,369,56)]) cancel_fraction__2: bits[73] = shll(bit_slice.1679, sign_ext.1680, id=1683, pos=[(3,369,56)]) literal.1684: bits[73] = literal(value=0x0, id=1684, pos=[(0,3699,39), (3,369,56)]) shifted_fraction: bits[73] = priority_sel(concat.1681, cases=[carry_fraction__2, cancel_fraction__2, bit_slice.1679], default=literal.1684, id=1685, pos=[(3,369,56)]) normal_chunk: bits[49] = bit_slice(shifted_fraction, start=0, width=49, id=1686, pos=[(0,3706,39), (3,369,56)]) half_of_extra: bits[49] = literal(value=281474976710656, id=1687, pos=[(0,3709,24), (3,369,56)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=48, width=2, id=1688, pos=[(0,3708,24), (3,369,56)]) literal.1689: bits[2] = literal(value=3, id=1689, pos=[(0,3711,63), (3,369,56)]) bit_slice.1694: bits[24] = bit_slice(shifted_fraction, start=49, width=24, id=1694, pos=[(0,3712,27), (3,369,56)]) ugt.1692: bits[1] = ugt(normal_chunk, half_of_extra, id=1692, pos=[(0,3711,12), (3,369,56)]) eq.1693: bits[1] = eq(half_way_chunk, literal.1689, id=1693, pos=[(0,3711,45), (3,369,56)]) concat.1697: bits[25] = concat(cancel__1, bit_slice.1694, id=1697, pos=[(0,3712,27), (3,369,56)]) literal.1833: bits[25] = literal(value=1, id=1833, pos=[(0,3713,8), (3,369,56)]) or.1696: bits[1] = or(ugt.1692, eq.1693, id=1696, pos=[(0,3711,12), (3,369,56)]) add.1823: bits[25] = add(concat.1697, literal.1833, id=1823, pos=[(0,3713,8), (3,369,56)]) literal.1834: bits[7] = literal(value=0, id=1834, pos=[(0,3724,15), (3,369,56)]) concat.1846: bits[7] = concat(cancel__1, bit_slice.1665, id=1846, pos=[(0,3724,15), (3,369,56)]) bit_slice.1847: bits[1] = bit_slice(encode.1664, start=0, width=1, id=1847, pos=[(0,3724,15), (3,369,56)]) concat.1567: bits[9] = concat(cancel__1, c_bexp__2, id=1567, pos=[(3,369,56)]) rounded_fraction__1: bits[25] = sel(or.1696, cases=[concat.1697, add.1823], id=1699, pos=[(0,3712,27), (3,369,56)]) sub.1828: bits[7] = sub(literal.1834, concat.1846, id=1828, pos=[(0,3724,15), (3,369,56)]) not.1830: bits[1] = not(bit_slice.1847, id=1830, pos=[(0,3724,15), (3,369,56)]) greater_exp: bits[9] = sel(overflow_detected, cases=[concat.1567, ab_bexp__2], id=1765, pos=[(0,3637,8), (3,369,56)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=24, width=1, id=1702, pos=[(0,3719,41), (3,369,56)]) literal.1706: bits[75] = literal(value=0x0, id=1706, pos=[(0,3669,43), (3,369,56)]) concat.1831: bits[8] = concat(sub.1828, not.1830, id=1831, pos=[(0,3724,15), (3,369,56)]) concat.1704: bits[10] = concat(cancel__1, greater_exp, id=1704, pos=[(3,369,56)]) concat.1705: bits[10] = concat(literal.1554, rounding_carry, id=1705, pos=[(3,369,56)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1706, id=1709, pos=[(0,3669,27), (3,369,56)]) bexp_associative_element__1: bits[10] = sign_ext(concat.1831, new_bit_count=10, id=1707, pos=[(0,3724,15), (3,369,56)]) bexp_associative_element__4: bits[10] = add(concat.1704, concat.1705, id=1708, pos=[(0,3724,15), (3,369,56)]) not.1812: bits[1] = not(fraction_is_zero, id=1812, pos=[(0,3726,15), (3,369,56)]) bexp__1: bits[10] = add(bexp_associative_element__1, bexp_associative_element__4, id=1710, pos=[(0,3724,15), (3,369,56)]) sign_ext.1813: bits[10] = sign_ext(not.1812, new_bit_count=10, id=1813, pos=[(0,3726,15), (3,369,56)]) bexp__2: bits[10] = and(bexp__1, sign_ext.1813, id=1814, pos=[(0,3726,15), (3,369,56)]) bit_slice.1720: bits[1] = bit_slice(bexp__2, start=9, width=1, id=1720, pos=[(0,3727,18), (3,369,56)]) not.1815: bits[1] = not(bit_slice.1720, id=1815, pos=[(0,3727,15), (3,369,56)]) bit_slice.1721: bits[9] = bit_slice(bexp__2, start=0, width=9, id=1721, pos=[(3,369,56)]) sign_ext.1816: bits[9] = sign_ext(not.1815, new_bit_count=9, id=1816, pos=[(0,3727,15), (3,369,56)]) eq.1711: bits[1] = eq(ab_bexp__2, literal.1577, id=1711, pos=[(0,3552,5), (0,3751,38), (3,369,56)]) eq.1712: bits[1] = eq(ab_fraction__2, literal.1542, id=1712, pos=[(0,3546,46), (0,3741,39), (3,369,56)]) eq.1713: bits[1] = eq(c_bexp__2, max_exp, id=1713, pos=[(0,71,6), (0,3751,51), (3,369,56)]) eq.1714: bits[1] = eq(c_fraction__2, literal.1544, id=1714, pos=[(0,96,44), (0,3741,52), (3,369,56)]) bexp__6: bits[9] = and(bit_slice.1721, sign_ext.1816, id=1817, pos=[(0,3727,15), (3,369,56)]) nand.1716: bits[1] = nand(eq.1711, eq.1712, id=1716, pos=[(0,3745,37), (3,369,56)]) not.1717: bits[1] = not(eq.1713, id=1717, pos=[(0,3745,72), (3,369,56)]) not.1718: bits[1] = not(eq.1714, id=1718, pos=[(0,3745,72), (3,369,56)]) and.1719: bits[1] = and(eq.1711, eq.1712, id=1719, pos=[(0,3546,5), (0,3741,39), (3,369,56)]) and.1733: bits[1] = and(eq.1713, eq.1714, id=1733, pos=[(0,96,6), (0,3741,52), (3,369,56)]) bit_slice.1734: bits[8] = bit_slice(bexp__6, start=0, width=8, id=1734, pos=[(3,369,56)]) nor.1722: bits[1] = nor(nand.1716, ab_sign__2, id=1722, pos=[(0,3745,37), (3,369,56)]) nor.1723: bits[1] = nor(not.1717, not.1718, c_sign__2, id=1723, pos=[(0,3745,72), (3,369,56)]) and.1724: bits[1] = and(and.1719, ab_sign__2, id=1724, pos=[(0,3750,37), (3,369,56)]) and.1725: bits[1] = and(eq.1713, eq.1714, c_sign__2, id=1725, pos=[(0,3750,72), (3,369,56)]) is_operand_inf: bits[1] = or(and.1719, and.1733, id=1740, pos=[(0,3741,39), (3,369,56)]) bit_slice.1741: bits[1] = bit_slice(bexp__6, start=8, width=1, id=1741, pos=[(0,3737,29), (3,369,56)]) and_reduce.1742: bits[1] = and_reduce(bit_slice.1734, id=1742, pos=[(0,3737,29), (3,369,56)]) eq.1743: bits[1] = eq(bexp__6, literal.1554, id=1743, pos=[(0,3732,29), (3,369,56)]) not.1777: bits[1] = not(eq.1711, id=1777, pos=[(0,3552,5), (0,3751,38), (3,369,56)]) has_pos_inf: bits[1] = or(nor.1722, nor.1723, id=1730, pos=[(0,3745,37), (3,369,56)]) has_neg_inf: bits[1] = or(and.1724, and.1725, id=1731, pos=[(0,3750,37), (3,369,56)]) or.1747: bits[1] = or(is_operand_inf, bit_slice.1741, and_reduce.1742, eq.1743, id=1747, pos=[(0,3743,26), (3,369,56)]) nor.1778: bits[1] = nor(not.1777, eq.1712, id=1778, pos=[(0,3552,5), (0,3751,38), (3,369,56)]) nor.1780: bits[1] = nor(not.1717, eq.1714, id=1780, pos=[(0,71,6), (0,3751,51), (3,369,56)]) and.1737: bits[1] = and(has_pos_inf, has_neg_inf, id=1737, pos=[(0,3751,58), (3,369,56)]) concat.1738: bits[2] = concat(bit_slice.1659, fraction_is_zero, id=1738, pos=[(3,369,56)]) not.1739: bits[1] = not(greater_sign, id=1739, pos=[(0,3672,25), (3,369,56)]) not.1818: bits[1] = not(or.1747, id=1818, pos=[(0,3743,26), (3,369,56)]) is_result_nan: bits[1] = or(nor.1778, nor.1780, and.1737, id=1744, pos=[(0,3751,38), (3,369,56)]) result_sign: bits[1] = priority_sel(concat.1738, cases=[cancel__1, not.1739], default=greater_sign, id=1745, pos=[(3,369,56)]) not.1746: bits[1] = not(has_pos_inf, id=1746, pos=[(0,3746,42), (3,369,56)]) result_fraction: bits[23] = bit_slice(rounded_fraction__1, start=0, width=23, id=1748, pos=[(3,369,56)]) sign_ext.1819: bits[23] = sign_ext(not.1818, new_bit_count=23, id=1819, pos=[(0,3743,26), (3,369,56)]) not.1749: bits[1] = not(is_result_nan, id=1749, pos=[(0,3755,22), (3,369,56)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1746], id=1750, pos=[(0,3746,22), (3,369,56)]) or.1751: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1741, and_reduce.1742, id=1751, pos=[(0,3752,21), (3,369,56)]) result_fraction__3: bits[23] = and(result_fraction, sign_ext.1819, id=1820, pos=[(0,3743,26), (3,369,56)]) literal.1753: bits[23] = literal(value=524288, id=1753, pos=[(0,3754,27), (3,369,56)]) after_all.520: token = after_all(id=520) nand.1766: bits[1] = nand(carry_bit__2, cancel__2, id=1766, pos=[(3,369,56)]) result_sign__2: bits[1] = and(not.1749, result_sign__1, id=1755, pos=[(0,3755,22), (3,369,56)]) result_exp__2: bits[8] = sel(or.1751, cases=[bit_slice.1734, max_exp], id=1756, pos=[(0,3752,21), (3,369,56)]) result_fraction__4: bits[23] = sel(is_result_nan, cases=[result_fraction__3, literal.1753], id=1757, pos=[(0,3754,8), (3,369,56)]) assert_1522__2: token = assert(after_all.520, nand.1766, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3700:19-3700:60", label="carry_and_cancel", id=1761, pos=[(3,369,56)]) ret tuple.1759: (bits[1], bits[8], bits[23]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1759, pos=[(0,3757,33), (3,369,56)]) }