package hfloat16 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/hfloat16.x" top fn __hfloat16__fma(a: (bits[1], bits[5], bits[10]) id=517, b: (bits[1], bits[5], bits[10]) id=518, c: (bits[1], bits[5], bits[10]) id=519) -> (bits[1], bits[5], bits[10]) { a_bexp__1: bits[5] = tuple_index(a, index=1, id=1519, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,122,60)]) literal.1521: bits[5] = literal(value=0, id=1521, pos=[(0,3642,30), (3,122,60)]) b_bexp__1: bits[5] = tuple_index(b, index=1, id=1520, pos=[(0,3444,45), (0,3570,29), (0,3632,25), (3,122,60)]) cancel__1: bits[1] = literal(value=0, id=1518, pos=[(0,3692,17), (3,122,60)]) bnot__1: bits[1] = literal(value=1, id=1522, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,122,60)]) a_fraction__1: bits[10] = tuple_index(a, index=2, id=1523, pos=[(0,3430,33), (0,3570,29), (0,3632,25), (3,122,60)]) b_fraction__1: bits[10] = tuple_index(b, index=2, id=1524, pos=[(0,3431,33), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1527: bits[1] = eq(a_bexp__1, literal.1521, id=1527, pos=[(0,804,5), (0,3427,40), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1528: bits[1] = eq(b_bexp__1, literal.1521, id=1528, pos=[(0,804,5), (0,3427,67), (0,3570,29), (0,3632,25), (3,122,60)]) concat.1525: bits[6] = concat(cancel__1, a_bexp__1, id=1525, pos=[(0,3570,29), (0,3632,25), (3,122,60)]) concat.1526: bits[6] = concat(cancel__1, b_bexp__1, id=1526, pos=[(0,3570,29), (0,3632,25), (3,122,60)]) a_significand__1: bits[11] = concat(bnot__1, a_fraction__1, id=1529, pos=[(0,3430,24), (0,3570,29), (0,3632,25), (3,122,60)]) b_significand__1: bits[11] = concat(bnot__1, b_fraction__1, id=1530, pos=[(0,3431,24), (0,3570,29), (0,3632,25), (3,122,60)]) nor.1827: bits[1] = nor(eq.1527, eq.1528, id=1827, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,122,60)]) add.1531: bits[6] = add(concat.1525, concat.1526, id=1531, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,122,60)]) umul.1533: bits[22] = umul(a_significand__1, b_significand__1, id=1533, pos=[(1,224,5), (0,3435,61), (0,3570,29), (0,3632,25), (3,122,60)]) sign_ext.1783: bits[22] = sign_ext(nor.1827, new_bit_count=22, id=1783, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,122,60)]) max_exp: bits[5] = literal(value=31, id=1535, pos=[(0,3736,32), (3,122,60)]) literal.1536: bits[10] = literal(value=0, id=1536, pos=[(0,3732,55), (3,122,60)]) concat.1537: bits[7] = concat(cancel__1, add.1531, id=1537, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,122,60)]) literal.1538: bits[7] = literal(value=113, id=1538, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,122,60)]) full_product: bits[22] = and(umul.1533, sign_ext.1783, id=1784, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1540: bits[1] = eq(a_bexp__1, max_exp, id=1540, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1541: bits[1] = eq(a_fraction__1, literal.1536, id=1541, pos=[(0,96,44), (0,3477,31), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1542: bits[1] = eq(b_bexp__1, max_exp, id=1542, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,122,60)]) eq.1543: bits[1] = eq(b_fraction__1, literal.1536, id=1543, pos=[(0,96,44), (0,3477,44), (0,3570,29), (0,3632,25), (3,122,60)]) exp: bits[7] = add(concat.1537, literal.1538, id=1544, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,122,60)]) sign_ext.1786: bits[7] = sign_ext(nor.1827, new_bit_count=7, id=1786, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,122,60)]) literal.1546: bits[6] = literal(value=0, id=1546, pos=[(0,3652,64), (3,122,60)]) in_upper_binade: bits[1] = bit_slice(full_product, start=21, width=1, id=1547, pos=[(1,357,61), (0,3459,34), (0,3570,29), (0,3632,25), (3,122,60)]) and.1548: bits[1] = and(eq.1540, eq.1541, id=1548, pos=[(0,96,6), (0,3477,31), (0,3570,29), (0,3632,25), (3,122,60)]) and.1549: bits[1] = and(eq.1542, eq.1543, id=1549, pos=[(0,96,6), (0,3477,44), (0,3570,29), (0,3632,25), (3,122,60)]) exp__1: bits[7] = and(exp, sign_ext.1786, id=1787, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,122,60)]) concat.1551: bits[7] = concat(literal.1546, in_upper_binade, id=1551, pos=[(0,3570,29), (0,3632,25), (3,122,60)]) has_inf_arg: bits[1] = or(and.1548, and.1549, id=1552, pos=[(0,3484,28), (0,3570,29), (0,3632,25), (3,122,60)]) result_exp__1: bits[7] = add(exp__1, concat.1551, id=1553, pos=[(0,3464,14), (0,3570,29), (0,3632,25), (3,122,60)]) literal.1554: bits[7] = literal(value=63, id=1554, pos=[(0,3478,62), (0,3570,29), (0,3632,25), (3,122,60)]) result_exp__3: bits[7] = sel(has_inf_arg, cases=[result_exp__1, literal.1554], id=1558, pos=[(0,3478,21), (0,3570,29), (0,3632,25), (3,122,60)]) literal.1545: bits[7] = literal(value=0, id=1545, pos=[(0,3726,37), (3,122,60)]) is_subnormal: bits[1] = sle(result_exp__3, literal.1545, id=1563, pos=[(0,3576,34), (0,3632,25), (3,122,60)]) not.1556: bits[1] = not(eq.1540, id=1556, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,122,60)]) not.1557: bits[1] = not(eq.1542, id=1557, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,122,60)]) has_0_arg: bits[1] = or(eq.1527, eq.1528, id=1532, pos=[(0,3427,40), (0,3570,29), (0,3632,25), (3,122,60)]) not.1788: bits[1] = not(is_subnormal, id=1788, pos=[(0,3577,21), (0,3632,25), (3,122,60)]) nor.1560: bits[1] = nor(not.1556, eq.1541, id=1560, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,122,60)]) nor.1561: bits[1] = nor(not.1557, eq.1543, id=1561, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,122,60)]) and.1562: bits[1] = and(has_0_arg, has_inf_arg, id=1562, pos=[(0,3485,40), (0,3570,29), (0,3632,25), (3,122,60)]) bit_slice.1564: bits[6] = bit_slice(result_exp__3, start=0, width=6, id=1564, pos=[(0,3632,25), (3,122,60)]) sign_ext.1789: bits[6] = sign_ext(not.1788, new_bit_count=6, id=1789, pos=[(0,3577,21), (0,3632,25), (3,122,60)]) is_result_nan__1: bits[1] = or(nor.1560, nor.1561, and.1562, id=1567, pos=[(0,3485,24), (0,3570,29), (0,3632,25), (3,122,60)]) result_exp: bits[6] = and(bit_slice.1564, sign_ext.1789, id=1790, pos=[(0,3577,21), (0,3632,25), (3,122,60)]) literal.1569: bits[6] = literal(value=63, id=1569, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) c_bexp__2: bits[5] = tuple_index(c, index=1, id=1555, pos=[(0,3635,44), (3,122,60)]) ab_bexp__2: bits[6] = sel(is_result_nan__1, cases=[result_exp, literal.1569], id=1572, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) literal.1767: bits[2] = literal(value=1, id=1767, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) bnot__2: bits[5] = not(c_bexp__2, id=1570, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,122,60)]) ab_bexp_extended__1: bits[7] = concat(cancel__1, ab_bexp__2, id=1575, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) bnot_extended__2: bits[7] = concat(literal.1767, bnot__2, id=1768, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) full_result: bits[7] = add(ab_bexp_extended__1, bnot_extended__2, id=1579, pos=[(1,1119,45), (2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) overflow_detected: bits[1] = bit_slice(full_result, start=6, width=1, id=1581, pos=[(1,1121,49), (2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) bit_slice.1566: bits[21] = bit_slice(full_product, start=0, width=21, id=1566, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,122,60)]) nc: bits[1] = not(overflow_detected, id=1585, pos=[(2,92,19), (0,3005,44), (0,3635,33), (3,122,60)]) concat.1571: bits[22] = concat(bit_slice.1566, cancel__1, id=1571, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,122,60)]) not.1791: bits[1] = not(has_inf_arg, id=1791, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,122,60)]) narrowed_result: bits[6] = bit_slice(full_result, start=0, width=6, id=1591, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,122,60)]) ab_bexpor_mask__2: bits[6] = sign_ext(nc, new_bit_count=6, id=1592, pos=[(2,94,32), (0,3005,44), (0,3635,33), (3,122,60)]) result_fraction__1: bits[22] = sel(in_upper_binade, cases=[concat.1571, umul.1533], id=1574, pos=[(0,3460,30), (0,3570,29), (0,3632,25), (3,122,60)]) sign_ext.1792: bits[22] = sign_ext(not.1791, new_bit_count=22, id=1792, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,122,60)]) neg.1578: bits[6] = neg(bit_slice.1564, id=1578, pos=[(0,3579,33), (0,3632,25), (3,122,60)]) sign_ext.1794: bits[6] = sign_ext(is_subnormal, new_bit_count=6, id=1794) result: bits[6] = xor(narrowed_result, ab_bexpor_mask__2, id=1596, pos=[(2,95,18), (0,3005,44), (0,3635,33), (3,122,60)]) concat.1597: bits[6] = concat(literal.1521, overflow_detected, id=1597, pos=[(0,3006,68), (0,3635,33), (3,122,60)]) result_fraction__2: bits[22] = and(result_fraction__1, sign_ext.1792, id=1793, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,122,60)]) and.1795: bits[6] = and(neg.1578, sign_ext.1794, id=1795) exp_difference: bits[6] = add(result, concat.1597, id=1600, pos=[(2,54,7), (0,3006,68), (0,3635,33), (3,122,60)]) c_fraction__2: bits[10] = tuple_index(c, index=2, id=1582, pos=[(0,3641,18), (3,122,60)]) ne.1824: bits[1] = ne(c_bexp__2, literal.1521, id=1824, pos=[(0,3642,17), (3,122,60)]) sign_ext.1799: bits[6] = sign_ext(overflow_detected, new_bit_count=6, id=1799, pos=[(0,3653,19), (3,122,60)]) result_fraction__5: bits[22] = shrl(result_fraction__2, and.1795, id=1781) literal.1584: bits[22] = literal(value=3145728, id=1584, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) literal.1604: bits[34] = literal(value=17179869183, id=1604, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) rshift_ab: bits[6] = and(exp_difference, ab_bexpor_mask__2, id=1798, pos=[(0,3652,20), (3,122,60)]) concat.1587: bits[11] = concat(bnot__1, c_fraction__2, id=1587, pos=[(0,3642,17), (3,122,60)]) sign_ext.1802: bits[11] = sign_ext(ne.1824, new_bit_count=11, id=1802, pos=[(0,3642,17), (3,122,60)]) rshift_c: bits[6] = and(exp_difference, sign_ext.1799, id=1800, pos=[(0,3653,19), (3,122,60)]) ab_fraction__2: bits[22] = sel(is_result_nan__1, cases=[result_fraction__5, literal.1584], id=1589, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) literal.1590: bits[12] = literal(value=0, id=1590, pos=[(0,3647,11), (3,122,60)]) shll.1610: bits[34] = shll(literal.1604, rshift_ab, id=1610, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) wide_c__3: bits[11] = and(concat.1587, sign_ext.1802, id=1803, pos=[(0,3642,17), (3,122,60)]) literal.1594: bits[23] = literal(value=0, id=1594, pos=[(0,3648,17), (3,122,60)]) not.1842: bits[10] = not(c_fraction__2, id=1842, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) shll.1612: bits[34] = shll(literal.1604, rshift_c, id=1612, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1617, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,122,60)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1618, pos=[(0,3467,33), (0,3570,29), (0,3632,25), (3,122,60)]) wide_ab: bits[34] = concat(ab_fraction__2, literal.1590, id=1595, pos=[(0,3647,11), (3,122,60)]) not.1602: bits[22] = not(ab_fraction__2, id=1602, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) bit_slice.1614: bits[22] = bit_slice(shll.1610, start=12, width=22, id=1614, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) wide_c__2: bits[34] = concat(wide_c__3, literal.1594, id=1598, pos=[(0,3648,17), (3,122,60)]) concat.1845: bits[11] = concat(cancel__1, not.1842, id=1845, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) not.1830: bits[11] = not(sign_ext.1802, id=1830, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) bit_slice.1616: bits[11] = bit_slice(shll.1612, start=23, width=11, id=1616, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1623, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,122,60)]) shifted_ab: bits[34] = shrl(wide_ab, rshift_ab, id=1619, pos=[(0,3654,21), (3,122,60)]) nor.1620: bits[22] = nor(not.1602, bit_slice.1614, id=1620, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) literal.1534: bits[22] = literal(value=0, id=1534, pos=[(0,3435,23), (0,3570,29), (0,3632,25), (3,122,60)]) shifted_c: bits[34] = shrl(wide_c__2, rshift_c, id=1621, pos=[(0,3655,20), (3,122,60)]) nor.1831: bits[11] = nor(concat.1845, not.1830, bit_slice.1616, id=1831, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) literal.1588: bits[11] = literal(value=0, id=1588, pos=[(0,3642,17), (3,122,60)]) not.1628: bits[1] = not(result_sign__3, id=1628, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) bit_slice.1624: bits[1] = bit_slice(shifted_ab, start=0, width=1, id=1624, pos=[(0,3660,22), (3,122,60)]) ne.1625: bits[1] = ne(nor.1620, literal.1534, id=1625, pos=[(1,1501,17), (1,1528,22), (0,3656,38), (3,122,60)]) bit_slice.1626: bits[1] = bit_slice(shifted_c, start=0, width=1, id=1626, pos=[(0,3661,21), (3,122,60)]) ne.1627: bits[1] = ne(nor.1831, literal.1588, id=1627, pos=[(1,1501,17), (1,1528,22), (0,3657,37), (3,122,60)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1634, pos=[(0,3637,55), (3,122,60)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1628, id=1633, pos=[(0,3584,4), (0,3632,25), (3,122,60)]) bit_slice.1629: bits[33] = bit_slice(shifted_ab, start=1, width=33, id=1629, pos=[(0,3660,22), (3,122,60)]) or.1630: bits[1] = or(bit_slice.1624, ne.1625, id=1630, pos=[(0,3660,22), (3,122,60)]) bit_slice.1631: bits[33] = bit_slice(shifted_c, start=1, width=33, id=1631, pos=[(0,3661,21), (3,122,60)]) or.1632: bits[1] = or(bit_slice.1626, ne.1627, id=1632, pos=[(0,3661,21), (3,122,60)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1756, pos=[(0,3637,8), (3,122,60)]) shifted_ab__1_squeezed: bits[35] = concat(cancel__1, bit_slice.1629, or.1630, id=1858, pos=[(3,122,60)]) shifted_c__1_squeezed: bits[35] = concat(cancel__1, bit_slice.1631, or.1632, id=1861, pos=[(3,122,60)]) xor.1641: bits[1] = xor(ab_sign__2, greater_sign, id=1641, pos=[(0,3664,26), (3,122,60)]) neg.1639: bits[35] = neg(shifted_ab__1_squeezed, id=1639, pos=[(0,3664,50), (3,122,60)]) xor.1644: bits[1] = xor(c_sign__2, greater_sign, id=1644, pos=[(0,3665,24), (3,122,60)]) neg.1640: bits[35] = neg(shifted_c__1_squeezed, id=1640, pos=[(0,3665,48), (3,122,60)]) shifted_ab__2_squeezed: bits[35] = sel(xor.1641, cases=[shifted_ab__1_squeezed, neg.1639], id=1851, pos=[(0,3664,21), (3,122,60)]) shifted_c__2_squeezed: bits[35] = sel(xor.1644, cases=[shifted_c__1_squeezed, neg.1640], id=1855, pos=[(0,3665,20), (3,122,60)]) shifted_ab__2: bits[36] = sign_ext(shifted_ab__2_squeezed, new_bit_count=36, id=1852, pos=[(0,3664,21), (3,122,60)]) shifted_c__2: bits[36] = sign_ext(shifted_c__2_squeezed, new_bit_count=36, id=1856, pos=[(0,3665,20), (3,122,60)]) sum_fraction: bits[36] = add(shifted_ab__2, shifted_c__2, id=1649, pos=[(0,3668,23), (3,122,60)]) bit_slice.1650: bits[35] = bit_slice(sum_fraction, start=0, width=35, id=1650, pos=[(0,3677,24), (3,122,60)]) bit_slice.1651: bits[1] = bit_slice(sum_fraction, start=35, width=1, id=1651, pos=[(0,3670,47), (3,122,60)]) neg.1652: bits[35] = neg(bit_slice.1650, id=1652, pos=[(0,3678,27), (3,122,60)]) abs_fraction__2: bits[35] = sel(bit_slice.1651, cases=[bit_slice.1650, neg.1652], id=1653, pos=[(0,3677,24), (3,122,60)]) reverse.1654: bits[35] = reverse(abs_fraction__2, id=1654, pos=[(0,3691,28), (3,122,60)]) one_hot.1655: bits[36] = one_hot(reverse.1654, lsb_prio=true, id=1655, pos=[(0,3691,28), (3,122,60)]) encode.1656: bits[6] = encode(one_hot.1655, id=1656, pos=[(0,3691,28), (3,122,60)]) bit_slice.1657: bits[5] = bit_slice(encode.1656, start=1, width=5, id=1657, pos=[(0,3692,17), (3,122,60)]) cancel__2: bits[1] = or_reduce(bit_slice.1657, id=1658, pos=[(0,3692,17), (3,122,60)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=34, width=1, id=1659, pos=[(0,3685,32), (3,122,60)]) concat.1660: bits[7] = concat(cancel__1, encode.1656, id=1660, pos=[(3,122,60)]) literal.1661: bits[7] = literal(value=127, id=1661, pos=[(0,3694,26), (3,122,60)]) not.1662: bits[1] = not(cancel__2, id=1662, pos=[(3,122,60)]) not.1663: bits[1] = not(carry_bit__2, id=1663, pos=[(3,122,60)]) bit_slice.1664: bits[1] = bit_slice(abs_fraction__2, start=1, width=1, id=1664, pos=[(0,3687,25), (3,122,60)]) bit_slice.1665: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1665, pos=[(0,3687,55), (3,122,60)]) add.1666: bits[7] = add(concat.1660, literal.1661, id=1666, pos=[(0,3694,26), (3,122,60)]) nor.1667: bits[1] = nor(carry_bit__2, cancel__2, id=1667, pos=[(3,122,60)]) nor.1668: bits[1] = nor(carry_bit__2, not.1662, id=1668, pos=[(3,122,60)]) nor.1669: bits[1] = nor(not.1663, cancel__2, id=1669, pos=[(3,122,60)]) bit_slice.1670: bits[33] = bit_slice(abs_fraction__2, start=2, width=33, id=1670, pos=[(0,3687,25), (3,122,60)]) carry_fraction__1: bits[1] = or(bit_slice.1664, bit_slice.1665, id=1671, pos=[(0,3687,25), (3,122,60)]) bit_slice.1672: bits[34] = bit_slice(abs_fraction__2, start=0, width=34, id=1672, pos=[(3,122,60)]) sign_ext.1673: bits[35] = sign_ext(add.1666, new_bit_count=35, id=1673, pos=[(0,3694,26), (3,122,60)]) concat.1674: bits[3] = concat(nor.1667, nor.1668, nor.1669, id=1674, pos=[(3,122,60)]) carry_fraction__2: bits[34] = concat(bit_slice.1670, carry_fraction__1, id=1675, pos=[(0,3687,25), (3,122,60)]) cancel_fraction__2: bits[34] = shll(bit_slice.1672, sign_ext.1673, id=1676, pos=[(3,122,60)]) literal.1677: bits[34] = literal(value=0, id=1677, pos=[(0,3699,39), (3,122,60)]) shifted_fraction: bits[34] = priority_sel(concat.1674, cases=[carry_fraction__2, cancel_fraction__2, bit_slice.1672], default=literal.1677, id=1678, pos=[(3,122,60)]) normal_chunk: bits[23] = bit_slice(shifted_fraction, start=0, width=23, id=1679, pos=[(0,3706,39), (3,122,60)]) half_of_extra: bits[23] = literal(value=4194304, id=1680, pos=[(0,3709,24), (3,122,60)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=22, width=2, id=1681, pos=[(0,3708,24), (3,122,60)]) literal.1682: bits[2] = literal(value=3, id=1682, pos=[(0,3711,63), (3,122,60)]) bit_slice.1687: bits[11] = bit_slice(shifted_fraction, start=23, width=11, id=1687, pos=[(0,3712,27), (3,122,60)]) ugt.1685: bits[1] = ugt(normal_chunk, half_of_extra, id=1685, pos=[(0,3711,12), (3,122,60)]) eq.1686: bits[1] = eq(half_way_chunk, literal.1682, id=1686, pos=[(0,3711,45), (3,122,60)]) concat.1690: bits[12] = concat(cancel__1, bit_slice.1687, id=1690, pos=[(0,3712,27), (3,122,60)]) literal.1825: bits[12] = literal(value=1, id=1825, pos=[(0,3713,8), (3,122,60)]) or.1689: bits[1] = or(ugt.1685, eq.1686, id=1689, pos=[(0,3711,12), (3,122,60)]) add.1815: bits[12] = add(concat.1690, literal.1825, id=1815, pos=[(0,3713,8), (3,122,60)]) concat.1559: bits[6] = concat(cancel__1, c_bexp__2, id=1559, pos=[(3,122,60)]) rounded_fraction__1: bits[12] = sel(or.1689, cases=[concat.1690, add.1815], id=1692, pos=[(0,3712,27), (3,122,60)]) concat.1838: bits[6] = concat(cancel__1, bit_slice.1657, id=1838, pos=[(0,3724,15), (3,122,60)]) bit_slice.1839: bits[1] = bit_slice(encode.1656, start=0, width=1, id=1839, pos=[(0,3724,15), (3,122,60)]) greater_exp: bits[6] = sel(overflow_detected, cases=[concat.1559, ab_bexp__2], id=1757, pos=[(0,3637,8), (3,122,60)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=11, width=1, id=1694, pos=[(0,3719,41), (3,122,60)]) literal.1698: bits[36] = literal(value=0, id=1698, pos=[(0,3669,43), (3,122,60)]) sub.1820: bits[6] = sub(literal.1546, concat.1838, id=1820, pos=[(0,3724,15), (3,122,60)]) not.1822: bits[1] = not(bit_slice.1839, id=1822, pos=[(0,3724,15), (3,122,60)]) concat.1696: bits[7] = concat(cancel__1, greater_exp, id=1696, pos=[(3,122,60)]) concat.1697: bits[7] = concat(literal.1546, rounding_carry, id=1697, pos=[(3,122,60)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1698, id=1701, pos=[(0,3669,27), (3,122,60)]) bexp_associative_element__1: bits[7] = concat(sub.1820, not.1822, id=1823, pos=[(0,3724,15), (3,122,60)]) bexp_associative_element__4: bits[7] = add(concat.1696, concat.1697, id=1700, pos=[(0,3724,15), (3,122,60)]) not.1804: bits[1] = not(fraction_is_zero, id=1804, pos=[(0,3726,15), (3,122,60)]) bexp__1: bits[7] = add(bexp_associative_element__1, bexp_associative_element__4, id=1702, pos=[(0,3724,15), (3,122,60)]) sign_ext.1805: bits[7] = sign_ext(not.1804, new_bit_count=7, id=1805, pos=[(0,3726,15), (3,122,60)]) bexp__2: bits[7] = and(bexp__1, sign_ext.1805, id=1806, pos=[(0,3726,15), (3,122,60)]) bit_slice.1712: bits[1] = bit_slice(bexp__2, start=6, width=1, id=1712, pos=[(0,3727,18), (3,122,60)]) not.1807: bits[1] = not(bit_slice.1712, id=1807, pos=[(0,3727,15), (3,122,60)]) bit_slice.1713: bits[6] = bit_slice(bexp__2, start=0, width=6, id=1713, pos=[(3,122,60)]) sign_ext.1808: bits[6] = sign_ext(not.1807, new_bit_count=6, id=1808, pos=[(0,3727,15), (3,122,60)]) eq.1703: bits[1] = eq(ab_bexp__2, literal.1569, id=1703, pos=[(0,3552,5), (0,3751,38), (3,122,60)]) eq.1704: bits[1] = eq(ab_fraction__2, literal.1534, id=1704, pos=[(0,3546,46), (0,3741,39), (3,122,60)]) eq.1705: bits[1] = eq(c_bexp__2, max_exp, id=1705, pos=[(0,71,6), (0,3751,51), (3,122,60)]) eq.1706: bits[1] = eq(c_fraction__2, literal.1536, id=1706, pos=[(0,96,44), (0,3741,52), (3,122,60)]) bexp__6: bits[6] = and(bit_slice.1713, sign_ext.1808, id=1809, pos=[(0,3727,15), (3,122,60)]) nand.1708: bits[1] = nand(eq.1703, eq.1704, id=1708, pos=[(0,3745,37), (3,122,60)]) not.1709: bits[1] = not(eq.1705, id=1709, pos=[(0,3745,72), (3,122,60)]) not.1710: bits[1] = not(eq.1706, id=1710, pos=[(0,3745,72), (3,122,60)]) and.1711: bits[1] = and(eq.1703, eq.1704, id=1711, pos=[(0,3546,5), (0,3741,39), (3,122,60)]) and.1725: bits[1] = and(eq.1705, eq.1706, id=1725, pos=[(0,96,6), (0,3741,52), (3,122,60)]) bit_slice.1726: bits[5] = bit_slice(bexp__6, start=0, width=5, id=1726, pos=[(3,122,60)]) nor.1714: bits[1] = nor(nand.1708, ab_sign__2, id=1714, pos=[(0,3745,37), (3,122,60)]) nor.1715: bits[1] = nor(not.1709, not.1710, c_sign__2, id=1715, pos=[(0,3745,72), (3,122,60)]) and.1716: bits[1] = and(and.1711, ab_sign__2, id=1716, pos=[(0,3750,37), (3,122,60)]) and.1717: bits[1] = and(eq.1705, eq.1706, c_sign__2, id=1717, pos=[(0,3750,72), (3,122,60)]) is_operand_inf: bits[1] = or(and.1711, and.1725, id=1732, pos=[(0,3741,39), (3,122,60)]) bit_slice.1733: bits[1] = bit_slice(bexp__6, start=5, width=1, id=1733, pos=[(0,3737,29), (3,122,60)]) and_reduce.1734: bits[1] = and_reduce(bit_slice.1726, id=1734, pos=[(0,3737,29), (3,122,60)]) eq.1735: bits[1] = eq(bexp__6, literal.1546, id=1735, pos=[(0,3732,29), (3,122,60)]) not.1769: bits[1] = not(eq.1703, id=1769, pos=[(0,3552,5), (0,3751,38), (3,122,60)]) has_pos_inf: bits[1] = or(nor.1714, nor.1715, id=1722, pos=[(0,3745,37), (3,122,60)]) has_neg_inf: bits[1] = or(and.1716, and.1717, id=1723, pos=[(0,3750,37), (3,122,60)]) or.1739: bits[1] = or(is_operand_inf, bit_slice.1733, and_reduce.1734, eq.1735, id=1739, pos=[(0,3743,26), (3,122,60)]) nor.1770: bits[1] = nor(not.1769, eq.1704, id=1770, pos=[(0,3552,5), (0,3751,38), (3,122,60)]) nor.1772: bits[1] = nor(not.1709, eq.1706, id=1772, pos=[(0,71,6), (0,3751,51), (3,122,60)]) and.1729: bits[1] = and(has_pos_inf, has_neg_inf, id=1729, pos=[(0,3751,58), (3,122,60)]) concat.1730: bits[2] = concat(bit_slice.1651, fraction_is_zero, id=1730, pos=[(3,122,60)]) not.1731: bits[1] = not(greater_sign, id=1731, pos=[(0,3672,25), (3,122,60)]) not.1810: bits[1] = not(or.1739, id=1810, pos=[(0,3743,26), (3,122,60)]) is_result_nan: bits[1] = or(nor.1770, nor.1772, and.1729, id=1736, pos=[(0,3751,38), (3,122,60)]) result_sign: bits[1] = priority_sel(concat.1730, cases=[cancel__1, not.1731], default=greater_sign, id=1737, pos=[(3,122,60)]) not.1738: bits[1] = not(has_pos_inf, id=1738, pos=[(0,3746,42), (3,122,60)]) result_fraction: bits[10] = bit_slice(rounded_fraction__1, start=0, width=10, id=1740, pos=[(3,122,60)]) sign_ext.1811: bits[10] = sign_ext(not.1810, new_bit_count=10, id=1811, pos=[(0,3743,26), (3,122,60)]) not.1741: bits[1] = not(is_result_nan, id=1741, pos=[(0,3755,22), (3,122,60)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1738], id=1742, pos=[(0,3746,22), (3,122,60)]) or.1743: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1733, and_reduce.1734, id=1743, pos=[(0,3752,21), (3,122,60)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.1811, id=1812, pos=[(0,3743,26), (3,122,60)]) literal.1745: bits[10] = literal(value=64, id=1745, pos=[(0,3754,27), (3,122,60)]) after_all.520: token = after_all(id=520) nand.1758: bits[1] = nand(carry_bit__2, cancel__2, id=1758, pos=[(3,122,60)]) result_sign__2: bits[1] = and(not.1741, result_sign__1, id=1747, pos=[(0,3755,22), (3,122,60)]) result_exp__2: bits[5] = sel(or.1743, cases=[bit_slice.1726, max_exp], id=1748, pos=[(0,3752,21), (3,122,60)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, literal.1745], id=1749, pos=[(0,3754,8), (3,122,60)]) assert_1514__2: token = assert(after_all.520, nand.1758, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3700:19-3700:60", label="carry_and_cancel", id=1753, pos=[(3,122,60)]) ret tuple.1751: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1751, pos=[(0,3757,33), (3,122,60)]) }