package bfloat16 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/bfloat16.x" top fn __bfloat16__fma(a: (bits[1], bits[8], bits[7]) id=517, b: (bits[1], bits[8], bits[7]) id=518, c: (bits[1], bits[8], bits[7]) id=519) -> (bits[1], bits[8], bits[7]) { a_bexp__1: bits[8] = tuple_index(a, index=1, id=1525, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,60)]) literal.1527: bits[8] = literal(value=0, id=1527, pos=[(0,3642,30), (3,172,60)]) b_bexp__1: bits[8] = tuple_index(b, index=1, id=1526, pos=[(0,3444,45), (0,3570,29), (0,3632,25), (3,172,60)]) cancel__1: bits[1] = literal(value=0, id=1524, pos=[(0,3692,17), (3,172,60)]) bnot__1: bits[1] = literal(value=1, id=1528, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,172,60)]) a_fraction__1: bits[7] = tuple_index(a, index=2, id=1529, pos=[(0,3430,33), (0,3570,29), (0,3632,25), (3,172,60)]) b_fraction__1: bits[7] = tuple_index(b, index=2, id=1530, pos=[(0,3431,33), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1533: bits[1] = eq(a_bexp__1, literal.1527, id=1533, pos=[(0,804,5), (0,3427,40), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1534: bits[1] = eq(b_bexp__1, literal.1527, id=1534, pos=[(0,804,5), (0,3427,67), (0,3570,29), (0,3632,25), (3,172,60)]) concat.1531: bits[9] = concat(cancel__1, a_bexp__1, id=1531, pos=[(0,3570,29), (0,3632,25), (3,172,60)]) concat.1532: bits[9] = concat(cancel__1, b_bexp__1, id=1532, pos=[(0,3570,29), (0,3632,25), (3,172,60)]) a_significand__1: bits[8] = concat(bnot__1, a_fraction__1, id=1535, pos=[(0,3430,24), (0,3570,29), (0,3632,25), (3,172,60)]) b_significand__1: bits[8] = concat(bnot__1, b_fraction__1, id=1536, pos=[(0,3431,24), (0,3570,29), (0,3632,25), (3,172,60)]) nor.1831: bits[1] = nor(eq.1533, eq.1534, id=1831, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,60)]) add.1537: bits[9] = add(concat.1531, concat.1532, id=1537, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,60)]) umul.1539: bits[16] = umul(a_significand__1, b_significand__1, id=1539, pos=[(1,224,5), (0,3435,61), (0,3570,29), (0,3632,25), (3,172,60)]) sign_ext.1787: bits[16] = sign_ext(nor.1831, new_bit_count=16, id=1787, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,60)]) max_exp: bits[8] = literal(value=255, id=1541, pos=[(0,3736,32), (3,172,60)]) literal.1542: bits[7] = literal(value=0, id=1542, pos=[(0,3732,55), (3,172,60)]) concat.1543: bits[10] = concat(cancel__1, add.1537, id=1543, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,60)]) literal.1544: bits[10] = literal(value=897, id=1544, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,60)]) full_product: bits[16] = and(umul.1539, sign_ext.1787, id=1788, pos=[(0,3435,8), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1546: bits[1] = eq(a_bexp__1, max_exp, id=1546, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1547: bits[1] = eq(a_fraction__1, literal.1542, id=1547, pos=[(0,96,44), (0,3477,31), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1548: bits[1] = eq(b_bexp__1, max_exp, id=1548, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,60)]) eq.1549: bits[1] = eq(b_fraction__1, literal.1542, id=1549, pos=[(0,96,44), (0,3477,44), (0,3570,29), (0,3632,25), (3,172,60)]) exp: bits[10] = add(concat.1543, literal.1544, id=1550, pos=[(0,3444,16), (0,3570,29), (0,3632,25), (3,172,60)]) sign_ext.1790: bits[10] = sign_ext(nor.1831, new_bit_count=10, id=1790, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,172,60)]) literal.1552: bits[9] = literal(value=0, id=1552, pos=[(0,3652,64), (3,172,60)]) in_upper_binade: bits[1] = bit_slice(full_product, start=15, width=1, id=1553, pos=[(1,357,61), (0,3459,34), (0,3570,29), (0,3632,25), (3,172,60)]) and.1554: bits[1] = and(eq.1546, eq.1547, id=1554, pos=[(0,96,6), (0,3477,31), (0,3570,29), (0,3632,25), (3,172,60)]) and.1555: bits[1] = and(eq.1548, eq.1549, id=1555, pos=[(0,96,6), (0,3477,44), (0,3570,29), (0,3632,25), (3,172,60)]) exp__1: bits[10] = and(exp, sign_ext.1790, id=1791, pos=[(0,3453,14), (0,3570,29), (0,3632,25), (3,172,60)]) concat.1557: bits[10] = concat(literal.1552, in_upper_binade, id=1557, pos=[(0,3570,29), (0,3632,25), (3,172,60)]) has_inf_arg: bits[1] = or(and.1554, and.1555, id=1558, pos=[(0,3484,28), (0,3570,29), (0,3632,25), (3,172,60)]) result_exp__1: bits[10] = add(exp__1, concat.1557, id=1559, pos=[(0,3464,14), (0,3570,29), (0,3632,25), (3,172,60)]) literal.1560: bits[10] = literal(value=511, id=1560, pos=[(0,3478,62), (0,3570,29), (0,3632,25), (3,172,60)]) result_exp__3: bits[10] = sel(has_inf_arg, cases=[result_exp__1, literal.1560], id=1564, pos=[(0,3478,21), (0,3570,29), (0,3632,25), (3,172,60)]) literal.1551: bits[10] = literal(value=0, id=1551, pos=[(0,3726,37), (3,172,60)]) is_subnormal: bits[1] = sle(result_exp__3, literal.1551, id=1569, pos=[(0,3576,34), (0,3632,25), (3,172,60)]) not.1562: bits[1] = not(eq.1546, id=1562, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,60)]) not.1563: bits[1] = not(eq.1548, id=1563, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,60)]) has_0_arg: bits[1] = or(eq.1533, eq.1534, id=1538, pos=[(0,3427,40), (0,3570,29), (0,3632,25), (3,172,60)]) not.1792: bits[1] = not(is_subnormal, id=1792, pos=[(0,3577,21), (0,3632,25), (3,172,60)]) nor.1566: bits[1] = nor(not.1562, eq.1547, id=1566, pos=[(0,71,6), (0,3483,28), (0,3570,29), (0,3632,25), (3,172,60)]) nor.1567: bits[1] = nor(not.1563, eq.1549, id=1567, pos=[(0,71,6), (0,3483,41), (0,3570,29), (0,3632,25), (3,172,60)]) and.1568: bits[1] = and(has_0_arg, has_inf_arg, id=1568, pos=[(0,3485,40), (0,3570,29), (0,3632,25), (3,172,60)]) bit_slice.1570: bits[9] = bit_slice(result_exp__3, start=0, width=9, id=1570, pos=[(0,3632,25), (3,172,60)]) sign_ext.1793: bits[9] = sign_ext(not.1792, new_bit_count=9, id=1793, pos=[(0,3577,21), (0,3632,25), (3,172,60)]) is_result_nan__1: bits[1] = or(nor.1566, nor.1567, and.1568, id=1573, pos=[(0,3485,24), (0,3570,29), (0,3632,25), (3,172,60)]) result_exp: bits[9] = and(bit_slice.1570, sign_ext.1793, id=1794, pos=[(0,3577,21), (0,3632,25), (3,172,60)]) literal.1575: bits[9] = literal(value=511, id=1575, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) c_bexp__2: bits[8] = tuple_index(c, index=1, id=1561, pos=[(0,3635,44), (3,172,60)]) ab_bexp__2: bits[9] = sel(is_result_nan__1, cases=[result_exp, literal.1575], id=1578, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) literal.1771: bits[2] = literal(value=1, id=1771, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) bnot__2: bits[8] = not(c_bexp__2, id=1576, pos=[(2,90,15), (0,3005,44), (0,3635,33), (3,172,60)]) ab_bexp_extended__1: bits[10] = concat(cancel__1, ab_bexp__2, id=1581, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) bnot_extended__2: bits[10] = concat(literal.1771, bnot__2, id=1772, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) full_result: bits[10] = add(ab_bexp_extended__1, bnot_extended__2, id=1585, pos=[(1,1119,45), (2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) overflow_detected: bits[1] = bit_slice(full_result, start=9, width=1, id=1587, pos=[(1,1121,49), (2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) bit_slice.1572: bits[15] = bit_slice(full_product, start=0, width=15, id=1572, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,172,60)]) nc: bits[1] = not(overflow_detected, id=1591, pos=[(2,92,19), (0,3005,44), (0,3635,33), (3,172,60)]) concat.1577: bits[16] = concat(bit_slice.1572, cancel__1, id=1577, pos=[(0,3460,74), (0,3570,29), (0,3632,25), (3,172,60)]) not.1795: bits[1] = not(has_inf_arg, id=1795, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,60)]) narrowed_result: bits[9] = bit_slice(full_result, start=0, width=9, id=1595, pos=[(2,91,63), (0,3005,44), (0,3635,33), (3,172,60)]) ab_bexpor_mask__2: bits[9] = sign_ext(nc, new_bit_count=9, id=1596, pos=[(2,94,32), (0,3005,44), (0,3635,33), (3,172,60)]) result_fraction__1: bits[16] = sel(in_upper_binade, cases=[concat.1577, umul.1539], id=1580, pos=[(0,3460,30), (0,3570,29), (0,3632,25), (3,172,60)]) sign_ext.1796: bits[16] = sign_ext(not.1795, new_bit_count=16, id=1796, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,60)]) neg.1584: bits[9] = neg(bit_slice.1570, id=1584, pos=[(0,3579,33), (0,3632,25), (3,172,60)]) sign_ext.1798: bits[9] = sign_ext(is_subnormal, new_bit_count=9, id=1798) result: bits[9] = xor(narrowed_result, ab_bexpor_mask__2, id=1600, pos=[(2,95,18), (0,3005,44), (0,3635,33), (3,172,60)]) concat.1601: bits[9] = concat(literal.1527, overflow_detected, id=1601, pos=[(0,3006,68), (0,3635,33), (3,172,60)]) result_fraction__2: bits[16] = and(result_fraction__1, sign_ext.1796, id=1797, pos=[(0,3479,26), (0,3570,29), (0,3632,25), (3,172,60)]) and.1799: bits[9] = and(neg.1584, sign_ext.1798, id=1799) exp_difference: bits[9] = add(result, concat.1601, id=1604, pos=[(2,54,7), (0,3006,68), (0,3635,33), (3,172,60)]) c_fraction__2: bits[7] = tuple_index(c, index=2, id=1588, pos=[(0,3641,18), (3,172,60)]) ne.1828: bits[1] = ne(c_bexp__2, literal.1527, id=1828, pos=[(0,3642,17), (3,172,60)]) sign_ext.1803: bits[9] = sign_ext(overflow_detected, new_bit_count=9, id=1803, pos=[(0,3653,19), (3,172,60)]) result_fraction__5: bits[16] = shrl(result_fraction__2, and.1799, id=1785) literal.1590: bits[16] = literal(value=49152, id=1590, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) literal.1607: bits[25] = literal(value=33554431, id=1607, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) rshift_ab: bits[9] = and(exp_difference, ab_bexpor_mask__2, id=1802, pos=[(0,3652,20), (3,172,60)]) concat.1593: bits[8] = concat(bnot__1, c_fraction__2, id=1593, pos=[(0,3642,17), (3,172,60)]) sign_ext.1806: bits[8] = sign_ext(ne.1828, new_bit_count=8, id=1806, pos=[(0,3642,17), (3,172,60)]) rshift_c: bits[9] = and(exp_difference, sign_ext.1803, id=1804, pos=[(0,3653,19), (3,172,60)]) ab_fraction__2: bits[16] = sel(is_result_nan__1, cases=[result_fraction__5, literal.1590], id=1594, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) shll.1613: bits[25] = shll(literal.1607, rshift_ab, id=1613, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) wide_c__3: bits[8] = and(concat.1593, sign_ext.1806, id=1807, pos=[(0,3642,17), (3,172,60)]) literal.1598: bits[17] = literal(value=0, id=1598, pos=[(0,3648,17), (3,172,60)]) not.1846: bits[7] = not(c_fraction__2, id=1846, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) shll.1615: bits[25] = shll(literal.1607, rshift_c, id=1615, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1620, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,172,60)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1621, pos=[(0,3467,33), (0,3570,29), (0,3632,25), (3,172,60)]) wide_ab: bits[25] = concat(ab_fraction__2, literal.1552, id=1599, pos=[(0,3647,11), (3,172,60)]) not.1606: bits[16] = not(ab_fraction__2, id=1606, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) bit_slice.1617: bits[16] = bit_slice(shll.1613, start=9, width=16, id=1617, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) wide_c__2: bits[25] = concat(wide_c__3, literal.1598, id=1602, pos=[(0,3648,17), (3,172,60)]) concat.1849: bits[8] = concat(cancel__1, not.1846, id=1849, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) not.1834: bits[8] = not(sign_ext.1806, id=1834, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) bit_slice.1619: bits[8] = bit_slice(shll.1615, start=17, width=8, id=1619, pos=[(1,1411,19), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1626, pos=[(0,3467,23), (0,3570,29), (0,3632,25), (3,172,60)]) shifted_ab: bits[25] = shrl(wide_ab, rshift_ab, id=1622, pos=[(0,3654,21), (3,172,60)]) nor.1623: bits[16] = nor(not.1606, bit_slice.1617, id=1623, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) literal.1540: bits[16] = literal(value=0, id=1540, pos=[(0,3435,23), (0,3570,29), (0,3632,25), (3,172,60)]) shifted_c: bits[25] = shrl(wide_c__2, rshift_c, id=1624, pos=[(0,3655,20), (3,172,60)]) nor.1835: bits[8] = nor(concat.1849, not.1834, bit_slice.1619, id=1835, pos=[(1,1411,4), (1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) not.1631: bits[1] = not(result_sign__3, id=1631, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) bit_slice.1627: bits[1] = bit_slice(shifted_ab, start=0, width=1, id=1627, pos=[(0,3660,22), (3,172,60)]) ne.1628: bits[1] = ne(nor.1623, literal.1540, id=1628, pos=[(1,1501,17), (1,1528,22), (0,3656,38), (3,172,60)]) bit_slice.1629: bits[1] = bit_slice(shifted_c, start=0, width=1, id=1629, pos=[(0,3661,21), (3,172,60)]) ne.1630: bits[1] = ne(nor.1835, literal.1527, id=1630, pos=[(1,1501,17), (1,1528,22), (0,3657,37), (3,172,60)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1637, pos=[(0,3637,55), (3,172,60)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1631, id=1636, pos=[(0,3584,4), (0,3632,25), (3,172,60)]) bit_slice.1632: bits[24] = bit_slice(shifted_ab, start=1, width=24, id=1632, pos=[(0,3660,22), (3,172,60)]) or.1633: bits[1] = or(bit_slice.1627, ne.1628, id=1633, pos=[(0,3660,22), (3,172,60)]) bit_slice.1634: bits[24] = bit_slice(shifted_c, start=1, width=24, id=1634, pos=[(0,3661,21), (3,172,60)]) or.1635: bits[1] = or(bit_slice.1629, ne.1630, id=1635, pos=[(0,3661,21), (3,172,60)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1760, pos=[(0,3637,8), (3,172,60)]) shifted_ab__1_squeezed: bits[26] = concat(cancel__1, bit_slice.1632, or.1633, id=1862, pos=[(3,172,60)]) shifted_c__1_squeezed: bits[26] = concat(cancel__1, bit_slice.1634, or.1635, id=1865, pos=[(3,172,60)]) xor.1644: bits[1] = xor(ab_sign__2, greater_sign, id=1644, pos=[(0,3664,26), (3,172,60)]) neg.1642: bits[26] = neg(shifted_ab__1_squeezed, id=1642, pos=[(0,3664,50), (3,172,60)]) xor.1647: bits[1] = xor(c_sign__2, greater_sign, id=1647, pos=[(0,3665,24), (3,172,60)]) neg.1643: bits[26] = neg(shifted_c__1_squeezed, id=1643, pos=[(0,3665,48), (3,172,60)]) shifted_ab__2_squeezed: bits[26] = sel(xor.1644, cases=[shifted_ab__1_squeezed, neg.1642], id=1855, pos=[(0,3664,21), (3,172,60)]) shifted_c__2_squeezed: bits[26] = sel(xor.1647, cases=[shifted_c__1_squeezed, neg.1643], id=1859, pos=[(0,3665,20), (3,172,60)]) shifted_ab__2: bits[27] = sign_ext(shifted_ab__2_squeezed, new_bit_count=27, id=1856, pos=[(0,3664,21), (3,172,60)]) shifted_c__2: bits[27] = sign_ext(shifted_c__2_squeezed, new_bit_count=27, id=1860, pos=[(0,3665,20), (3,172,60)]) sum_fraction: bits[27] = add(shifted_ab__2, shifted_c__2, id=1652, pos=[(0,3668,23), (3,172,60)]) bit_slice.1653: bits[26] = bit_slice(sum_fraction, start=0, width=26, id=1653, pos=[(0,3677,24), (3,172,60)]) bit_slice.1654: bits[1] = bit_slice(sum_fraction, start=26, width=1, id=1654, pos=[(0,3670,47), (3,172,60)]) neg.1655: bits[26] = neg(bit_slice.1653, id=1655, pos=[(0,3678,27), (3,172,60)]) abs_fraction__2: bits[26] = sel(bit_slice.1654, cases=[bit_slice.1653, neg.1655], id=1656, pos=[(0,3677,24), (3,172,60)]) reverse.1657: bits[26] = reverse(abs_fraction__2, id=1657, pos=[(0,3691,28), (3,172,60)]) one_hot.1658: bits[27] = one_hot(reverse.1657, lsb_prio=true, id=1658, pos=[(0,3691,28), (3,172,60)]) encode.1659: bits[5] = encode(one_hot.1658, id=1659, pos=[(0,3691,28), (3,172,60)]) bit_slice.1660: bits[4] = bit_slice(encode.1659, start=1, width=4, id=1660, pos=[(0,3692,17), (3,172,60)]) cancel__2: bits[1] = or_reduce(bit_slice.1660, id=1661, pos=[(0,3692,17), (3,172,60)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=25, width=1, id=1662, pos=[(0,3685,32), (3,172,60)]) concat.1663: bits[6] = concat(cancel__1, encode.1659, id=1663, pos=[(0,3691,28), (3,172,60)]) literal.1664: bits[6] = literal(value=63, id=1664, pos=[(0,3694,26), (3,172,60)]) not.1665: bits[1] = not(cancel__2, id=1665, pos=[(3,172,60)]) not.1666: bits[1] = not(carry_bit__2, id=1666, pos=[(3,172,60)]) bit_slice.1667: bits[1] = bit_slice(abs_fraction__2, start=1, width=1, id=1667, pos=[(0,3687,25), (3,172,60)]) bit_slice.1668: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1668, pos=[(0,3687,55), (3,172,60)]) add.1669: bits[6] = add(concat.1663, literal.1664, id=1669, pos=[(0,3694,26), (3,172,60)]) nor.1670: bits[1] = nor(carry_bit__2, cancel__2, id=1670, pos=[(3,172,60)]) nor.1671: bits[1] = nor(carry_bit__2, not.1665, id=1671, pos=[(3,172,60)]) nor.1672: bits[1] = nor(not.1666, cancel__2, id=1672, pos=[(3,172,60)]) bit_slice.1673: bits[24] = bit_slice(abs_fraction__2, start=2, width=24, id=1673, pos=[(0,3687,25), (3,172,60)]) carry_fraction__1: bits[1] = or(bit_slice.1667, bit_slice.1668, id=1674, pos=[(0,3687,25), (3,172,60)]) bit_slice.1675: bits[25] = bit_slice(abs_fraction__2, start=0, width=25, id=1675, pos=[(3,172,60)]) sign_ext.1676: bits[26] = sign_ext(add.1669, new_bit_count=26, id=1676, pos=[(0,3694,26), (3,172,60)]) concat.1677: bits[3] = concat(nor.1670, nor.1671, nor.1672, id=1677, pos=[(3,172,60)]) carry_fraction__2: bits[25] = concat(bit_slice.1673, carry_fraction__1, id=1678, pos=[(0,3687,25), (3,172,60)]) cancel_fraction__2: bits[25] = shll(bit_slice.1675, sign_ext.1676, id=1679, pos=[(3,172,60)]) literal.1680: bits[25] = literal(value=0, id=1680, pos=[(0,3699,39), (3,172,60)]) shifted_fraction: bits[25] = priority_sel(concat.1677, cases=[carry_fraction__2, cancel_fraction__2, bit_slice.1675], default=literal.1680, id=1681, pos=[(3,172,60)]) normal_chunk: bits[17] = bit_slice(shifted_fraction, start=0, width=17, id=1682, pos=[(0,3706,39), (3,172,60)]) half_of_extra: bits[17] = literal(value=65536, id=1683, pos=[(0,3709,24), (3,172,60)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=16, width=2, id=1684, pos=[(0,3708,24), (3,172,60)]) literal.1685: bits[2] = literal(value=3, id=1685, pos=[(0,3711,63), (3,172,60)]) bit_slice.1690: bits[8] = bit_slice(shifted_fraction, start=17, width=8, id=1690, pos=[(0,3712,27), (3,172,60)]) ugt.1688: bits[1] = ugt(normal_chunk, half_of_extra, id=1688, pos=[(0,3711,12), (3,172,60)]) eq.1689: bits[1] = eq(half_way_chunk, literal.1685, id=1689, pos=[(0,3711,45), (3,172,60)]) concat.1693: bits[9] = concat(cancel__1, bit_slice.1690, id=1693, pos=[(0,3712,27), (3,172,60)]) literal.1829: bits[9] = literal(value=1, id=1829, pos=[(0,3713,8), (3,172,60)]) or.1692: bits[1] = or(ugt.1688, eq.1689, id=1692, pos=[(0,3711,12), (3,172,60)]) add.1819: bits[9] = add(concat.1693, literal.1829, id=1819, pos=[(0,3713,8), (3,172,60)]) literal.1830: bits[5] = literal(value=0, id=1830, pos=[(0,3724,15), (3,172,60)]) concat.1842: bits[5] = concat(cancel__1, bit_slice.1660, id=1842, pos=[(0,3724,15), (3,172,60)]) bit_slice.1843: bits[1] = bit_slice(encode.1659, start=0, width=1, id=1843, pos=[(0,3724,15), (3,172,60)]) concat.1565: bits[9] = concat(cancel__1, c_bexp__2, id=1565, pos=[(3,172,60)]) rounded_fraction__1: bits[9] = sel(or.1692, cases=[concat.1693, add.1819], id=1695, pos=[(0,3712,27), (3,172,60)]) sub.1824: bits[5] = sub(literal.1830, concat.1842, id=1824, pos=[(0,3724,15), (3,172,60)]) not.1826: bits[1] = not(bit_slice.1843, id=1826, pos=[(0,3724,15), (3,172,60)]) greater_exp: bits[9] = sel(overflow_detected, cases=[concat.1565, ab_bexp__2], id=1761, pos=[(0,3637,8), (3,172,60)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=8, width=1, id=1698, pos=[(0,3719,41), (3,172,60)]) literal.1702: bits[27] = literal(value=0, id=1702, pos=[(0,3669,43), (3,172,60)]) concat.1827: bits[6] = concat(sub.1824, not.1826, id=1827, pos=[(0,3724,15), (3,172,60)]) concat.1700: bits[10] = concat(cancel__1, greater_exp, id=1700, pos=[(3,172,60)]) concat.1701: bits[10] = concat(literal.1552, rounding_carry, id=1701, pos=[(3,172,60)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1702, id=1705, pos=[(0,3669,27), (3,172,60)]) bexp_associative_element__1: bits[10] = sign_ext(concat.1827, new_bit_count=10, id=1703, pos=[(0,3724,15), (3,172,60)]) bexp_associative_element__4: bits[10] = add(concat.1700, concat.1701, id=1704, pos=[(0,3724,15), (3,172,60)]) not.1808: bits[1] = not(fraction_is_zero, id=1808, pos=[(0,3726,15), (3,172,60)]) bexp__1: bits[10] = add(bexp_associative_element__1, bexp_associative_element__4, id=1706, pos=[(0,3724,15), (3,172,60)]) sign_ext.1809: bits[10] = sign_ext(not.1808, new_bit_count=10, id=1809, pos=[(0,3726,15), (3,172,60)]) bexp__2: bits[10] = and(bexp__1, sign_ext.1809, id=1810, pos=[(0,3726,15), (3,172,60)]) bit_slice.1716: bits[1] = bit_slice(bexp__2, start=9, width=1, id=1716, pos=[(0,3727,18), (3,172,60)]) not.1811: bits[1] = not(bit_slice.1716, id=1811, pos=[(0,3727,15), (3,172,60)]) bit_slice.1717: bits[9] = bit_slice(bexp__2, start=0, width=9, id=1717, pos=[(3,172,60)]) sign_ext.1812: bits[9] = sign_ext(not.1811, new_bit_count=9, id=1812, pos=[(0,3727,15), (3,172,60)]) eq.1707: bits[1] = eq(ab_bexp__2, literal.1575, id=1707, pos=[(0,3552,5), (0,3751,38), (3,172,60)]) eq.1708: bits[1] = eq(ab_fraction__2, literal.1540, id=1708, pos=[(0,3546,46), (0,3741,39), (3,172,60)]) eq.1709: bits[1] = eq(c_bexp__2, max_exp, id=1709, pos=[(0,71,6), (0,3751,51), (3,172,60)]) eq.1710: bits[1] = eq(c_fraction__2, literal.1542, id=1710, pos=[(0,96,44), (0,3741,52), (3,172,60)]) bexp__6: bits[9] = and(bit_slice.1717, sign_ext.1812, id=1813, pos=[(0,3727,15), (3,172,60)]) nand.1712: bits[1] = nand(eq.1707, eq.1708, id=1712, pos=[(0,3745,37), (3,172,60)]) not.1713: bits[1] = not(eq.1709, id=1713, pos=[(0,3745,72), (3,172,60)]) not.1714: bits[1] = not(eq.1710, id=1714, pos=[(0,3745,72), (3,172,60)]) and.1715: bits[1] = and(eq.1707, eq.1708, id=1715, pos=[(0,3546,5), (0,3741,39), (3,172,60)]) and.1729: bits[1] = and(eq.1709, eq.1710, id=1729, pos=[(0,96,6), (0,3741,52), (3,172,60)]) bit_slice.1730: bits[8] = bit_slice(bexp__6, start=0, width=8, id=1730, pos=[(3,172,60)]) nor.1718: bits[1] = nor(nand.1712, ab_sign__2, id=1718, pos=[(0,3745,37), (3,172,60)]) nor.1719: bits[1] = nor(not.1713, not.1714, c_sign__2, id=1719, pos=[(0,3745,72), (3,172,60)]) and.1720: bits[1] = and(and.1715, ab_sign__2, id=1720, pos=[(0,3750,37), (3,172,60)]) and.1721: bits[1] = and(eq.1709, eq.1710, c_sign__2, id=1721, pos=[(0,3750,72), (3,172,60)]) is_operand_inf: bits[1] = or(and.1715, and.1729, id=1736, pos=[(0,3741,39), (3,172,60)]) bit_slice.1737: bits[1] = bit_slice(bexp__6, start=8, width=1, id=1737, pos=[(0,3737,29), (3,172,60)]) and_reduce.1738: bits[1] = and_reduce(bit_slice.1730, id=1738, pos=[(0,3737,29), (3,172,60)]) eq.1739: bits[1] = eq(bexp__6, literal.1552, id=1739, pos=[(0,3732,29), (3,172,60)]) not.1773: bits[1] = not(eq.1707, id=1773, pos=[(0,3552,5), (0,3751,38), (3,172,60)]) has_pos_inf: bits[1] = or(nor.1718, nor.1719, id=1726, pos=[(0,3745,37), (3,172,60)]) has_neg_inf: bits[1] = or(and.1720, and.1721, id=1727, pos=[(0,3750,37), (3,172,60)]) or.1743: bits[1] = or(is_operand_inf, bit_slice.1737, and_reduce.1738, eq.1739, id=1743, pos=[(0,3743,26), (3,172,60)]) nor.1774: bits[1] = nor(not.1773, eq.1708, id=1774, pos=[(0,3552,5), (0,3751,38), (3,172,60)]) nor.1776: bits[1] = nor(not.1713, eq.1710, id=1776, pos=[(0,71,6), (0,3751,51), (3,172,60)]) and.1733: bits[1] = and(has_pos_inf, has_neg_inf, id=1733, pos=[(0,3751,58), (3,172,60)]) concat.1734: bits[2] = concat(bit_slice.1654, fraction_is_zero, id=1734, pos=[(3,172,60)]) not.1735: bits[1] = not(greater_sign, id=1735, pos=[(0,3672,25), (3,172,60)]) not.1814: bits[1] = not(or.1743, id=1814, pos=[(0,3743,26), (3,172,60)]) is_result_nan: bits[1] = or(nor.1774, nor.1776, and.1733, id=1740, pos=[(0,3751,38), (3,172,60)]) result_sign: bits[1] = priority_sel(concat.1734, cases=[cancel__1, not.1735], default=greater_sign, id=1741, pos=[(3,172,60)]) not.1742: bits[1] = not(has_pos_inf, id=1742, pos=[(0,3746,42), (3,172,60)]) result_fraction: bits[7] = bit_slice(rounded_fraction__1, start=0, width=7, id=1744, pos=[(3,172,60)]) sign_ext.1815: bits[7] = sign_ext(not.1814, new_bit_count=7, id=1815, pos=[(0,3743,26), (3,172,60)]) not.1745: bits[1] = not(is_result_nan, id=1745, pos=[(0,3755,22), (3,172,60)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1742], id=1746, pos=[(0,3746,22), (3,172,60)]) or.1747: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1737, and_reduce.1738, id=1747, pos=[(0,3752,21), (3,172,60)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.1815, id=1816, pos=[(0,3743,26), (3,172,60)]) literal.1749: bits[7] = literal(value=8, id=1749, pos=[(0,3754,27), (3,172,60)]) after_all.520: token = after_all(id=520) nand.1762: bits[1] = nand(carry_bit__2, cancel__2, id=1762, pos=[(3,172,60)]) result_sign__2: bits[1] = and(not.1745, result_sign__1, id=1751, pos=[(0,3755,22), (3,172,60)]) result_exp__2: bits[8] = sel(or.1747, cases=[bit_slice.1730, max_exp], id=1752, pos=[(0,3752,21), (3,172,60)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, literal.1749], id=1753, pos=[(0,3754,8), (3,172,60)]) assert_1520__2: token = assert(after_all.520, nand.1762, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3700:19-3700:60", label="carry_and_cancel", id=1757, pos=[(3,172,60)]) ret tuple.1755: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1755, pos=[(0,3757,33), (3,172,60)]) }