package float64 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/float64.x" top fn __float64__fma(a: (bits[1], bits[11], bits[52]) id=517, b: (bits[1], bits[11], bits[52]) id=518, c: (bits[1], bits[11], bits[52]) id=519) -> (bits[1], bits[11], bits[52]) { a_bexp__1: bits[11] = tuple_index(a, index=1, id=1503, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1505: bits[11] = literal(value=0, id=1505, pos=[(0,804,14), (0,3431,40), (0,3574,29), (0,3636,25), (3,172,56)]) b_bexp__1: bits[11] = tuple_index(b, index=1, id=1504, pos=[(0,3448,45), (0,3574,29), (0,3636,25), (3,172,56)]) cancel__1: bits[1] = literal(value=0, id=1502, pos=[(0,3574,29), (0,3636,25), (3,172,56)]) bnot__1: bits[1] = literal(value=1, id=1506, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,172,56)]) a_fraction__1: bits[52] = tuple_index(a, index=2, id=1507, pos=[(0,3434,33), (0,3574,29), (0,3636,25), (3,172,56)]) b_fraction__1: bits[52] = tuple_index(b, index=2, id=1508, pos=[(0,3435,33), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1511: bits[1] = eq(a_bexp__1, literal.1505, id=1511, pos=[(0,804,5), (0,3431,40), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1512: bits[1] = eq(b_bexp__1, literal.1505, id=1512, pos=[(0,804,5), (0,3431,67), (0,3574,29), (0,3636,25), (3,172,56)]) concat.1509: bits[12] = concat(cancel__1, a_bexp__1, id=1509, pos=[(0,3574,29), (0,3636,25), (3,172,56)]) concat.1510: bits[12] = concat(cancel__1, b_bexp__1, id=1510, pos=[(0,3574,29), (0,3636,25), (3,172,56)]) a_significand__1: bits[53] = concat(bnot__1, a_fraction__1, id=1513, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,172,56)]) b_significand__1: bits[53] = concat(bnot__1, b_fraction__1, id=1514, pos=[(0,3435,24), (0,3574,29), (0,3636,25), (3,172,56)]) nor.1801: bits[1] = nor(eq.1511, eq.1512, id=1801, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,56)]) add.1515: bits[12] = add(concat.1509, concat.1510, id=1515, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,56)]) umul.1517: bits[106] = umul(a_significand__1, b_significand__1, id=1517, pos=[(1,224,5), (0,3439,61), (0,3574,29), (0,3636,25), (3,172,56)]) sign_ext.1764: bits[106] = sign_ext(nor.1801, new_bit_count=106, id=1764, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,56)]) max_exp: bits[11] = literal(value=2047, id=1519, pos=[(0,96,29), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1520: bits[52] = literal(value=0, id=1520, pos=[(0,96,57), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) concat.1521: bits[13] = concat(cancel__1, add.1515, id=1521, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1522: bits[13] = literal(value=7169, id=1522, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,56)]) full_product: bits[106] = and(umul.1517, sign_ext.1764, id=1765, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1524: bits[1] = eq(a_bexp__1, max_exp, id=1524, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1525: bits[1] = eq(a_fraction__1, literal.1520, id=1525, pos=[(0,96,44), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1526: bits[1] = eq(b_bexp__1, max_exp, id=1526, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,56)]) eq.1527: bits[1] = eq(b_fraction__1, literal.1520, id=1527, pos=[(0,96,44), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,56)]) exp: bits[13] = add(concat.1521, literal.1522, id=1528, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,56)]) sign_ext.1767: bits[13] = sign_ext(nor.1801, new_bit_count=13, id=1767, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1530: bits[12] = literal(value=0, id=1530, pos=[(0,3574,29), (0,3636,25), (3,172,56)]) in_upper_binade: bits[1] = bit_slice(full_product, start=105, width=1, id=1531, pos=[(1,357,61), (0,3463,34), (0,3574,29), (0,3636,25), (3,172,56)]) and.1532: bits[1] = and(eq.1524, eq.1525, id=1532, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) and.1533: bits[1] = and(eq.1526, eq.1527, id=1533, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,56)]) exp__1: bits[13] = and(exp, sign_ext.1767, id=1768, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,172,56)]) concat.1535: bits[13] = concat(literal.1530, in_upper_binade, id=1535, pos=[(0,3574,29), (0,3636,25), (3,172,56)]) has_inf_arg: bits[1] = or(and.1532, and.1533, id=1536, pos=[(0,3488,28), (0,3574,29), (0,3636,25), (3,172,56)]) result_exp__3: bits[13] = add(exp__1, concat.1535, id=1537, pos=[(0,3468,14), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1538: bits[13] = literal(value=4095, id=1538, pos=[(0,3482,62), (0,3574,29), (0,3636,25), (3,172,56)]) result_exp__4: bits[13] = sel(has_inf_arg, cases=[result_exp__3, literal.1538], id=1542, pos=[(0,3482,21), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1529: bits[13] = literal(value=0, id=1529, pos=[(0,3457,29), (0,3574,29), (0,3636,25), (3,172,56)]) is_subnormal: bits[1] = sle(result_exp__4, literal.1529, id=1547, pos=[(0,3580,34), (0,3636,25), (3,172,56)]) not.1540: bits[1] = not(eq.1524, id=1540, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,172,56)]) not.1541: bits[1] = not(eq.1526, id=1541, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,172,56)]) has_0_arg: bits[1] = or(eq.1511, eq.1512, id=1516, pos=[(0,3431,40), (0,3574,29), (0,3636,25), (3,172,56)]) not.1769: bits[1] = not(is_subnormal, id=1769, pos=[(0,3581,21), (0,3636,25), (3,172,56)]) nor.1544: bits[1] = nor(not.1540, eq.1525, id=1544, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,172,56)]) nor.1545: bits[1] = nor(not.1541, eq.1527, id=1545, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,172,56)]) and.1546: bits[1] = and(has_0_arg, has_inf_arg, id=1546, pos=[(0,3489,40), (0,3574,29), (0,3636,25), (3,172,56)]) bit_slice.1548: bits[12] = bit_slice(result_exp__4, start=0, width=12, id=1548, pos=[(0,3583,45), (0,3636,25), (3,172,56)]) sign_ext.1770: bits[12] = sign_ext(not.1769, new_bit_count=12, id=1770, pos=[(0,3581,21), (0,3636,25), (3,172,56)]) is_result_nan__1: bits[1] = or(nor.1544, nor.1545, and.1546, id=1551, pos=[(0,3489,24), (0,3574,29), (0,3636,25), (3,172,56)]) result_exp__5: bits[12] = and(bit_slice.1548, sign_ext.1770, id=1771, pos=[(0,3581,21), (0,3636,25), (3,172,56)]) literal.1553: bits[12] = literal(value=4095, id=1553, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) c_bexp__2: bits[11] = tuple_index(c, index=1, id=1539, pos=[(0,3639,44), (3,172,56)]) ab_bexp__2: bits[12] = sel(is_result_nan__1, cases=[result_exp__5, literal.1553], id=1556, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) literal.1750: bits[2] = literal(value=1, id=1750, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) bnot__2: bits[11] = not(c_bexp__2, id=1554, pos=[(2,90,15), (0,3009,44), (0,3639,33), (3,172,56)]) ab_bexp_extended__1: bits[13] = concat(cancel__1, ab_bexp__2, id=1559, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) bnot_extended__2: bits[13] = concat(literal.1750, bnot__2, id=1751, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) full_result: bits[13] = add(ab_bexp_extended__1, bnot_extended__2, id=1563, pos=[(1,1114,45), (2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) overflow_detected: bits[1] = bit_slice(full_result, start=12, width=1, id=1565, pos=[(1,1116,49), (2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) bit_slice.1550: bits[105] = bit_slice(full_product, start=0, width=105, id=1550, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,172,56)]) nc: bits[1] = not(overflow_detected, id=1569, pos=[(2,92,19), (0,3009,44), (0,3639,33), (3,172,56)]) concat.1555: bits[106] = concat(bit_slice.1550, cancel__1, id=1555, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,172,56)]) not.1772: bits[1] = not(has_inf_arg, id=1772, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,56)]) narrowed_result: bits[12] = bit_slice(full_result, start=0, width=12, id=1575, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,56)]) ab_bexpor_mask__2: bits[12] = sign_ext(nc, new_bit_count=12, id=1576, pos=[(2,94,32), (0,3009,44), (0,3639,33), (3,172,56)]) result_fraction__5: bits[106] = sel(in_upper_binade, cases=[concat.1555, full_product], id=1558, pos=[(0,3464,30), (0,3574,29), (0,3636,25), (3,172,56)]) sign_ext.1773: bits[106] = sign_ext(not.1772, new_bit_count=106, id=1773, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,56)]) neg.1562: bits[12] = neg(bit_slice.1548, id=1562, pos=[(0,3583,33), (0,3636,25), (3,172,56)]) sign_ext.1775: bits[12] = sign_ext(is_subnormal, new_bit_count=12, id=1775) result: bits[12] = xor(narrowed_result, ab_bexpor_mask__2, id=1580, pos=[(2,95,18), (0,3009,44), (0,3639,33), (3,172,56)]) concat.1581: bits[12] = concat(literal.1505, overflow_detected, id=1581, pos=[(0,3010,68), (0,3639,33), (3,172,56)]) result_fraction__6: bits[106] = and(result_fraction__5, sign_ext.1773, id=1774, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,56)]) and.1776: bits[12] = and(neg.1562, sign_ext.1775, id=1776) exp_difference: bits[12] = add(result, concat.1581, id=1584, pos=[(2,54,7), (0,3010,68), (0,3639,33), (3,172,56)]) sign_ext.1780: bits[12] = sign_ext(overflow_detected, new_bit_count=12, id=1780, pos=[(0,3657,19), (3,172,56)]) result_fraction__7: bits[106] = shrl(result_fraction__6, and.1776, id=1762) literal.1568: bits[106] = literal(value=0x300_0000_0000_0000_0000_0000_0000, id=1568, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) literal.1588: bits[160] = literal(value=0xffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff, id=1588, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) rshift_ab: bits[12] = and(exp_difference, ab_bexpor_mask__2, id=1779, pos=[(0,3656,20), (3,172,56)]) c_fraction__2: bits[52] = tuple_index(c, index=2, id=1566, pos=[(0,3645,18), (3,172,56)]) ne.1799: bits[1] = ne(c_bexp__2, literal.1505, id=1799, pos=[(0,3646,17), (3,172,56)]) rshift_c: bits[12] = and(exp_difference, sign_ext.1780, id=1781, pos=[(0,3657,19), (3,172,56)]) ab_fraction__2: bits[106] = sel(is_result_nan__1, cases=[result_fraction__7, literal.1568], id=1573, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) shll.1594: bits[160] = shll(literal.1588, rshift_ab, id=1594, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) not.1812: bits[52] = not(c_fraction__2, id=1812, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) sign_ext.1783: bits[53] = sign_ext(ne.1799, new_bit_count=53, id=1783, pos=[(0,3646,17), (3,172,56)]) shll.1596: bits[160] = shll(literal.1588, rshift_c, id=1596, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) not.1586: bits[106] = not(ab_fraction__2, id=1586, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) bit_slice.1598: bits[106] = bit_slice(shll.1594, start=54, width=106, id=1598, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) concat.1571: bits[53] = concat(bnot__1, c_fraction__2, id=1571, pos=[(0,3646,17), (3,172,56)]) concat.1815: bits[53] = concat(cancel__1, not.1812, id=1815, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) not.1804: bits[53] = not(sign_ext.1783, id=1804, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) bit_slice.1600: bits[53] = bit_slice(shll.1596, start=107, width=53, id=1600, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1603, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,172,56)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1604, pos=[(0,3471,33), (0,3574,29), (0,3636,25), (3,172,56)]) literal.1574: bits[54] = literal(value=0, id=1574, pos=[(0,3651,11), (3,172,56)]) nor.1601: bits[106] = nor(not.1586, bit_slice.1598, id=1601, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) literal.1518: bits[106] = literal(value=0x0, id=1518, pos=[(0,3439,23), (0,3574,29), (0,3636,25), (3,172,56)]) wide_c__3: bits[53] = and(concat.1571, sign_ext.1783, id=1784, pos=[(0,3646,17), (3,172,56)]) literal.1578: bits[107] = literal(value=0x0, id=1578, pos=[(0,3652,17), (3,172,56)]) nor.1805: bits[53] = nor(concat.1815, not.1804, bit_slice.1600, id=1805, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) literal.1572: bits[53] = literal(value=0, id=1572, pos=[(0,3646,17), (3,172,56)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1608, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,172,56)]) wide_ab: bits[160] = concat(ab_fraction__2, literal.1574, id=1579, pos=[(0,3651,11), (3,172,56)]) literal.1605: bits[159] = literal(value=0x0, id=1605, pos=[(3,172,56)]) ne.1606: bits[1] = ne(nor.1601, literal.1518, id=1606, pos=[(1,1496,17), (1,1523,22), (0,3660,38), (3,172,56)]) wide_c__2: bits[160] = concat(wide_c__3, literal.1578, id=1582, pos=[(0,3652,17), (3,172,56)]) ne.1607: bits[1] = ne(nor.1805, literal.1572, id=1607, pos=[(1,1496,17), (1,1523,22), (0,3661,37), (3,172,56)]) not.1613: bits[1] = not(result_sign__3, id=1613, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) shifted_ab: bits[160] = shrl(wide_ab, rshift_ab, id=1609, pos=[(0,3658,21), (3,172,56)]) sticky_ab: bits[160] = concat(literal.1605, ne.1606, id=1610, pos=[(3,172,56)]) shifted_c: bits[160] = shrl(wide_c__2, rshift_c, id=1611, pos=[(0,3659,20), (3,172,56)]) sticky_c: bits[160] = concat(literal.1605, ne.1607, id=1612, pos=[(3,172,56)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1617, pos=[(0,3641,55), (3,172,56)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1613, id=1616, pos=[(0,3588,4), (0,3636,25), (3,172,56)]) or.1614: bits[160] = or(shifted_ab, sticky_ab, id=1614, pos=[(0,3664,22), (3,172,56)]) or.1615: bits[160] = or(shifted_c, sticky_c, id=1615, pos=[(0,3665,21), (3,172,56)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1739, pos=[(0,3641,8), (3,172,56)]) shifted_ab__1_squeezed: bits[161] = concat(cancel__1, or.1614, id=1618, pos=[(0,3668,50), (3,172,56)]) shifted_c__1_squeezed: bits[161] = concat(cancel__1, or.1615, id=1619, pos=[(0,3669,48), (3,172,56)]) xor.1624: bits[1] = xor(ab_sign__2, greater_sign, id=1624, pos=[(0,3668,26), (3,172,56)]) neg.1622: bits[161] = neg(shifted_ab__1_squeezed, id=1622, pos=[(0,3668,50), (3,172,56)]) xor.1627: bits[1] = xor(c_sign__2, greater_sign, id=1627, pos=[(0,3669,24), (3,172,56)]) neg.1623: bits[161] = neg(shifted_c__1_squeezed, id=1623, pos=[(0,3669,48), (3,172,56)]) shifted_ab__2_squeezed: bits[161] = sel(xor.1624, cases=[shifted_ab__1_squeezed, neg.1622], id=1821, pos=[(0,3668,21), (3,172,56)]) shifted_c__2_squeezed: bits[161] = sel(xor.1627, cases=[shifted_c__1_squeezed, neg.1623], id=1825, pos=[(0,3669,20), (3,172,56)]) shifted_ab__2: bits[162] = sign_ext(shifted_ab__2_squeezed, new_bit_count=162, id=1822, pos=[(0,3668,21), (3,172,56)]) shifted_c__2: bits[162] = sign_ext(shifted_c__2_squeezed, new_bit_count=162, id=1826, pos=[(0,3669,20), (3,172,56)]) sum_fraction: bits[162] = add(shifted_ab__2, shifted_c__2, id=1632, pos=[(0,3672,23), (3,172,56)]) bit_slice.1633: bits[161] = bit_slice(sum_fraction, start=0, width=161, id=1633, pos=[(0,3672,23), (3,172,56)]) bit_slice.1634: bits[1] = bit_slice(sum_fraction, start=161, width=1, id=1634, pos=[(0,3681,27), (3,172,56)]) neg.1635: bits[161] = neg(bit_slice.1633, id=1635, pos=[(0,3682,27), (3,172,56)]) abs_fraction__2: bits[161] = sel(bit_slice.1634, cases=[bit_slice.1633, neg.1635], id=1636, pos=[(0,3681,24), (3,172,56)]) reverse.1637: bits[161] = reverse(abs_fraction__2, id=1637, pos=[(0,3695,28), (3,172,56)]) one_hot.1638: bits[162] = one_hot(reverse.1637, lsb_prio=true, id=1638, pos=[(0,3695,28), (3,172,56)]) encode.1639: bits[8] = encode(one_hot.1638, id=1639, pos=[(0,3695,28), (3,172,56)]) bit_slice.1640: bits[7] = bit_slice(encode.1639, start=1, width=7, id=1640, pos=[(0,3696,17), (3,172,56)]) cancel__2: bits[1] = or_reduce(bit_slice.1640, id=1641, pos=[(0,3696,17), (3,172,56)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=160, width=1, id=1642, pos=[(0,3689,32), (3,172,56)]) concat.1643: bits[9] = concat(cancel__1, encode.1639, id=1643, pos=[(0,3695,28), (3,172,56)]) literal.1644: bits[9] = literal(value=511, id=1644, pos=[(0,3698,26), (3,172,56)]) not.1645: bits[1] = not(cancel__2, id=1645, pos=[(3,172,56)]) not.1646: bits[1] = not(carry_bit__2, id=1646, pos=[(3,172,56)]) bit_slice.1647: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1647, pos=[(0,3691,55), (3,172,56)]) add.1648: bits[9] = add(concat.1643, literal.1644, id=1648, pos=[(0,3698,26), (3,172,56)]) nor.1649: bits[1] = nor(carry_bit__2, cancel__2, id=1649, pos=[(3,172,56)]) nor.1650: bits[1] = nor(carry_bit__2, not.1645, id=1650, pos=[(3,172,56)]) nor.1651: bits[1] = nor(not.1646, cancel__2, id=1651, pos=[(3,172,56)]) carry_fraction__1: bits[160] = bit_slice(abs_fraction__2, start=1, width=160, id=1652, pos=[(0,3690,26), (3,172,56)]) concat.1653: bits[160] = concat(literal.1605, bit_slice.1647, id=1653, pos=[(3,172,56)]) bit_slice.1654: bits[160] = bit_slice(abs_fraction__2, start=0, width=160, id=1654, pos=[(0,3698,9), (3,172,56)]) sign_ext.1655: bits[161] = sign_ext(add.1648, new_bit_count=161, id=1655, pos=[(0,3698,26), (3,172,56)]) concat.1656: bits[3] = concat(nor.1649, nor.1650, nor.1651, id=1656, pos=[(3,172,56)]) carry_fraction__4: bits[160] = or(carry_fraction__1, concat.1653, id=1657, pos=[(0,3691,25), (3,172,56)]) cancel_fraction__2: bits[160] = shll(bit_slice.1654, sign_ext.1655, id=1658, pos=[(3,172,56)]) literal.1659: bits[160] = literal(value=0x0, id=1659, pos=[(0,3703,39), (3,172,56)]) shifted_fraction: bits[160] = priority_sel(concat.1656, cases=[carry_fraction__4, cancel_fraction__2, bit_slice.1654], default=literal.1659, id=1660, pos=[(3,172,56)]) normal_chunk: bits[107] = bit_slice(shifted_fraction, start=0, width=107, id=1661, pos=[(0,3710,39), (3,172,56)]) half_of_extra: bits[107] = literal(value=0x400_0000_0000_0000_0000_0000_0000, id=1662, pos=[(0,3713,24), (3,172,56)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=106, width=2, id=1663, pos=[(0,3712,24), (3,172,56)]) literal.1664: bits[2] = literal(value=3, id=1664, pos=[(0,3715,63), (3,172,56)]) bit_slice.1807: bits[53] = bit_slice(shifted_fraction, start=107, width=53, id=1807, pos=[(0,3717,8), (3,172,56)]) ugt.1667: bits[1] = ugt(normal_chunk, half_of_extra, id=1667, pos=[(0,3715,12), (3,172,56)]) eq.1668: bits[1] = eq(half_way_chunk, literal.1664, id=1668, pos=[(0,3715,45), (3,172,56)]) concat.1808: bits[54] = concat(cancel__1, bit_slice.1807, id=1808, pos=[(0,3717,8), (3,172,56)]) literal.1800: bits[54] = literal(value=1, id=1800, pos=[(0,3717,8), (3,172,56)]) or.1671: bits[1] = or(ugt.1667, eq.1668, id=1671, pos=[(0,3715,12), (3,172,56)]) add.1796: bits[54] = add(concat.1808, literal.1800, id=1796, pos=[(0,3717,8), (3,172,56)]) concat.1543: bits[12] = concat(cancel__1, c_bexp__2, id=1543, pos=[(3,172,56)]) rounded_fraction__1: bits[54] = sel(or.1671, cases=[concat.1808, add.1796], id=1674, pos=[(0,3716,27), (3,172,56)]) literal.1675: bits[9] = literal(value=1, id=1675, pos=[(0,3729,15), (3,172,56)]) greater_exp: bits[12] = sel(overflow_detected, cases=[concat.1543, ab_bexp__2], id=1740, pos=[(0,3641,8), (3,172,56)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=53, width=1, id=1677, pos=[(0,3723,41), (3,172,56)]) literal.1681: bits[162] = literal(value=0x0, id=1681, pos=[(0,3673,43), (3,172,56)]) sub.1678: bits[9] = sub(literal.1675, concat.1643, id=1678, pos=[(0,3728,15), (3,172,56)]) concat.1679: bits[13] = concat(cancel__1, greater_exp, id=1679, pos=[(3,172,56)]) concat.1680: bits[13] = concat(literal.1530, rounding_carry, id=1680, pos=[(3,172,56)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1681, id=1684, pos=[(0,3673,27), (3,172,56)]) bexp_associative_element__1: bits[13] = sign_ext(sub.1678, new_bit_count=13, id=1682, pos=[(0,3728,15), (3,172,56)]) bexp_associative_element__4: bits[13] = add(concat.1679, concat.1680, id=1683, pos=[(0,3728,15), (3,172,56)]) not.1785: bits[1] = not(fraction_is_zero, id=1785, pos=[(0,3730,15), (3,172,56)]) bexp__1: bits[13] = add(bexp_associative_element__1, bexp_associative_element__4, id=1685, pos=[(0,3728,15), (3,172,56)]) sign_ext.1786: bits[13] = sign_ext(not.1785, new_bit_count=13, id=1786, pos=[(0,3730,15), (3,172,56)]) bexp__2: bits[13] = and(bexp__1, sign_ext.1786, id=1787, pos=[(0,3730,15), (3,172,56)]) bit_slice.1695: bits[1] = bit_slice(bexp__2, start=12, width=1, id=1695, pos=[(0,3731,18), (3,172,56)]) not.1788: bits[1] = not(bit_slice.1695, id=1788, pos=[(0,3731,15), (3,172,56)]) bit_slice.1696: bits[12] = bit_slice(bexp__2, start=0, width=12, id=1696, pos=[(3,172,56)]) sign_ext.1789: bits[12] = sign_ext(not.1788, new_bit_count=12, id=1789, pos=[(0,3731,15), (3,172,56)]) eq.1686: bits[1] = eq(ab_bexp__2, literal.1553, id=1686, pos=[(0,3550,5), (0,3749,37), (3,172,56)]) eq.1687: bits[1] = eq(ab_fraction__2, literal.1518, id=1687, pos=[(0,3550,46), (0,3749,37), (3,172,56)]) eq.1688: bits[1] = eq(c_bexp__2, max_exp, id=1688, pos=[(0,96,6), (0,3749,72), (3,172,56)]) eq.1689: bits[1] = eq(c_fraction__2, literal.1520, id=1689, pos=[(0,96,44), (0,3749,72), (3,172,56)]) bexp__6: bits[12] = and(bit_slice.1696, sign_ext.1789, id=1790, pos=[(0,3731,15), (3,172,56)]) nand.1691: bits[1] = nand(eq.1686, eq.1687, id=1691, pos=[(0,3749,37), (3,172,56)]) not.1692: bits[1] = not(eq.1688, id=1692, pos=[(0,3749,72), (3,172,56)]) not.1693: bits[1] = not(eq.1689, id=1693, pos=[(0,3749,72), (3,172,56)]) and.1694: bits[1] = and(eq.1686, eq.1687, id=1694, pos=[(0,3550,5), (0,3749,37), (3,172,56)]) and.1708: bits[1] = and(eq.1688, eq.1689, id=1708, pos=[(0,96,6), (0,3749,72), (3,172,56)]) bit_slice.1709: bits[11] = bit_slice(bexp__6, start=0, width=11, id=1709, pos=[(0,3742,24), (3,172,56)]) nor.1697: bits[1] = nor(nand.1691, ab_sign__2, id=1697, pos=[(0,3749,37), (3,172,56)]) nor.1698: bits[1] = nor(not.1692, not.1693, c_sign__2, id=1698, pos=[(0,3749,72), (3,172,56)]) and.1699: bits[1] = and(and.1694, ab_sign__2, id=1699, pos=[(0,3754,37), (3,172,56)]) and.1700: bits[1] = and(eq.1688, eq.1689, c_sign__2, id=1700, pos=[(0,3754,72), (3,172,56)]) is_operand_inf: bits[1] = or(and.1694, and.1708, id=1715, pos=[(0,3745,39), (3,172,56)]) bit_slice.1716: bits[1] = bit_slice(bexp__6, start=11, width=1, id=1716, pos=[(0,3742,24), (3,172,56)]) and_reduce.1717: bits[1] = and_reduce(bit_slice.1709, id=1717, pos=[(0,3742,24), (3,172,56)]) eq.1718: bits[1] = eq(bexp__6, literal.1530, id=1718, pos=[(0,3736,29), (3,172,56)]) not.1752: bits[1] = not(eq.1686, id=1752, pos=[(0,3556,5), (0,3755,38), (3,172,56)]) has_pos_inf: bits[1] = or(nor.1697, nor.1698, id=1705, pos=[(0,3749,37), (3,172,56)]) has_neg_inf: bits[1] = or(and.1699, and.1700, id=1706, pos=[(0,3754,37), (3,172,56)]) or.1722: bits[1] = or(is_operand_inf, bit_slice.1716, and_reduce.1717, eq.1718, id=1722, pos=[(0,3747,26), (3,172,56)]) nor.1753: bits[1] = nor(not.1752, eq.1687, id=1753, pos=[(0,3556,5), (0,3755,38), (3,172,56)]) nor.1755: bits[1] = nor(not.1692, eq.1689, id=1755, pos=[(0,71,6), (0,3755,51), (3,172,56)]) and.1712: bits[1] = and(has_pos_inf, has_neg_inf, id=1712, pos=[(0,3755,58), (3,172,56)]) concat.1713: bits[2] = concat(bit_slice.1634, fraction_is_zero, id=1713, pos=[(3,172,56)]) not.1714: bits[1] = not(greater_sign, id=1714, pos=[(0,3676,25), (3,172,56)]) not.1791: bits[1] = not(or.1722, id=1791, pos=[(0,3747,26), (3,172,56)]) is_result_nan: bits[1] = or(nor.1753, nor.1755, and.1712, id=1719, pos=[(0,3755,38), (3,172,56)]) result_sign: bits[1] = priority_sel(concat.1713, cases=[cancel__1, not.1714], default=greater_sign, id=1720, pos=[(3,172,56)]) not.1721: bits[1] = not(has_pos_inf, id=1721, pos=[(0,3750,42), (3,172,56)]) result_fraction: bits[52] = bit_slice(rounded_fraction__1, start=0, width=52, id=1723, pos=[(3,172,56)]) sign_ext.1792: bits[52] = sign_ext(not.1791, new_bit_count=52, id=1792, pos=[(0,3747,26), (3,172,56)]) not.1724: bits[1] = not(is_result_nan, id=1724, pos=[(0,3759,22), (3,172,56)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1721], id=1725, pos=[(0,3750,22), (3,172,56)]) or.1726: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1716, and_reduce.1717, id=1726, pos=[(0,3756,21), (3,172,56)]) result_fraction__3: bits[52] = and(result_fraction, sign_ext.1792, id=1793, pos=[(0,3747,26), (3,172,56)]) literal.1728: bits[52] = literal(value=281474976710656, id=1728, pos=[(0,3758,27), (3,172,56)]) after_all.520: token = after_all(id=520) nand.1741: bits[1] = nand(carry_bit__2, cancel__2, id=1741, pos=[(3,172,56)]) result_sign__2: bits[1] = and(not.1724, result_sign__1, id=1730, pos=[(0,3759,22), (3,172,56)]) result_exp__2: bits[11] = sel(or.1726, cases=[bit_slice.1709, max_exp], id=1731, pos=[(0,3756,21), (3,172,56)]) result_fraction__4: bits[52] = sel(is_result_nan, cases=[result_fraction__3, literal.1728], id=1732, pos=[(0,3758,8), (3,172,56)]) assert_1498__2: token = assert(after_all.520, nand.1741, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3704:19-3704:60", label="carry_and_cancel", id=1736, pos=[(3,172,56)]) ret tuple.1734: (bits[1], bits[11], bits[52]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1734, pos=[(0,3761,33), (3,172,56)]) }