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=1500, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1502: bits[8] = literal(value=0, id=1502, pos=[(0,804,14), (0,3431,40), (0,3574,29), (0,3636,25), (3,172,60)]) b_bexp__1: bits[8] = tuple_index(b, index=1, id=1501, pos=[(0,3448,45), (0,3574,29), (0,3636,25), (3,172,60)]) cancel__1: bits[1] = literal(value=0, id=1499, pos=[(0,3574,29), (0,3636,25), (3,172,60)]) bnot__1: bits[1] = literal(value=1, id=1503, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,172,60)]) a_fraction__1: bits[7] = tuple_index(a, index=2, id=1504, pos=[(0,3434,33), (0,3574,29), (0,3636,25), (3,172,60)]) b_fraction__1: bits[7] = tuple_index(b, index=2, id=1505, pos=[(0,3435,33), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1508: bits[1] = eq(a_bexp__1, literal.1502, id=1508, pos=[(0,804,5), (0,3431,40), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1509: bits[1] = eq(b_bexp__1, literal.1502, id=1509, pos=[(0,804,5), (0,3431,67), (0,3574,29), (0,3636,25), (3,172,60)]) concat.1506: bits[9] = concat(cancel__1, a_bexp__1, id=1506, pos=[(0,3574,29), (0,3636,25), (3,172,60)]) concat.1507: bits[9] = concat(cancel__1, b_bexp__1, id=1507, pos=[(0,3574,29), (0,3636,25), (3,172,60)]) a_significand__1: bits[8] = concat(bnot__1, a_fraction__1, id=1510, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,172,60)]) b_significand__1: bits[8] = concat(bnot__1, b_fraction__1, id=1511, pos=[(0,3435,24), (0,3574,29), (0,3636,25), (3,172,60)]) nor.1795: bits[1] = nor(eq.1508, eq.1509, id=1795, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,60)]) add.1512: bits[9] = add(concat.1506, concat.1507, id=1512, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,60)]) umul.1514: bits[16] = umul(a_significand__1, b_significand__1, id=1514, pos=[(1,224,5), (0,3439,61), (0,3574,29), (0,3636,25), (3,172,60)]) sign_ext.1758: bits[16] = sign_ext(nor.1795, new_bit_count=16, id=1758, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,60)]) max_exp: bits[8] = literal(value=255, id=1516, pos=[(0,96,29), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1517: bits[7] = literal(value=0, id=1517, pos=[(0,96,57), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) concat.1518: bits[10] = concat(cancel__1, add.1512, id=1518, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1519: bits[10] = literal(value=897, id=1519, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,60)]) full_product: bits[16] = and(umul.1514, sign_ext.1758, id=1759, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1521: bits[1] = eq(a_bexp__1, max_exp, id=1521, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1522: bits[1] = eq(a_fraction__1, literal.1517, id=1522, pos=[(0,96,44), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1523: bits[1] = eq(b_bexp__1, max_exp, id=1523, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,60)]) eq.1524: bits[1] = eq(b_fraction__1, literal.1517, id=1524, pos=[(0,96,44), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,60)]) exp: bits[10] = add(concat.1518, literal.1519, id=1525, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,172,60)]) sign_ext.1761: bits[10] = sign_ext(nor.1795, new_bit_count=10, id=1761, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1527: bits[9] = literal(value=0, id=1527, pos=[(0,3574,29), (0,3636,25), (3,172,60)]) in_upper_binade: bits[1] = bit_slice(full_product, start=15, width=1, id=1528, pos=[(1,357,61), (0,3463,34), (0,3574,29), (0,3636,25), (3,172,60)]) and.1529: bits[1] = and(eq.1521, eq.1522, id=1529, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) and.1530: bits[1] = and(eq.1523, eq.1524, id=1530, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,172,60)]) exp__1: bits[10] = and(exp, sign_ext.1761, id=1762, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,172,60)]) concat.1532: bits[10] = concat(literal.1527, in_upper_binade, id=1532, pos=[(0,3574,29), (0,3636,25), (3,172,60)]) has_inf_arg: bits[1] = or(and.1529, and.1530, id=1533, pos=[(0,3488,28), (0,3574,29), (0,3636,25), (3,172,60)]) result_exp__3: bits[10] = add(exp__1, concat.1532, id=1534, pos=[(0,3468,14), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1535: bits[10] = literal(value=511, id=1535, pos=[(0,3482,62), (0,3574,29), (0,3636,25), (3,172,60)]) result_exp__4: bits[10] = sel(has_inf_arg, cases=[result_exp__3, literal.1535], id=1539, pos=[(0,3482,21), (0,3574,29), (0,3636,25), (3,172,60)]) literal.1526: bits[10] = literal(value=0, id=1526, pos=[(0,3457,29), (0,3574,29), (0,3636,25), (3,172,60)]) is_subnormal: bits[1] = sle(result_exp__4, literal.1526, id=1544, pos=[(0,3580,34), (0,3636,25), (3,172,60)]) not.1537: bits[1] = not(eq.1521, id=1537, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,172,60)]) not.1538: bits[1] = not(eq.1523, id=1538, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,172,60)]) has_0_arg: bits[1] = or(eq.1508, eq.1509, id=1513, pos=[(0,3431,40), (0,3574,29), (0,3636,25), (3,172,60)]) not.1763: bits[1] = not(is_subnormal, id=1763, pos=[(0,3581,21), (0,3636,25), (3,172,60)]) nor.1541: bits[1] = nor(not.1537, eq.1522, id=1541, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,172,60)]) nor.1542: bits[1] = nor(not.1538, eq.1524, id=1542, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,172,60)]) and.1543: bits[1] = and(has_0_arg, has_inf_arg, id=1543, pos=[(0,3489,40), (0,3574,29), (0,3636,25), (3,172,60)]) bit_slice.1545: bits[9] = bit_slice(result_exp__4, start=0, width=9, id=1545, pos=[(0,3583,45), (0,3636,25), (3,172,60)]) sign_ext.1764: bits[9] = sign_ext(not.1763, new_bit_count=9, id=1764, pos=[(0,3581,21), (0,3636,25), (3,172,60)]) is_result_nan__1: bits[1] = or(nor.1541, nor.1542, and.1543, id=1548, pos=[(0,3489,24), (0,3574,29), (0,3636,25), (3,172,60)]) result_exp__5: bits[9] = and(bit_slice.1545, sign_ext.1764, id=1765, pos=[(0,3581,21), (0,3636,25), (3,172,60)]) literal.1550: bits[9] = literal(value=511, id=1550, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) c_bexp__2: bits[8] = tuple_index(c, index=1, id=1536, pos=[(0,3639,44), (3,172,60)]) ab_bexp__2: bits[9] = sel(is_result_nan__1, cases=[result_exp__5, literal.1550], id=1553, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) literal.1744: bits[2] = literal(value=1, id=1744, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) bnot__2: bits[8] = not(c_bexp__2, id=1551, pos=[(2,90,15), (0,3009,44), (0,3639,33), (3,172,60)]) ab_bexp_extended__1: bits[10] = concat(cancel__1, ab_bexp__2, id=1556, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) bnot_extended__2: bits[10] = concat(literal.1744, bnot__2, id=1745, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) full_result: bits[10] = add(ab_bexp_extended__1, bnot_extended__2, id=1560, pos=[(1,1114,45), (2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) overflow_detected: bits[1] = bit_slice(full_result, start=9, width=1, id=1562, pos=[(1,1116,49), (2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) bit_slice.1547: bits[15] = bit_slice(full_product, start=0, width=15, id=1547, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,172,60)]) nc: bits[1] = not(overflow_detected, id=1566, pos=[(2,92,19), (0,3009,44), (0,3639,33), (3,172,60)]) concat.1552: bits[16] = concat(bit_slice.1547, cancel__1, id=1552, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,172,60)]) not.1766: bits[1] = not(has_inf_arg, id=1766, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,60)]) narrowed_result: bits[9] = bit_slice(full_result, start=0, width=9, id=1570, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,172,60)]) ab_bexpor_mask__2: bits[9] = sign_ext(nc, new_bit_count=9, id=1571, pos=[(2,94,32), (0,3009,44), (0,3639,33), (3,172,60)]) result_fraction__5: bits[16] = sel(in_upper_binade, cases=[concat.1552, umul.1514], id=1555, pos=[(0,3464,30), (0,3574,29), (0,3636,25), (3,172,60)]) sign_ext.1767: bits[16] = sign_ext(not.1766, new_bit_count=16, id=1767, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,60)]) neg.1559: bits[9] = neg(bit_slice.1545, id=1559, pos=[(0,3583,33), (0,3636,25), (3,172,60)]) sign_ext.1769: bits[9] = sign_ext(is_subnormal, new_bit_count=9, id=1769) result: bits[9] = xor(narrowed_result, ab_bexpor_mask__2, id=1575, pos=[(2,95,18), (0,3009,44), (0,3639,33), (3,172,60)]) concat.1576: bits[9] = concat(literal.1502, overflow_detected, id=1576, pos=[(0,3010,68), (0,3639,33), (3,172,60)]) result_fraction__6: bits[16] = and(result_fraction__5, sign_ext.1767, id=1768, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,172,60)]) and.1770: bits[9] = and(neg.1559, sign_ext.1769, id=1770) exp_difference: bits[9] = add(result, concat.1576, id=1579, pos=[(2,54,7), (0,3010,68), (0,3639,33), (3,172,60)]) sign_ext.1774: bits[9] = sign_ext(overflow_detected, new_bit_count=9, id=1774, pos=[(0,3657,19), (3,172,60)]) result_fraction__7: bits[16] = shrl(result_fraction__6, and.1770, id=1756) literal.1565: bits[16] = literal(value=49152, id=1565, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) literal.1582: bits[25] = literal(value=33554431, id=1582, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) rshift_ab: bits[9] = and(exp_difference, ab_bexpor_mask__2, id=1773, pos=[(0,3656,20), (3,172,60)]) c_fraction__2: bits[7] = tuple_index(c, index=2, id=1563, pos=[(0,3645,18), (3,172,60)]) ne.1793: bits[1] = ne(c_bexp__2, literal.1502, id=1793, pos=[(0,3646,17), (3,172,60)]) rshift_c: bits[9] = and(exp_difference, sign_ext.1774, id=1775, pos=[(0,3657,19), (3,172,60)]) ab_fraction__2: bits[16] = sel(is_result_nan__1, cases=[result_fraction__7, literal.1565], id=1569, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) shll.1588: bits[25] = shll(literal.1582, rshift_ab, id=1588, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) not.1806: bits[7] = not(c_fraction__2, id=1806, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) sign_ext.1777: bits[8] = sign_ext(ne.1793, new_bit_count=8, id=1777, pos=[(0,3646,17), (3,172,60)]) shll.1590: bits[25] = shll(literal.1582, rshift_c, id=1590, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) not.1581: bits[16] = not(ab_fraction__2, id=1581, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) bit_slice.1592: bits[16] = bit_slice(shll.1588, start=9, width=16, id=1592, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) concat.1568: bits[8] = concat(bnot__1, c_fraction__2, id=1568, pos=[(0,3646,17), (3,172,60)]) concat.1809: bits[8] = concat(cancel__1, not.1806, id=1809, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) not.1798: bits[8] = not(sign_ext.1777, id=1798, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) bit_slice.1594: bits[8] = bit_slice(shll.1590, start=17, width=8, id=1594, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1597, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,172,60)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1598, pos=[(0,3471,33), (0,3574,29), (0,3636,25), (3,172,60)]) nor.1595: bits[16] = nor(not.1581, bit_slice.1592, id=1595, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) literal.1515: bits[16] = literal(value=0, id=1515, pos=[(0,3439,23), (0,3574,29), (0,3636,25), (3,172,60)]) wide_c__3: bits[8] = and(concat.1568, sign_ext.1777, id=1778, pos=[(0,3646,17), (3,172,60)]) literal.1573: bits[17] = literal(value=0, id=1573, pos=[(0,3652,17), (3,172,60)]) nor.1799: bits[8] = nor(concat.1809, not.1798, bit_slice.1594, id=1799, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1602, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,172,60)]) wide_ab: bits[25] = concat(ab_fraction__2, literal.1527, id=1574, pos=[(0,3651,11), (3,172,60)]) literal.1599: bits[24] = literal(value=0, id=1599, pos=[(3,172,60)]) ne.1600: bits[1] = ne(nor.1595, literal.1515, id=1600, pos=[(1,1496,17), (1,1523,22), (0,3660,38), (3,172,60)]) wide_c__2: bits[25] = concat(wide_c__3, literal.1573, id=1577, pos=[(0,3652,17), (3,172,60)]) ne.1601: bits[1] = ne(nor.1799, literal.1502, id=1601, pos=[(1,1496,17), (1,1523,22), (0,3661,37), (3,172,60)]) not.1607: bits[1] = not(result_sign__3, id=1607, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) shifted_ab: bits[25] = shrl(wide_ab, rshift_ab, id=1603, pos=[(0,3658,21), (3,172,60)]) sticky_ab: bits[25] = concat(literal.1599, ne.1600, id=1604, pos=[(3,172,60)]) shifted_c: bits[25] = shrl(wide_c__2, rshift_c, id=1605, pos=[(0,3659,20), (3,172,60)]) sticky_c: bits[25] = concat(literal.1599, ne.1601, id=1606, pos=[(3,172,60)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1611, pos=[(0,3641,55), (3,172,60)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1607, id=1610, pos=[(0,3588,4), (0,3636,25), (3,172,60)]) or.1608: bits[25] = or(shifted_ab, sticky_ab, id=1608, pos=[(0,3664,22), (3,172,60)]) or.1609: bits[25] = or(shifted_c, sticky_c, id=1609, pos=[(0,3665,21), (3,172,60)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1733, pos=[(0,3641,8), (3,172,60)]) shifted_ab__1_squeezed: bits[26] = concat(cancel__1, or.1608, id=1612, pos=[(0,3668,50), (3,172,60)]) shifted_c__1_squeezed: bits[26] = concat(cancel__1, or.1609, id=1613, pos=[(0,3669,48), (3,172,60)]) xor.1618: bits[1] = xor(ab_sign__2, greater_sign, id=1618, pos=[(0,3668,26), (3,172,60)]) neg.1616: bits[26] = neg(shifted_ab__1_squeezed, id=1616, pos=[(0,3668,50), (3,172,60)]) xor.1621: bits[1] = xor(c_sign__2, greater_sign, id=1621, pos=[(0,3669,24), (3,172,60)]) neg.1617: bits[26] = neg(shifted_c__1_squeezed, id=1617, pos=[(0,3669,48), (3,172,60)]) shifted_ab__2_squeezed: bits[26] = sel(xor.1618, cases=[shifted_ab__1_squeezed, neg.1616], id=1815, pos=[(0,3668,21), (3,172,60)]) shifted_c__2_squeezed: bits[26] = sel(xor.1621, cases=[shifted_c__1_squeezed, neg.1617], id=1819, pos=[(0,3669,20), (3,172,60)]) shifted_ab__2: bits[27] = sign_ext(shifted_ab__2_squeezed, new_bit_count=27, id=1816, pos=[(0,3668,21), (3,172,60)]) shifted_c__2: bits[27] = sign_ext(shifted_c__2_squeezed, new_bit_count=27, id=1820, pos=[(0,3669,20), (3,172,60)]) sum_fraction: bits[27] = add(shifted_ab__2, shifted_c__2, id=1626, pos=[(0,3672,23), (3,172,60)]) bit_slice.1627: bits[26] = bit_slice(sum_fraction, start=0, width=26, id=1627, pos=[(0,3672,23), (3,172,60)]) bit_slice.1628: bits[1] = bit_slice(sum_fraction, start=26, width=1, id=1628, pos=[(0,3681,27), (3,172,60)]) neg.1629: bits[26] = neg(bit_slice.1627, id=1629, pos=[(0,3682,27), (3,172,60)]) abs_fraction__2: bits[26] = sel(bit_slice.1628, cases=[bit_slice.1627, neg.1629], id=1630, pos=[(0,3681,24), (3,172,60)]) reverse.1631: bits[26] = reverse(abs_fraction__2, id=1631, pos=[(0,3695,28), (3,172,60)]) one_hot.1632: bits[27] = one_hot(reverse.1631, lsb_prio=true, id=1632, pos=[(0,3695,28), (3,172,60)]) encode.1633: bits[5] = encode(one_hot.1632, id=1633, pos=[(0,3695,28), (3,172,60)]) bit_slice.1634: bits[4] = bit_slice(encode.1633, start=1, width=4, id=1634, pos=[(0,3696,17), (3,172,60)]) cancel__2: bits[1] = or_reduce(bit_slice.1634, id=1635, pos=[(0,3696,17), (3,172,60)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=25, width=1, id=1636, pos=[(0,3689,32), (3,172,60)]) concat.1637: bits[6] = concat(cancel__1, encode.1633, id=1637, pos=[(0,3695,28), (3,172,60)]) literal.1638: bits[6] = literal(value=63, id=1638, pos=[(0,3698,26), (3,172,60)]) not.1639: bits[1] = not(cancel__2, id=1639, pos=[(3,172,60)]) not.1640: bits[1] = not(carry_bit__2, id=1640, pos=[(3,172,60)]) bit_slice.1641: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1641, pos=[(0,3691,55), (3,172,60)]) add.1642: bits[6] = add(concat.1637, literal.1638, id=1642, pos=[(0,3698,26), (3,172,60)]) nor.1643: bits[1] = nor(carry_bit__2, cancel__2, id=1643, pos=[(3,172,60)]) nor.1644: bits[1] = nor(carry_bit__2, not.1639, id=1644, pos=[(3,172,60)]) nor.1645: bits[1] = nor(not.1640, cancel__2, id=1645, pos=[(3,172,60)]) carry_fraction__1: bits[25] = bit_slice(abs_fraction__2, start=1, width=25, id=1646, pos=[(0,3690,26), (3,172,60)]) concat.1647: bits[25] = concat(literal.1599, bit_slice.1641, id=1647, pos=[(3,172,60)]) bit_slice.1648: bits[25] = bit_slice(abs_fraction__2, start=0, width=25, id=1648, pos=[(0,3698,9), (3,172,60)]) sign_ext.1649: bits[26] = sign_ext(add.1642, new_bit_count=26, id=1649, pos=[(0,3698,26), (3,172,60)]) concat.1650: bits[3] = concat(nor.1643, nor.1644, nor.1645, id=1650, pos=[(3,172,60)]) carry_fraction__4: bits[25] = or(carry_fraction__1, concat.1647, id=1651, pos=[(0,3691,25), (3,172,60)]) cancel_fraction__2: bits[25] = shll(bit_slice.1648, sign_ext.1649, id=1652, pos=[(3,172,60)]) literal.1653: bits[25] = literal(value=0, id=1653, pos=[(0,3703,39), (3,172,60)]) shifted_fraction: bits[25] = priority_sel(concat.1650, cases=[carry_fraction__4, cancel_fraction__2, bit_slice.1648], default=literal.1653, id=1654, pos=[(3,172,60)]) normal_chunk: bits[17] = bit_slice(shifted_fraction, start=0, width=17, id=1655, pos=[(0,3710,39), (3,172,60)]) half_of_extra: bits[17] = literal(value=65536, id=1656, pos=[(0,3713,24), (3,172,60)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=16, width=2, id=1657, pos=[(0,3712,24), (3,172,60)]) literal.1658: bits[2] = literal(value=3, id=1658, pos=[(0,3715,63), (3,172,60)]) bit_slice.1801: bits[8] = bit_slice(shifted_fraction, start=17, width=8, id=1801, pos=[(0,3717,8), (3,172,60)]) ugt.1661: bits[1] = ugt(normal_chunk, half_of_extra, id=1661, pos=[(0,3715,12), (3,172,60)]) eq.1662: bits[1] = eq(half_way_chunk, literal.1658, id=1662, pos=[(0,3715,45), (3,172,60)]) concat.1802: bits[9] = concat(cancel__1, bit_slice.1801, id=1802, pos=[(0,3717,8), (3,172,60)]) literal.1794: bits[9] = literal(value=1, id=1794, pos=[(0,3717,8), (3,172,60)]) or.1665: bits[1] = or(ugt.1661, eq.1662, id=1665, pos=[(0,3715,12), (3,172,60)]) add.1790: bits[9] = add(concat.1802, literal.1794, id=1790, pos=[(0,3717,8), (3,172,60)]) concat.1540: bits[9] = concat(cancel__1, c_bexp__2, id=1540, pos=[(3,172,60)]) rounded_fraction__1: bits[9] = sel(or.1665, cases=[concat.1802, add.1790], id=1668, pos=[(0,3716,27), (3,172,60)]) literal.1669: bits[6] = literal(value=1, id=1669, pos=[(0,3729,15), (3,172,60)]) greater_exp: bits[9] = sel(overflow_detected, cases=[concat.1540, ab_bexp__2], id=1734, pos=[(0,3641,8), (3,172,60)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=8, width=1, id=1671, pos=[(0,3723,41), (3,172,60)]) literal.1675: bits[27] = literal(value=0, id=1675, pos=[(0,3673,43), (3,172,60)]) sub.1672: bits[6] = sub(literal.1669, concat.1637, id=1672, pos=[(0,3728,15), (3,172,60)]) concat.1673: bits[10] = concat(cancel__1, greater_exp, id=1673, pos=[(3,172,60)]) concat.1674: bits[10] = concat(literal.1527, rounding_carry, id=1674, pos=[(3,172,60)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1675, id=1678, pos=[(0,3673,27), (3,172,60)]) bexp_associative_element__1: bits[10] = sign_ext(sub.1672, new_bit_count=10, id=1676, pos=[(0,3728,15), (3,172,60)]) bexp_associative_element__4: bits[10] = add(concat.1673, concat.1674, id=1677, pos=[(0,3728,15), (3,172,60)]) not.1779: bits[1] = not(fraction_is_zero, id=1779, pos=[(0,3730,15), (3,172,60)]) bexp__1: bits[10] = add(bexp_associative_element__1, bexp_associative_element__4, id=1679, pos=[(0,3728,15), (3,172,60)]) sign_ext.1780: bits[10] = sign_ext(not.1779, new_bit_count=10, id=1780, pos=[(0,3730,15), (3,172,60)]) bexp__2: bits[10] = and(bexp__1, sign_ext.1780, id=1781, pos=[(0,3730,15), (3,172,60)]) bit_slice.1689: bits[1] = bit_slice(bexp__2, start=9, width=1, id=1689, pos=[(0,3731,18), (3,172,60)]) not.1782: bits[1] = not(bit_slice.1689, id=1782, pos=[(0,3731,15), (3,172,60)]) bit_slice.1690: bits[9] = bit_slice(bexp__2, start=0, width=9, id=1690, pos=[(3,172,60)]) sign_ext.1783: bits[9] = sign_ext(not.1782, new_bit_count=9, id=1783, pos=[(0,3731,15), (3,172,60)]) eq.1680: bits[1] = eq(ab_bexp__2, literal.1550, id=1680, pos=[(0,3550,5), (0,3749,37), (3,172,60)]) eq.1681: bits[1] = eq(ab_fraction__2, literal.1515, id=1681, pos=[(0,3550,46), (0,3749,37), (3,172,60)]) eq.1682: bits[1] = eq(c_bexp__2, max_exp, id=1682, pos=[(0,96,6), (0,3749,72), (3,172,60)]) eq.1683: bits[1] = eq(c_fraction__2, literal.1517, id=1683, pos=[(0,96,44), (0,3749,72), (3,172,60)]) bexp__6: bits[9] = and(bit_slice.1690, sign_ext.1783, id=1784, pos=[(0,3731,15), (3,172,60)]) nand.1685: bits[1] = nand(eq.1680, eq.1681, id=1685, pos=[(0,3749,37), (3,172,60)]) not.1686: bits[1] = not(eq.1682, id=1686, pos=[(0,3749,72), (3,172,60)]) not.1687: bits[1] = not(eq.1683, id=1687, pos=[(0,3749,72), (3,172,60)]) and.1688: bits[1] = and(eq.1680, eq.1681, id=1688, pos=[(0,3550,5), (0,3749,37), (3,172,60)]) and.1702: bits[1] = and(eq.1682, eq.1683, id=1702, pos=[(0,96,6), (0,3749,72), (3,172,60)]) bit_slice.1703: bits[8] = bit_slice(bexp__6, start=0, width=8, id=1703, pos=[(0,3742,24), (3,172,60)]) nor.1691: bits[1] = nor(nand.1685, ab_sign__2, id=1691, pos=[(0,3749,37), (3,172,60)]) nor.1692: bits[1] = nor(not.1686, not.1687, c_sign__2, id=1692, pos=[(0,3749,72), (3,172,60)]) and.1693: bits[1] = and(and.1688, ab_sign__2, id=1693, pos=[(0,3754,37), (3,172,60)]) and.1694: bits[1] = and(eq.1682, eq.1683, c_sign__2, id=1694, pos=[(0,3754,72), (3,172,60)]) is_operand_inf: bits[1] = or(and.1688, and.1702, id=1709, pos=[(0,3745,39), (3,172,60)]) bit_slice.1710: bits[1] = bit_slice(bexp__6, start=8, width=1, id=1710, pos=[(0,3742,24), (3,172,60)]) and_reduce.1711: bits[1] = and_reduce(bit_slice.1703, id=1711, pos=[(0,3742,24), (3,172,60)]) eq.1712: bits[1] = eq(bexp__6, literal.1527, id=1712, pos=[(0,3736,29), (3,172,60)]) not.1746: bits[1] = not(eq.1680, id=1746, pos=[(0,3556,5), (0,3755,38), (3,172,60)]) has_pos_inf: bits[1] = or(nor.1691, nor.1692, id=1699, pos=[(0,3749,37), (3,172,60)]) has_neg_inf: bits[1] = or(and.1693, and.1694, id=1700, pos=[(0,3754,37), (3,172,60)]) or.1716: bits[1] = or(is_operand_inf, bit_slice.1710, and_reduce.1711, eq.1712, id=1716, pos=[(0,3747,26), (3,172,60)]) nor.1747: bits[1] = nor(not.1746, eq.1681, id=1747, pos=[(0,3556,5), (0,3755,38), (3,172,60)]) nor.1749: bits[1] = nor(not.1686, eq.1683, id=1749, pos=[(0,71,6), (0,3755,51), (3,172,60)]) and.1706: bits[1] = and(has_pos_inf, has_neg_inf, id=1706, pos=[(0,3755,58), (3,172,60)]) concat.1707: bits[2] = concat(bit_slice.1628, fraction_is_zero, id=1707, pos=[(3,172,60)]) not.1708: bits[1] = not(greater_sign, id=1708, pos=[(0,3676,25), (3,172,60)]) not.1785: bits[1] = not(or.1716, id=1785, pos=[(0,3747,26), (3,172,60)]) is_result_nan: bits[1] = or(nor.1747, nor.1749, and.1706, id=1713, pos=[(0,3755,38), (3,172,60)]) result_sign: bits[1] = priority_sel(concat.1707, cases=[cancel__1, not.1708], default=greater_sign, id=1714, pos=[(3,172,60)]) not.1715: bits[1] = not(has_pos_inf, id=1715, pos=[(0,3750,42), (3,172,60)]) result_fraction: bits[7] = bit_slice(rounded_fraction__1, start=0, width=7, id=1717, pos=[(3,172,60)]) sign_ext.1786: bits[7] = sign_ext(not.1785, new_bit_count=7, id=1786, pos=[(0,3747,26), (3,172,60)]) not.1718: bits[1] = not(is_result_nan, id=1718, pos=[(0,3759,22), (3,172,60)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1715], id=1719, pos=[(0,3750,22), (3,172,60)]) or.1720: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1710, and_reduce.1711, id=1720, pos=[(0,3756,21), (3,172,60)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.1786, id=1787, pos=[(0,3747,26), (3,172,60)]) literal.1722: bits[7] = literal(value=8, id=1722, pos=[(0,3758,27), (3,172,60)]) after_all.520: token = after_all(id=520) nand.1735: bits[1] = nand(carry_bit__2, cancel__2, id=1735, pos=[(3,172,60)]) result_sign__2: bits[1] = and(not.1718, result_sign__1, id=1724, pos=[(0,3759,22), (3,172,60)]) result_exp__2: bits[8] = sel(or.1720, cases=[bit_slice.1703, max_exp], id=1725, pos=[(0,3756,21), (3,172,60)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, literal.1722], id=1726, pos=[(0,3758,8), (3,172,60)]) assert_1495__2: token = assert(after_all.520, nand.1735, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3704:19-3704:60", label="carry_and_cancel", id=1730, pos=[(3,172,60)]) ret tuple.1728: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1728, pos=[(0,3761,33), (3,172,60)]) }