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=1528, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,56)]) literal.1530: bits[11] = literal(value=0, id=1530, pos=[(0,3642,30), (3,172,56)]) b_bexp__1: bits[11] = tuple_index(b, index=1, id=1529, pos=[(0,3444,45), (0,3570,29), (0,3632,25), (3,172,56)]) cancel__1: bits[1] = literal(value=0, id=1527, pos=[(0,3692,17), (3,172,56)]) bnot__1: bits[1] = literal(value=1, id=1531, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,172,56)]) a_fraction__1: bits[52] = tuple_index(a, index=2, id=1532, pos=[(0,3430,33), (0,3570,29), (0,3632,25), (3,172,56)]) b_fraction__1: bits[52] = tuple_index(b, index=2, id=1533, pos=[(0,3431,33), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1536: bits[1] = eq(a_bexp__1, literal.1530, id=1536, pos=[(0,804,5), (0,3427,40), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1537: bits[1] = eq(b_bexp__1, literal.1530, id=1537, pos=[(0,804,5), (0,3427,67), (0,3570,29), (0,3632,25), (3,172,56)]) concat.1534: bits[12] = concat(cancel__1, a_bexp__1, id=1534, pos=[(0,3570,29), (0,3632,25), (3,172,56)]) concat.1535: bits[12] = concat(cancel__1, b_bexp__1, id=1535, pos=[(0,3570,29), (0,3632,25), (3,172,56)]) a_significand__1: bits[53] = concat(bnot__1, a_fraction__1, id=1538, pos=[(0,3430,24), (0,3570,29), (0,3632,25), (3,172,56)]) b_significand__1: bits[53] = concat(bnot__1, b_fraction__1, id=1539, pos=[(0,3431,24), (0,3570,29), (0,3632,25), (3,172,56)]) nor.1837: bits[1] = nor(eq.1536, eq.1537, id=1837, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,56)]) add.1540: bits[12] = add(concat.1534, concat.1535, id=1540, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,56)]) umul.1542: bits[106] = umul(a_significand__1, b_significand__1, id=1542, pos=[(1,224,5), (0,3435,61), (0,3570,29), (0,3632,25), (3,172,56)]) sign_ext.1793: bits[106] = sign_ext(nor.1837, new_bit_count=106, id=1793, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,56)]) max_exp: bits[11] = literal(value=2047, id=1544, pos=[(0,3736,32), (3,172,56)]) literal.1545: bits[52] = literal(value=0, id=1545, pos=[(0,3732,55), (3,172,56)]) concat.1546: bits[13] = concat(cancel__1, add.1540, id=1546, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,56)]) literal.1547: bits[13] = literal(value=7169, id=1547, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,56)]) full_product: bits[106] = and(umul.1542, sign_ext.1793, id=1794, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1549: bits[1] = eq(a_bexp__1, max_exp, id=1549, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1550: bits[1] = eq(a_fraction__1, literal.1545, id=1550, pos=[(0,96,44), (0,3477,31), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1551: bits[1] = eq(b_bexp__1, max_exp, id=1551, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,56)]) eq.1552: bits[1] = eq(b_fraction__1, literal.1545, id=1552, pos=[(0,96,44), (0,3477,44), (0,3570,29), (0,3632,25), (3,172,56)]) exp: bits[13] = add(concat.1546, literal.1547, id=1553, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,56)]) sign_ext.1796: bits[13] = sign_ext(nor.1837, new_bit_count=13, id=1796, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,172,56)]) literal.1555: bits[12] = literal(value=0, id=1555, pos=[(0,3652,64), (3,172,56)]) in_upper_binade: bits[1] = bit_slice(full_product, start=105, width=1, id=1556, pos=[(1,357,61), (0,3459,34), (0,3570,29), (0,3632,25), (3,172,56)]) and.1557: bits[1] = and(eq.1549, eq.1550, id=1557, pos=[(0,96,6), (0,3477,31), (0,3570,29), (0,3632,25), (3,172,56)]) and.1558: bits[1] = and(eq.1551, eq.1552, id=1558, pos=[(0,96,6), (0,3477,44), (0,3570,29), (0,3632,25), (3,172,56)]) exp__1: bits[13] = and(exp, sign_ext.1796, id=1797, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,172,56)]) concat.1560: bits[13] = concat(literal.1555, in_upper_binade, id=1560, pos=[(0,3570,29), (0,3632,25), (3,172,56)]) has_inf_arg: bits[1] = or(and.1557, and.1558, id=1561, pos=[(0,3484,28), (0,3570,29), (0,3632,25), (3,172,56)]) result_exp__1: bits[13] = add(exp__1, concat.1560, id=1562, pos=[(0,3464,14), (0,3570,29), (0,3632,25), (3,172,56)]) literal.1563: bits[13] = literal(value=4095, id=1563, pos=[(0,3478,62), (0,3570,29), (0,3632,25), (3,172,56)]) result_exp__3: bits[13] = sel(has_inf_arg, cases=[result_exp__1, literal.1563], id=1567, pos=[(0,3478,21), (0,3570,29), (0,3632,25), (3,172,56)]) literal.1554: bits[13] = literal(value=0, id=1554, pos=[(0,3726,37), (3,172,56)]) is_subnormal: bits[1] = sle(result_exp__3, literal.1554, id=1572, pos=[(0,3576,34), (0,3632,25), (3,172,56)]) not.1565: bits[1] = not(eq.1549, id=1565, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,56)]) not.1566: bits[1] = not(eq.1551, id=1566, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,56)]) has_0_arg: bits[1] = or(eq.1536, eq.1537, id=1541, pos=[(0,3427,40), (0,3570,29), (0,3632,25), (3,172,56)]) not.1798: bits[1] = not(is_subnormal, id=1798, pos=[(0,3577,21), (0,3632,25), (3,172,56)]) nor.1569: bits[1] = nor(not.1565, eq.1550, id=1569, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,56)]) nor.1570: bits[1] = nor(not.1566, eq.1552, id=1570, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,56)]) and.1571: bits[1] = and(has_0_arg, has_inf_arg, id=1571, pos=[(0,3485,40), (0,3570,29), (0,3632,25), (3,172,56)]) bit_slice.1573: bits[12] = bit_slice(result_exp__3, start=0, width=12, id=1573, pos=[(0,3632,25), (3,172,56)]) sign_ext.1799: bits[12] = sign_ext(not.1798, new_bit_count=12, id=1799, pos=[(0,3577,21), (0,3632,25), (3,172,56)]) is_result_nan__1: bits[1] = or(nor.1569, nor.1570, and.1571, id=1576, pos=[(0,3485,24), (0,3570,29), (0,3632,25), (3,172,56)]) result_exp: bits[12] = and(bit_slice.1573, sign_ext.1799, id=1800, pos=[(0,3577,21), (0,3632,25), (3,172,56)]) literal.1578: bits[12] = literal(value=4095, id=1578, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) c_bexp__2: bits[11] = tuple_index(c, index=1, id=1564, pos=[(0,3635,44), (3,172,56)]) ab_bexp__2: bits[12] = sel(is_result_nan__1, cases=[result_exp, literal.1578], id=1581, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) literal.1777: bits[2] = literal(value=1, id=1777, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) bnot__2: bits[11] = not(c_bexp__2, id=1579, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,172,56)]) ab_bexp_extended__1: bits[13] = concat(cancel__1, ab_bexp__2, id=1584, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) bnot_extended__2: bits[13] = concat(literal.1777, bnot__2, id=1778, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) full_result: bits[13] = add(ab_bexp_extended__1, bnot_extended__2, id=1588, pos=[(1,1119,45), (2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) overflow_detected: bits[1] = bit_slice(full_result, start=12, width=1, id=1590, pos=[(1,1121,49), (2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) bit_slice.1575: bits[105] = bit_slice(full_product, start=0, width=105, id=1575, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,172,56)]) nc: bits[1] = not(overflow_detected, id=1594, pos=[(2,92,19), (0,3005,44), (0,3635,33), (3,172,56)]) concat.1580: bits[106] = concat(bit_slice.1575, cancel__1, id=1580, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,172,56)]) not.1801: bits[1] = not(has_inf_arg, id=1801, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,56)]) narrowed_result: bits[12] = bit_slice(full_result, start=0, width=12, id=1600, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,56)]) ab_bexpor_mask__2: bits[12] = sign_ext(nc, new_bit_count=12, id=1601, pos=[(2,94,32), (0,3005,44), (0,3635,33), (3,172,56)]) result_fraction__1: bits[106] = sel(in_upper_binade, cases=[concat.1580, full_product], id=1583, pos=[(0,3460,30), (0,3570,29), (0,3632,25), (3,172,56)]) sign_ext.1802: bits[106] = sign_ext(not.1801, new_bit_count=106, id=1802, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,56)]) neg.1587: bits[12] = neg(bit_slice.1573, id=1587, pos=[(0,3579,33), (0,3632,25), (3,172,56)]) sign_ext.1804: bits[12] = sign_ext(is_subnormal, new_bit_count=12, id=1804) result: bits[12] = xor(narrowed_result, ab_bexpor_mask__2, id=1605, pos=[(2,95,18), (0,3005,44), (0,3635,33), (3,172,56)]) concat.1606: bits[12] = concat(literal.1530, overflow_detected, id=1606, pos=[(0,3006,68), (0,3635,33), (3,172,56)]) result_fraction__2: bits[106] = and(result_fraction__1, sign_ext.1802, id=1803, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,56)]) and.1805: bits[12] = and(neg.1587, sign_ext.1804, id=1805) exp_difference: bits[12] = add(result, concat.1606, id=1609, pos=[(2,54,7), (0,3006,68), (0,3635,33), (3,172,56)]) c_fraction__2: bits[52] = tuple_index(c, index=2, id=1591, pos=[(0,3641,18), (3,172,56)]) ne.1834: bits[1] = ne(c_bexp__2, literal.1530, id=1834, pos=[(0,3642,17), (3,172,56)]) sign_ext.1809: bits[12] = sign_ext(overflow_detected, new_bit_count=12, id=1809, pos=[(0,3653,19), (3,172,56)]) result_fraction__5: bits[106] = shrl(result_fraction__2, and.1805, id=1791) literal.1593: bits[106] = literal(value=0x300_0000_0000_0000_0000_0000_0000, id=1593, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) literal.1613: bits[160] = literal(value=0xffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff, id=1613, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) rshift_ab: bits[12] = and(exp_difference, ab_bexpor_mask__2, id=1808, pos=[(0,3652,20), (3,172,56)]) concat.1596: bits[53] = concat(bnot__1, c_fraction__2, id=1596, pos=[(0,3642,17), (3,172,56)]) sign_ext.1812: bits[53] = sign_ext(ne.1834, new_bit_count=53, id=1812, pos=[(0,3642,17), (3,172,56)]) rshift_c: bits[12] = and(exp_difference, sign_ext.1809, id=1810, pos=[(0,3653,19), (3,172,56)]) ab_fraction__2: bits[106] = sel(is_result_nan__1, cases=[result_fraction__5, literal.1593], id=1598, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) literal.1599: bits[54] = literal(value=0, id=1599, pos=[(0,3647,11), (3,172,56)]) shll.1619: bits[160] = shll(literal.1613, rshift_ab, id=1619, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) wide_c__3: bits[53] = and(concat.1596, sign_ext.1812, id=1813, pos=[(0,3642,17), (3,172,56)]) literal.1603: bits[107] = literal(value=0x0, id=1603, pos=[(0,3648,17), (3,172,56)]) not.1852: bits[52] = not(c_fraction__2, id=1852, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) shll.1621: bits[160] = shll(literal.1613, rshift_c, id=1621, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1626, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,172,56)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1627, pos=[(0,3467,33), (0,3570,29), (0,3632,25), (3,172,56)]) wide_ab: bits[160] = concat(ab_fraction__2, literal.1599, id=1604, pos=[(0,3647,11), (3,172,56)]) not.1611: bits[106] = not(ab_fraction__2, id=1611, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) bit_slice.1623: bits[106] = bit_slice(shll.1619, start=54, width=106, id=1623, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) wide_c__2: bits[160] = concat(wide_c__3, literal.1603, id=1607, pos=[(0,3648,17), (3,172,56)]) concat.1855: bits[53] = concat(cancel__1, not.1852, id=1855, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) not.1840: bits[53] = not(sign_ext.1812, id=1840, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) bit_slice.1625: bits[53] = bit_slice(shll.1621, start=107, width=53, id=1625, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1632, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,172,56)]) shifted_ab: bits[160] = shrl(wide_ab, rshift_ab, id=1628, pos=[(0,3654,21), (3,172,56)]) nor.1629: bits[106] = nor(not.1611, bit_slice.1623, id=1629, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) literal.1543: bits[106] = literal(value=0x0, id=1543, pos=[(0,3435,23), (0,3570,29), (0,3632,25), (3,172,56)]) shifted_c: bits[160] = shrl(wide_c__2, rshift_c, id=1630, pos=[(0,3655,20), (3,172,56)]) nor.1841: bits[53] = nor(concat.1855, not.1840, bit_slice.1625, id=1841, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) literal.1597: bits[53] = literal(value=0, id=1597, pos=[(0,3642,17), (3,172,56)]) not.1637: bits[1] = not(result_sign__3, id=1637, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) bit_slice.1633: bits[1] = bit_slice(shifted_ab, start=0, width=1, id=1633, pos=[(0,3660,22), (3,172,56)]) ne.1634: bits[1] = ne(nor.1629, literal.1543, id=1634, pos=[(1,1501,17), (1,1528,22), (0,3656,38), (3,172,56)]) bit_slice.1635: bits[1] = bit_slice(shifted_c, start=0, width=1, id=1635, pos=[(0,3661,21), (3,172,56)]) ne.1636: bits[1] = ne(nor.1841, literal.1597, id=1636, pos=[(1,1501,17), (1,1528,22), (0,3657,37), (3,172,56)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1643, pos=[(0,3637,55), (3,172,56)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1637, id=1642, pos=[(0,3584,4), (0,3632,25), (3,172,56)]) bit_slice.1638: bits[159] = bit_slice(shifted_ab, start=1, width=159, id=1638, pos=[(0,3660,22), (3,172,56)]) or.1639: bits[1] = or(bit_slice.1633, ne.1634, id=1639, pos=[(0,3660,22), (3,172,56)]) bit_slice.1640: bits[159] = bit_slice(shifted_c, start=1, width=159, id=1640, pos=[(0,3661,21), (3,172,56)]) or.1641: bits[1] = or(bit_slice.1635, ne.1636, id=1641, pos=[(0,3661,21), (3,172,56)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1766, pos=[(0,3637,8), (3,172,56)]) shifted_ab__1_squeezed: bits[161] = concat(cancel__1, bit_slice.1638, or.1639, id=1868, pos=[(3,172,56)]) shifted_c__1_squeezed: bits[161] = concat(cancel__1, bit_slice.1640, or.1641, id=1871, pos=[(3,172,56)]) xor.1650: bits[1] = xor(ab_sign__2, greater_sign, id=1650, pos=[(0,3664,26), (3,172,56)]) neg.1648: bits[161] = neg(shifted_ab__1_squeezed, id=1648, pos=[(0,3664,50), (3,172,56)]) xor.1653: bits[1] = xor(c_sign__2, greater_sign, id=1653, pos=[(0,3665,24), (3,172,56)]) neg.1649: bits[161] = neg(shifted_c__1_squeezed, id=1649, pos=[(0,3665,48), (3,172,56)]) shifted_ab__2_squeezed: bits[161] = sel(xor.1650, cases=[shifted_ab__1_squeezed, neg.1648], id=1861, pos=[(0,3664,21), (3,172,56)]) shifted_c__2_squeezed: bits[161] = sel(xor.1653, cases=[shifted_c__1_squeezed, neg.1649], id=1865, pos=[(0,3665,20), (3,172,56)]) shifted_ab__2: bits[162] = sign_ext(shifted_ab__2_squeezed, new_bit_count=162, id=1862, pos=[(0,3664,21), (3,172,56)]) shifted_c__2: bits[162] = sign_ext(shifted_c__2_squeezed, new_bit_count=162, id=1866, pos=[(0,3665,20), (3,172,56)]) sum_fraction: bits[162] = add(shifted_ab__2, shifted_c__2, id=1658, pos=[(0,3668,23), (3,172,56)]) bit_slice.1659: bits[161] = bit_slice(sum_fraction, start=0, width=161, id=1659, pos=[(0,3677,24), (3,172,56)]) bit_slice.1660: bits[1] = bit_slice(sum_fraction, start=161, width=1, id=1660, pos=[(0,3670,47), (3,172,56)]) neg.1661: bits[161] = neg(bit_slice.1659, id=1661, pos=[(0,3678,27), (3,172,56)]) abs_fraction__2: bits[161] = sel(bit_slice.1660, cases=[bit_slice.1659, neg.1661], id=1662, pos=[(0,3677,24), (3,172,56)]) reverse.1663: bits[161] = reverse(abs_fraction__2, id=1663, pos=[(0,3691,28), (3,172,56)]) one_hot.1664: bits[162] = one_hot(reverse.1663, lsb_prio=true, id=1664, pos=[(0,3691,28), (3,172,56)]) encode.1665: bits[8] = encode(one_hot.1664, id=1665, pos=[(0,3691,28), (3,172,56)]) bit_slice.1666: bits[7] = bit_slice(encode.1665, start=1, width=7, id=1666, pos=[(0,3692,17), (3,172,56)]) cancel__2: bits[1] = or_reduce(bit_slice.1666, id=1667, pos=[(0,3692,17), (3,172,56)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=160, width=1, id=1668, pos=[(0,3685,32), (3,172,56)]) concat.1669: bits[9] = concat(cancel__1, encode.1665, id=1669, pos=[(0,3691,28), (3,172,56)]) literal.1670: bits[9] = literal(value=511, id=1670, pos=[(0,3694,26), (3,172,56)]) not.1671: bits[1] = not(cancel__2, id=1671, pos=[(3,172,56)]) not.1672: bits[1] = not(carry_bit__2, id=1672, pos=[(3,172,56)]) bit_slice.1673: bits[1] = bit_slice(abs_fraction__2, start=1, width=1, id=1673, pos=[(0,3687,25), (3,172,56)]) bit_slice.1674: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1674, pos=[(0,3687,55), (3,172,56)]) add.1675: bits[9] = add(concat.1669, literal.1670, id=1675, pos=[(0,3694,26), (3,172,56)]) nor.1676: bits[1] = nor(carry_bit__2, cancel__2, id=1676, pos=[(3,172,56)]) nor.1677: bits[1] = nor(carry_bit__2, not.1671, id=1677, pos=[(3,172,56)]) nor.1678: bits[1] = nor(not.1672, cancel__2, id=1678, pos=[(3,172,56)]) bit_slice.1679: bits[159] = bit_slice(abs_fraction__2, start=2, width=159, id=1679, pos=[(0,3687,25), (3,172,56)]) carry_fraction__1: bits[1] = or(bit_slice.1673, bit_slice.1674, id=1680, pos=[(0,3687,25), (3,172,56)]) bit_slice.1681: bits[160] = bit_slice(abs_fraction__2, start=0, width=160, id=1681, pos=[(3,172,56)]) sign_ext.1682: bits[161] = sign_ext(add.1675, new_bit_count=161, id=1682, pos=[(0,3694,26), (3,172,56)]) concat.1683: bits[3] = concat(nor.1676, nor.1677, nor.1678, id=1683, pos=[(3,172,56)]) carry_fraction__2: bits[160] = concat(bit_slice.1679, carry_fraction__1, id=1684, pos=[(0,3687,25), (3,172,56)]) cancel_fraction__2: bits[160] = shll(bit_slice.1681, sign_ext.1682, id=1685, pos=[(3,172,56)]) literal.1686: bits[160] = literal(value=0x0, id=1686, pos=[(0,3699,39), (3,172,56)]) shifted_fraction: bits[160] = priority_sel(concat.1683, cases=[carry_fraction__2, cancel_fraction__2, bit_slice.1681], default=literal.1686, id=1687, pos=[(3,172,56)]) normal_chunk: bits[107] = bit_slice(shifted_fraction, start=0, width=107, id=1688, pos=[(0,3706,39), (3,172,56)]) half_of_extra: bits[107] = literal(value=0x400_0000_0000_0000_0000_0000_0000, id=1689, pos=[(0,3709,24), (3,172,56)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=106, width=2, id=1690, pos=[(0,3708,24), (3,172,56)]) literal.1691: bits[2] = literal(value=3, id=1691, pos=[(0,3711,63), (3,172,56)]) bit_slice.1696: bits[53] = bit_slice(shifted_fraction, start=107, width=53, id=1696, pos=[(0,3712,27), (3,172,56)]) ugt.1694: bits[1] = ugt(normal_chunk, half_of_extra, id=1694, pos=[(0,3711,12), (3,172,56)]) eq.1695: bits[1] = eq(half_way_chunk, literal.1691, id=1695, pos=[(0,3711,45), (3,172,56)]) concat.1699: bits[54] = concat(cancel__1, bit_slice.1696, id=1699, pos=[(0,3712,27), (3,172,56)]) literal.1835: bits[54] = literal(value=1, id=1835, pos=[(0,3713,8), (3,172,56)]) or.1698: bits[1] = or(ugt.1694, eq.1695, id=1698, pos=[(0,3711,12), (3,172,56)]) add.1825: bits[54] = add(concat.1699, literal.1835, id=1825, pos=[(0,3713,8), (3,172,56)]) literal.1836: bits[8] = literal(value=0, id=1836, pos=[(0,3724,15), (3,172,56)]) concat.1848: bits[8] = concat(cancel__1, bit_slice.1666, id=1848, pos=[(0,3724,15), (3,172,56)]) bit_slice.1849: bits[1] = bit_slice(encode.1665, start=0, width=1, id=1849, pos=[(0,3724,15), (3,172,56)]) concat.1568: bits[12] = concat(cancel__1, c_bexp__2, id=1568, pos=[(3,172,56)]) rounded_fraction__1: bits[54] = sel(or.1698, cases=[concat.1699, add.1825], id=1701, pos=[(0,3712,27), (3,172,56)]) sub.1830: bits[8] = sub(literal.1836, concat.1848, id=1830, pos=[(0,3724,15), (3,172,56)]) not.1832: bits[1] = not(bit_slice.1849, id=1832, pos=[(0,3724,15), (3,172,56)]) greater_exp: bits[12] = sel(overflow_detected, cases=[concat.1568, ab_bexp__2], id=1767, pos=[(0,3637,8), (3,172,56)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=53, width=1, id=1704, pos=[(0,3719,41), (3,172,56)]) literal.1708: bits[162] = literal(value=0x0, id=1708, pos=[(0,3669,43), (3,172,56)]) concat.1833: bits[9] = concat(sub.1830, not.1832, id=1833, pos=[(0,3724,15), (3,172,56)]) concat.1706: bits[13] = concat(cancel__1, greater_exp, id=1706, pos=[(3,172,56)]) concat.1707: bits[13] = concat(literal.1555, rounding_carry, id=1707, pos=[(3,172,56)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1708, id=1711, pos=[(0,3669,27), (3,172,56)]) bexp_associative_element__1: bits[13] = sign_ext(concat.1833, new_bit_count=13, id=1709, pos=[(0,3724,15), (3,172,56)]) bexp_associative_element__4: bits[13] = add(concat.1706, concat.1707, id=1710, pos=[(0,3724,15), (3,172,56)]) not.1814: bits[1] = not(fraction_is_zero, id=1814, pos=[(0,3726,15), (3,172,56)]) bexp__1: bits[13] = add(bexp_associative_element__1, bexp_associative_element__4, id=1712, pos=[(0,3724,15), (3,172,56)]) sign_ext.1815: bits[13] = sign_ext(not.1814, new_bit_count=13, id=1815, pos=[(0,3726,15), (3,172,56)]) bexp__2: bits[13] = and(bexp__1, sign_ext.1815, id=1816, pos=[(0,3726,15), (3,172,56)]) bit_slice.1722: bits[1] = bit_slice(bexp__2, start=12, width=1, id=1722, pos=[(0,3727,18), (3,172,56)]) not.1817: bits[1] = not(bit_slice.1722, id=1817, pos=[(0,3727,15), (3,172,56)]) bit_slice.1723: bits[12] = bit_slice(bexp__2, start=0, width=12, id=1723, pos=[(3,172,56)]) sign_ext.1818: bits[12] = sign_ext(not.1817, new_bit_count=12, id=1818, pos=[(0,3727,15), (3,172,56)]) eq.1713: bits[1] = eq(ab_bexp__2, literal.1578, id=1713, pos=[(0,3552,5), (0,3751,38), (3,172,56)]) eq.1714: bits[1] = eq(ab_fraction__2, literal.1543, id=1714, pos=[(0,3546,46), (0,3741,39), (3,172,56)]) eq.1715: bits[1] = eq(c_bexp__2, max_exp, id=1715, pos=[(0,71,6), (0,3751,51), (3,172,56)]) eq.1716: bits[1] = eq(c_fraction__2, literal.1545, id=1716, pos=[(0,96,44), (0,3741,52), (3,172,56)]) bexp__6: bits[12] = and(bit_slice.1723, sign_ext.1818, id=1819, pos=[(0,3727,15), (3,172,56)]) nand.1718: bits[1] = nand(eq.1713, eq.1714, id=1718, pos=[(0,3745,37), (3,172,56)]) not.1719: bits[1] = not(eq.1715, id=1719, pos=[(0,3745,72), (3,172,56)]) not.1720: bits[1] = not(eq.1716, id=1720, pos=[(0,3745,72), (3,172,56)]) and.1721: bits[1] = and(eq.1713, eq.1714, id=1721, pos=[(0,3546,5), (0,3741,39), (3,172,56)]) and.1735: bits[1] = and(eq.1715, eq.1716, id=1735, pos=[(0,96,6), (0,3741,52), (3,172,56)]) bit_slice.1736: bits[11] = bit_slice(bexp__6, start=0, width=11, id=1736, pos=[(3,172,56)]) nor.1724: bits[1] = nor(nand.1718, ab_sign__2, id=1724, pos=[(0,3745,37), (3,172,56)]) nor.1725: bits[1] = nor(not.1719, not.1720, c_sign__2, id=1725, pos=[(0,3745,72), (3,172,56)]) and.1726: bits[1] = and(and.1721, ab_sign__2, id=1726, pos=[(0,3750,37), (3,172,56)]) and.1727: bits[1] = and(eq.1715, eq.1716, c_sign__2, id=1727, pos=[(0,3750,72), (3,172,56)]) is_operand_inf: bits[1] = or(and.1721, and.1735, id=1742, pos=[(0,3741,39), (3,172,56)]) bit_slice.1743: bits[1] = bit_slice(bexp__6, start=11, width=1, id=1743, pos=[(0,3737,29), (3,172,56)]) and_reduce.1744: bits[1] = and_reduce(bit_slice.1736, id=1744, pos=[(0,3737,29), (3,172,56)]) eq.1745: bits[1] = eq(bexp__6, literal.1555, id=1745, pos=[(0,3732,29), (3,172,56)]) not.1779: bits[1] = not(eq.1713, id=1779, pos=[(0,3552,5), (0,3751,38), (3,172,56)]) has_pos_inf: bits[1] = or(nor.1724, nor.1725, id=1732, pos=[(0,3745,37), (3,172,56)]) has_neg_inf: bits[1] = or(and.1726, and.1727, id=1733, pos=[(0,3750,37), (3,172,56)]) or.1749: bits[1] = or(is_operand_inf, bit_slice.1743, and_reduce.1744, eq.1745, id=1749, pos=[(0,3743,26), (3,172,56)]) nor.1780: bits[1] = nor(not.1779, eq.1714, id=1780, pos=[(0,3552,5), (0,3751,38), (3,172,56)]) nor.1782: bits[1] = nor(not.1719, eq.1716, id=1782, pos=[(0,71,6), (0,3751,51), (3,172,56)]) and.1739: bits[1] = and(has_pos_inf, has_neg_inf, id=1739, pos=[(0,3751,58), (3,172,56)]) concat.1740: bits[2] = concat(bit_slice.1660, fraction_is_zero, id=1740, pos=[(3,172,56)]) not.1741: bits[1] = not(greater_sign, id=1741, pos=[(0,3672,25), (3,172,56)]) not.1820: bits[1] = not(or.1749, id=1820, pos=[(0,3743,26), (3,172,56)]) is_result_nan: bits[1] = or(nor.1780, nor.1782, and.1739, id=1746, pos=[(0,3751,38), (3,172,56)]) result_sign: bits[1] = priority_sel(concat.1740, cases=[cancel__1, not.1741], default=greater_sign, id=1747, pos=[(3,172,56)]) not.1748: bits[1] = not(has_pos_inf, id=1748, pos=[(0,3746,42), (3,172,56)]) result_fraction: bits[52] = bit_slice(rounded_fraction__1, start=0, width=52, id=1750, pos=[(3,172,56)]) sign_ext.1821: bits[52] = sign_ext(not.1820, new_bit_count=52, id=1821, pos=[(0,3743,26), (3,172,56)]) not.1751: bits[1] = not(is_result_nan, id=1751, pos=[(0,3755,22), (3,172,56)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1748], id=1752, pos=[(0,3746,22), (3,172,56)]) or.1753: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1743, and_reduce.1744, id=1753, pos=[(0,3752,21), (3,172,56)]) result_fraction__3: bits[52] = and(result_fraction, sign_ext.1821, id=1822, pos=[(0,3743,26), (3,172,56)]) literal.1755: bits[52] = literal(value=281474976710656, id=1755, pos=[(0,3754,27), (3,172,56)]) after_all.520: token = after_all(id=520) nand.1768: bits[1] = nand(carry_bit__2, cancel__2, id=1768, pos=[(3,172,56)]) result_sign__2: bits[1] = and(not.1751, result_sign__1, id=1757, pos=[(0,3755,22), (3,172,56)]) result_exp__2: bits[11] = sel(or.1753, cases=[bit_slice.1736, max_exp], id=1758, pos=[(0,3752,21), (3,172,56)]) result_fraction__4: bits[52] = sel(is_result_nan, cases=[result_fraction__3, literal.1755], id=1759, pos=[(0,3754,8), (3,172,56)]) assert_1523__2: token = assert(after_all.520, nand.1768, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3700:19-3700:60", label="carry_and_cancel", id=1763, pos=[(3,172,56)]) ret tuple.1761: (bits[1], bits[11], bits[52]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1761, pos=[(0,3757,33), (3,172,56)]) }