package float32 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/float32.x" top fn __float32__fma(a: (bits[1], bits[8], bits[23]) id=517, b: (bits[1], bits[8], bits[23]) id=518, c: (bits[1], bits[8], bits[23]) id=519) -> (bits[1], bits[8], bits[23]) { a_bexp__1: bits[8] = tuple_index(a, index=1, id=1502, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1504: bits[8] = literal(value=0, id=1504, pos=[(0,804,14), (0,3431,40), (0,3574,29), (0,3636,25), (3,369,56)]) b_bexp__1: bits[8] = tuple_index(b, index=1, id=1503, pos=[(0,3448,45), (0,3574,29), (0,3636,25), (3,369,56)]) cancel__1: bits[1] = literal(value=0, id=1501, pos=[(0,3574,29), (0,3636,25), (3,369,56)]) bnot__1: bits[1] = literal(value=1, id=1505, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,369,56)]) a_fraction__1: bits[23] = tuple_index(a, index=2, id=1506, pos=[(0,3434,33), (0,3574,29), (0,3636,25), (3,369,56)]) b_fraction__1: bits[23] = tuple_index(b, index=2, id=1507, pos=[(0,3435,33), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1510: bits[1] = eq(a_bexp__1, literal.1504, id=1510, pos=[(0,804,5), (0,3431,40), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1511: bits[1] = eq(b_bexp__1, literal.1504, id=1511, pos=[(0,804,5), (0,3431,67), (0,3574,29), (0,3636,25), (3,369,56)]) concat.1508: bits[9] = concat(cancel__1, a_bexp__1, id=1508, pos=[(0,3574,29), (0,3636,25), (3,369,56)]) concat.1509: bits[9] = concat(cancel__1, b_bexp__1, id=1509, pos=[(0,3574,29), (0,3636,25), (3,369,56)]) a_significand__1: bits[24] = concat(bnot__1, a_fraction__1, id=1512, pos=[(0,3434,24), (0,3574,29), (0,3636,25), (3,369,56)]) b_significand__1: bits[24] = concat(bnot__1, b_fraction__1, id=1513, pos=[(0,3435,24), (0,3574,29), (0,3636,25), (3,369,56)]) nor.1799: bits[1] = nor(eq.1510, eq.1511, id=1799, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,369,56)]) add.1514: bits[9] = add(concat.1508, concat.1509, id=1514, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,369,56)]) umul.1516: bits[48] = umul(a_significand__1, b_significand__1, id=1516, pos=[(1,224,5), (0,3439,61), (0,3574,29), (0,3636,25), (3,369,56)]) sign_ext.1762: bits[48] = sign_ext(nor.1799, new_bit_count=48, id=1762, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,369,56)]) max_exp: bits[8] = literal(value=255, id=1518, pos=[(0,96,29), (0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1519: bits[23] = literal(value=0, id=1519, pos=[(0,96,57), (0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) concat.1520: bits[10] = concat(cancel__1, add.1514, id=1520, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1521: bits[10] = literal(value=897, id=1521, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,369,56)]) full_product: bits[48] = and(umul.1516, sign_ext.1762, id=1763, pos=[(0,3439,8), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1523: bits[1] = eq(a_bexp__1, max_exp, id=1523, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1524: bits[1] = eq(a_fraction__1, literal.1519, id=1524, pos=[(0,96,44), (0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1525: bits[1] = eq(b_bexp__1, max_exp, id=1525, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,369,56)]) eq.1526: bits[1] = eq(b_fraction__1, literal.1519, id=1526, pos=[(0,96,44), (0,3488,41), (0,3574,29), (0,3636,25), (3,369,56)]) exp: bits[10] = add(concat.1520, literal.1521, id=1527, pos=[(0,3448,16), (0,3574,29), (0,3636,25), (3,369,56)]) sign_ext.1765: bits[10] = sign_ext(nor.1799, new_bit_count=10, id=1765, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1529: bits[9] = literal(value=0, id=1529, pos=[(0,3574,29), (0,3636,25), (3,369,56)]) in_upper_binade: bits[1] = bit_slice(full_product, start=47, width=1, id=1530, pos=[(1,357,61), (0,3463,34), (0,3574,29), (0,3636,25), (3,369,56)]) and.1531: bits[1] = and(eq.1523, eq.1524, id=1531, pos=[(0,96,6), (0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) and.1532: bits[1] = and(eq.1525, eq.1526, id=1532, pos=[(0,96,6), (0,3488,41), (0,3574,29), (0,3636,25), (3,369,56)]) exp__1: bits[10] = and(exp, sign_ext.1765, id=1766, pos=[(0,3457,14), (0,3574,29), (0,3636,25), (3,369,56)]) concat.1534: bits[10] = concat(literal.1529, in_upper_binade, id=1534, pos=[(0,3574,29), (0,3636,25), (3,369,56)]) has_inf_arg: bits[1] = or(and.1531, and.1532, id=1535, pos=[(0,3488,28), (0,3574,29), (0,3636,25), (3,369,56)]) result_exp__3: bits[10] = add(exp__1, concat.1534, id=1536, pos=[(0,3468,14), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1537: bits[10] = literal(value=511, id=1537, pos=[(0,3482,62), (0,3574,29), (0,3636,25), (3,369,56)]) result_exp__4: bits[10] = sel(has_inf_arg, cases=[result_exp__3, literal.1537], id=1541, pos=[(0,3482,21), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1528: bits[10] = literal(value=0, id=1528, pos=[(0,3457,29), (0,3574,29), (0,3636,25), (3,369,56)]) is_subnormal: bits[1] = sle(result_exp__4, literal.1528, id=1546, pos=[(0,3580,34), (0,3636,25), (3,369,56)]) not.1539: bits[1] = not(eq.1523, id=1539, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,369,56)]) not.1540: bits[1] = not(eq.1525, id=1540, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,369,56)]) has_0_arg: bits[1] = or(eq.1510, eq.1511, id=1515, pos=[(0,3431,40), (0,3574,29), (0,3636,25), (3,369,56)]) not.1767: bits[1] = not(is_subnormal, id=1767, pos=[(0,3581,21), (0,3636,25), (3,369,56)]) nor.1543: bits[1] = nor(not.1539, eq.1524, id=1543, pos=[(0,71,6), (0,3487,28), (0,3574,29), (0,3636,25), (3,369,56)]) nor.1544: bits[1] = nor(not.1540, eq.1526, id=1544, pos=[(0,71,6), (0,3487,41), (0,3574,29), (0,3636,25), (3,369,56)]) and.1545: bits[1] = and(has_0_arg, has_inf_arg, id=1545, pos=[(0,3489,40), (0,3574,29), (0,3636,25), (3,369,56)]) bit_slice.1547: bits[9] = bit_slice(result_exp__4, start=0, width=9, id=1547, pos=[(0,3583,45), (0,3636,25), (3,369,56)]) sign_ext.1768: bits[9] = sign_ext(not.1767, new_bit_count=9, id=1768, pos=[(0,3581,21), (0,3636,25), (3,369,56)]) is_result_nan__1: bits[1] = or(nor.1543, nor.1544, and.1545, id=1550, pos=[(0,3489,24), (0,3574,29), (0,3636,25), (3,369,56)]) result_exp__5: bits[9] = and(bit_slice.1547, sign_ext.1768, id=1769, pos=[(0,3581,21), (0,3636,25), (3,369,56)]) literal.1552: bits[9] = literal(value=511, id=1552, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) c_bexp__2: bits[8] = tuple_index(c, index=1, id=1538, pos=[(0,3639,44), (3,369,56)]) ab_bexp__2: bits[9] = sel(is_result_nan__1, cases=[result_exp__5, literal.1552], id=1555, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) literal.1748: bits[2] = literal(value=1, id=1748, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) bnot__2: bits[8] = not(c_bexp__2, id=1553, pos=[(2,90,15), (0,3009,44), (0,3639,33), (3,369,56)]) ab_bexp_extended__1: bits[10] = concat(cancel__1, ab_bexp__2, id=1558, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) bnot_extended__2: bits[10] = concat(literal.1748, bnot__2, id=1749, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) full_result: bits[10] = add(ab_bexp_extended__1, bnot_extended__2, id=1562, pos=[(1,1114,45), (2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) overflow_detected: bits[1] = bit_slice(full_result, start=9, width=1, id=1564, pos=[(1,1116,49), (2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) bit_slice.1549: bits[47] = bit_slice(full_product, start=0, width=47, id=1549, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,369,56)]) nc: bits[1] = not(overflow_detected, id=1568, pos=[(2,92,19), (0,3009,44), (0,3639,33), (3,369,56)]) concat.1554: bits[48] = concat(bit_slice.1549, cancel__1, id=1554, pos=[(0,3464,74), (0,3574,29), (0,3636,25), (3,369,56)]) not.1770: bits[1] = not(has_inf_arg, id=1770, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,369,56)]) narrowed_result: bits[9] = bit_slice(full_result, start=0, width=9, id=1574, pos=[(2,91,63), (0,3009,44), (0,3639,33), (3,369,56)]) ab_bexpor_mask__2: bits[9] = sign_ext(nc, new_bit_count=9, id=1575, pos=[(2,94,32), (0,3009,44), (0,3639,33), (3,369,56)]) result_fraction__5: bits[48] = sel(in_upper_binade, cases=[concat.1554, full_product], id=1557, pos=[(0,3464,30), (0,3574,29), (0,3636,25), (3,369,56)]) sign_ext.1771: bits[48] = sign_ext(not.1770, new_bit_count=48, id=1771, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,369,56)]) neg.1561: bits[9] = neg(bit_slice.1547, id=1561, pos=[(0,3583,33), (0,3636,25), (3,369,56)]) sign_ext.1773: bits[9] = sign_ext(is_subnormal, new_bit_count=9, id=1773) result: bits[9] = xor(narrowed_result, ab_bexpor_mask__2, id=1579, pos=[(2,95,18), (0,3009,44), (0,3639,33), (3,369,56)]) concat.1580: bits[9] = concat(literal.1504, overflow_detected, id=1580, pos=[(0,3010,68), (0,3639,33), (3,369,56)]) result_fraction__6: bits[48] = and(result_fraction__5, sign_ext.1771, id=1772, pos=[(0,3483,26), (0,3574,29), (0,3636,25), (3,369,56)]) and.1774: bits[9] = and(neg.1561, sign_ext.1773, id=1774) exp_difference: bits[9] = add(result, concat.1580, id=1583, pos=[(2,54,7), (0,3010,68), (0,3639,33), (3,369,56)]) sign_ext.1778: bits[9] = sign_ext(overflow_detected, new_bit_count=9, id=1778, pos=[(0,3657,19), (3,369,56)]) result_fraction__7: bits[48] = shrl(result_fraction__6, and.1774, id=1760) literal.1567: bits[48] = literal(value=211106232532992, id=1567, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) literal.1587: bits[73] = literal(value=0x1ff_ffff_ffff_ffff_ffff, id=1587, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) rshift_ab: bits[9] = and(exp_difference, ab_bexpor_mask__2, id=1777, pos=[(0,3656,20), (3,369,56)]) c_fraction__2: bits[23] = tuple_index(c, index=2, id=1565, pos=[(0,3645,18), (3,369,56)]) ne.1797: bits[1] = ne(c_bexp__2, literal.1504, id=1797, pos=[(0,3646,17), (3,369,56)]) rshift_c: bits[9] = and(exp_difference, sign_ext.1778, id=1779, pos=[(0,3657,19), (3,369,56)]) ab_fraction__2: bits[48] = sel(is_result_nan__1, cases=[result_fraction__7, literal.1567], id=1572, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) shll.1593: bits[73] = shll(literal.1587, rshift_ab, id=1593, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) not.1810: bits[23] = not(c_fraction__2, id=1810, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) sign_ext.1781: bits[24] = sign_ext(ne.1797, new_bit_count=24, id=1781, pos=[(0,3646,17), (3,369,56)]) shll.1595: bits[73] = shll(literal.1587, rshift_c, id=1595, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) not.1585: bits[48] = not(ab_fraction__2, id=1585, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) bit_slice.1597: bits[48] = bit_slice(shll.1593, start=25, width=48, id=1597, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) concat.1570: bits[24] = concat(bnot__1, c_fraction__2, id=1570, pos=[(0,3646,17), (3,369,56)]) concat.1813: bits[24] = concat(cancel__1, not.1810, id=1813, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) not.1802: bits[24] = not(sign_ext.1781, id=1802, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) bit_slice.1599: bits[24] = bit_slice(shll.1595, start=49, width=24, id=1599, pos=[(1,1406,19), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) a_sign__1: bits[1] = tuple_index(a, index=0, id=1602, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,369,56)]) b_sign__1: bits[1] = tuple_index(b, index=0, id=1603, pos=[(0,3471,33), (0,3574,29), (0,3636,25), (3,369,56)]) literal.1573: bits[25] = literal(value=0, id=1573, pos=[(0,3651,11), (3,369,56)]) nor.1600: bits[48] = nor(not.1585, bit_slice.1597, id=1600, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) literal.1517: bits[48] = literal(value=0, id=1517, pos=[(0,3439,23), (0,3574,29), (0,3636,25), (3,369,56)]) wide_c__3: bits[24] = and(concat.1570, sign_ext.1781, id=1782, pos=[(0,3646,17), (3,369,56)]) literal.1577: bits[49] = literal(value=0, id=1577, pos=[(0,3652,17), (3,369,56)]) nor.1803: bits[24] = nor(concat.1813, not.1802, bit_slice.1599, id=1803, pos=[(1,1406,4), (1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) literal.1571: bits[24] = literal(value=0, id=1571, pos=[(0,3646,17), (3,369,56)]) result_sign__3: bits[1] = xor(a_sign__1, b_sign__1, id=1607, pos=[(0,3471,23), (0,3574,29), (0,3636,25), (3,369,56)]) wide_ab: bits[73] = concat(ab_fraction__2, literal.1573, id=1578, pos=[(0,3651,11), (3,369,56)]) literal.1604: bits[72] = literal(value=0x0, id=1604, pos=[(3,369,56)]) ne.1605: bits[1] = ne(nor.1600, literal.1517, id=1605, pos=[(1,1496,17), (1,1523,22), (0,3660,38), (3,369,56)]) wide_c__2: bits[73] = concat(wide_c__3, literal.1577, id=1581, pos=[(0,3652,17), (3,369,56)]) ne.1606: bits[1] = ne(nor.1803, literal.1571, id=1606, pos=[(1,1496,17), (1,1523,22), (0,3661,37), (3,369,56)]) not.1612: bits[1] = not(result_sign__3, id=1612, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) shifted_ab: bits[73] = shrl(wide_ab, rshift_ab, id=1608, pos=[(0,3658,21), (3,369,56)]) sticky_ab: bits[73] = concat(literal.1604, ne.1605, id=1609, pos=[(3,369,56)]) shifted_c: bits[73] = shrl(wide_c__2, rshift_c, id=1610, pos=[(0,3659,20), (3,369,56)]) sticky_c: bits[73] = concat(literal.1604, ne.1606, id=1611, pos=[(3,369,56)]) c_sign__2: bits[1] = tuple_index(c, index=0, id=1616, pos=[(0,3641,55), (3,369,56)]) ab_sign__2: bits[1] = nor(is_result_nan__1, not.1612, id=1615, pos=[(0,3588,4), (0,3636,25), (3,369,56)]) or.1613: bits[73] = or(shifted_ab, sticky_ab, id=1613, pos=[(0,3664,22), (3,369,56)]) or.1614: bits[73] = or(shifted_c, sticky_c, id=1614, pos=[(0,3665,21), (3,369,56)]) greater_sign: bits[1] = sel(overflow_detected, cases=[c_sign__2, ab_sign__2], id=1737, pos=[(0,3641,8), (3,369,56)]) shifted_ab__1_squeezed: bits[74] = concat(cancel__1, or.1613, id=1617, pos=[(0,3668,50), (3,369,56)]) shifted_c__1_squeezed: bits[74] = concat(cancel__1, or.1614, id=1618, pos=[(0,3669,48), (3,369,56)]) xor.1623: bits[1] = xor(ab_sign__2, greater_sign, id=1623, pos=[(0,3668,26), (3,369,56)]) neg.1621: bits[74] = neg(shifted_ab__1_squeezed, id=1621, pos=[(0,3668,50), (3,369,56)]) xor.1626: bits[1] = xor(c_sign__2, greater_sign, id=1626, pos=[(0,3669,24), (3,369,56)]) neg.1622: bits[74] = neg(shifted_c__1_squeezed, id=1622, pos=[(0,3669,48), (3,369,56)]) shifted_ab__2_squeezed: bits[74] = sel(xor.1623, cases=[shifted_ab__1_squeezed, neg.1621], id=1819, pos=[(0,3668,21), (3,369,56)]) shifted_c__2_squeezed: bits[74] = sel(xor.1626, cases=[shifted_c__1_squeezed, neg.1622], id=1823, pos=[(0,3669,20), (3,369,56)]) shifted_ab__2: bits[75] = sign_ext(shifted_ab__2_squeezed, new_bit_count=75, id=1820, pos=[(0,3668,21), (3,369,56)]) shifted_c__2: bits[75] = sign_ext(shifted_c__2_squeezed, new_bit_count=75, id=1824, pos=[(0,3669,20), (3,369,56)]) sum_fraction: bits[75] = add(shifted_ab__2, shifted_c__2, id=1631, pos=[(0,3672,23), (3,369,56)]) bit_slice.1632: bits[74] = bit_slice(sum_fraction, start=0, width=74, id=1632, pos=[(0,3672,23), (3,369,56)]) bit_slice.1633: bits[1] = bit_slice(sum_fraction, start=74, width=1, id=1633, pos=[(0,3681,27), (3,369,56)]) neg.1634: bits[74] = neg(bit_slice.1632, id=1634, pos=[(0,3682,27), (3,369,56)]) abs_fraction__2: bits[74] = sel(bit_slice.1633, cases=[bit_slice.1632, neg.1634], id=1635, pos=[(0,3681,24), (3,369,56)]) reverse.1636: bits[74] = reverse(abs_fraction__2, id=1636, pos=[(0,3695,28), (3,369,56)]) one_hot.1637: bits[75] = one_hot(reverse.1636, lsb_prio=true, id=1637, pos=[(0,3695,28), (3,369,56)]) encode.1638: bits[7] = encode(one_hot.1637, id=1638, pos=[(0,3695,28), (3,369,56)]) bit_slice.1639: bits[6] = bit_slice(encode.1638, start=1, width=6, id=1639, pos=[(0,3696,17), (3,369,56)]) cancel__2: bits[1] = or_reduce(bit_slice.1639, id=1640, pos=[(0,3696,17), (3,369,56)]) carry_bit__2: bits[1] = bit_slice(abs_fraction__2, start=73, width=1, id=1641, pos=[(0,3689,32), (3,369,56)]) concat.1642: bits[8] = concat(cancel__1, encode.1638, id=1642, pos=[(0,3695,28), (3,369,56)]) not.1643: bits[1] = not(cancel__2, id=1643, pos=[(3,369,56)]) not.1644: bits[1] = not(carry_bit__2, id=1644, pos=[(3,369,56)]) bit_slice.1645: bits[1] = bit_slice(abs_fraction__2, start=0, width=1, id=1645, pos=[(0,3691,55), (3,369,56)]) add.1646: bits[8] = add(concat.1642, max_exp, id=1646, pos=[(0,3698,26), (3,369,56)]) nor.1647: bits[1] = nor(carry_bit__2, cancel__2, id=1647, pos=[(3,369,56)]) nor.1648: bits[1] = nor(carry_bit__2, not.1643, id=1648, pos=[(3,369,56)]) nor.1649: bits[1] = nor(not.1644, cancel__2, id=1649, pos=[(3,369,56)]) carry_fraction__1: bits[73] = bit_slice(abs_fraction__2, start=1, width=73, id=1650, pos=[(0,3690,26), (3,369,56)]) concat.1651: bits[73] = concat(literal.1604, bit_slice.1645, id=1651, pos=[(3,369,56)]) bit_slice.1652: bits[73] = bit_slice(abs_fraction__2, start=0, width=73, id=1652, pos=[(0,3698,9), (3,369,56)]) sign_ext.1653: bits[74] = sign_ext(add.1646, new_bit_count=74, id=1653, pos=[(0,3698,26), (3,369,56)]) concat.1654: bits[3] = concat(nor.1647, nor.1648, nor.1649, id=1654, pos=[(3,369,56)]) carry_fraction__4: bits[73] = or(carry_fraction__1, concat.1651, id=1655, pos=[(0,3691,25), (3,369,56)]) cancel_fraction__2: bits[73] = shll(bit_slice.1652, sign_ext.1653, id=1656, pos=[(3,369,56)]) literal.1657: bits[73] = literal(value=0x0, id=1657, pos=[(0,3703,39), (3,369,56)]) shifted_fraction: bits[73] = priority_sel(concat.1654, cases=[carry_fraction__4, cancel_fraction__2, bit_slice.1652], default=literal.1657, id=1658, pos=[(3,369,56)]) normal_chunk: bits[49] = bit_slice(shifted_fraction, start=0, width=49, id=1659, pos=[(0,3710,39), (3,369,56)]) half_of_extra: bits[49] = literal(value=281474976710656, id=1660, pos=[(0,3713,24), (3,369,56)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=48, width=2, id=1661, pos=[(0,3712,24), (3,369,56)]) literal.1662: bits[2] = literal(value=3, id=1662, pos=[(0,3715,63), (3,369,56)]) bit_slice.1805: bits[24] = bit_slice(shifted_fraction, start=49, width=24, id=1805, pos=[(0,3717,8), (3,369,56)]) ugt.1665: bits[1] = ugt(normal_chunk, half_of_extra, id=1665, pos=[(0,3715,12), (3,369,56)]) eq.1666: bits[1] = eq(half_way_chunk, literal.1662, id=1666, pos=[(0,3715,45), (3,369,56)]) concat.1806: bits[25] = concat(cancel__1, bit_slice.1805, id=1806, pos=[(0,3717,8), (3,369,56)]) literal.1798: bits[25] = literal(value=1, id=1798, pos=[(0,3717,8), (3,369,56)]) or.1669: bits[1] = or(ugt.1665, eq.1666, id=1669, pos=[(0,3715,12), (3,369,56)]) add.1794: bits[25] = add(concat.1806, literal.1798, id=1794, pos=[(0,3717,8), (3,369,56)]) concat.1542: bits[9] = concat(cancel__1, c_bexp__2, id=1542, pos=[(3,369,56)]) rounded_fraction__1: bits[25] = sel(or.1669, cases=[concat.1806, add.1794], id=1672, pos=[(0,3716,27), (3,369,56)]) literal.1673: bits[8] = literal(value=1, id=1673, pos=[(0,3729,15), (3,369,56)]) greater_exp: bits[9] = sel(overflow_detected, cases=[concat.1542, ab_bexp__2], id=1738, pos=[(0,3641,8), (3,369,56)]) rounding_carry: bits[1] = bit_slice(rounded_fraction__1, start=24, width=1, id=1675, pos=[(0,3723,41), (3,369,56)]) literal.1679: bits[75] = literal(value=0x0, id=1679, pos=[(0,3673,43), (3,369,56)]) sub.1676: bits[8] = sub(literal.1673, concat.1642, id=1676, pos=[(0,3728,15), (3,369,56)]) concat.1677: bits[10] = concat(cancel__1, greater_exp, id=1677, pos=[(3,369,56)]) concat.1678: bits[10] = concat(literal.1529, rounding_carry, id=1678, pos=[(3,369,56)]) fraction_is_zero: bits[1] = eq(sum_fraction, literal.1679, id=1682, pos=[(0,3673,27), (3,369,56)]) bexp_associative_element__1: bits[10] = sign_ext(sub.1676, new_bit_count=10, id=1680, pos=[(0,3728,15), (3,369,56)]) bexp_associative_element__4: bits[10] = add(concat.1677, concat.1678, id=1681, pos=[(0,3728,15), (3,369,56)]) not.1783: bits[1] = not(fraction_is_zero, id=1783, pos=[(0,3730,15), (3,369,56)]) bexp__1: bits[10] = add(bexp_associative_element__1, bexp_associative_element__4, id=1683, pos=[(0,3728,15), (3,369,56)]) sign_ext.1784: bits[10] = sign_ext(not.1783, new_bit_count=10, id=1784, pos=[(0,3730,15), (3,369,56)]) bexp__2: bits[10] = and(bexp__1, sign_ext.1784, id=1785, pos=[(0,3730,15), (3,369,56)]) bit_slice.1693: bits[1] = bit_slice(bexp__2, start=9, width=1, id=1693, pos=[(0,3731,18), (3,369,56)]) not.1786: bits[1] = not(bit_slice.1693, id=1786, pos=[(0,3731,15), (3,369,56)]) bit_slice.1694: bits[9] = bit_slice(bexp__2, start=0, width=9, id=1694, pos=[(3,369,56)]) sign_ext.1787: bits[9] = sign_ext(not.1786, new_bit_count=9, id=1787, pos=[(0,3731,15), (3,369,56)]) eq.1684: bits[1] = eq(ab_bexp__2, literal.1552, id=1684, pos=[(0,3550,5), (0,3749,37), (3,369,56)]) eq.1685: bits[1] = eq(ab_fraction__2, literal.1517, id=1685, pos=[(0,3550,46), (0,3749,37), (3,369,56)]) eq.1686: bits[1] = eq(c_bexp__2, max_exp, id=1686, pos=[(0,96,6), (0,3749,72), (3,369,56)]) eq.1687: bits[1] = eq(c_fraction__2, literal.1519, id=1687, pos=[(0,96,44), (0,3749,72), (3,369,56)]) bexp__6: bits[9] = and(bit_slice.1694, sign_ext.1787, id=1788, pos=[(0,3731,15), (3,369,56)]) nand.1689: bits[1] = nand(eq.1684, eq.1685, id=1689, pos=[(0,3749,37), (3,369,56)]) not.1690: bits[1] = not(eq.1686, id=1690, pos=[(0,3749,72), (3,369,56)]) not.1691: bits[1] = not(eq.1687, id=1691, pos=[(0,3749,72), (3,369,56)]) and.1692: bits[1] = and(eq.1684, eq.1685, id=1692, pos=[(0,3550,5), (0,3749,37), (3,369,56)]) and.1706: bits[1] = and(eq.1686, eq.1687, id=1706, pos=[(0,96,6), (0,3749,72), (3,369,56)]) bit_slice.1707: bits[8] = bit_slice(bexp__6, start=0, width=8, id=1707, pos=[(0,3742,24), (3,369,56)]) nor.1695: bits[1] = nor(nand.1689, ab_sign__2, id=1695, pos=[(0,3749,37), (3,369,56)]) nor.1696: bits[1] = nor(not.1690, not.1691, c_sign__2, id=1696, pos=[(0,3749,72), (3,369,56)]) and.1697: bits[1] = and(and.1692, ab_sign__2, id=1697, pos=[(0,3754,37), (3,369,56)]) and.1698: bits[1] = and(eq.1686, eq.1687, c_sign__2, id=1698, pos=[(0,3754,72), (3,369,56)]) is_operand_inf: bits[1] = or(and.1692, and.1706, id=1713, pos=[(0,3745,39), (3,369,56)]) bit_slice.1714: bits[1] = bit_slice(bexp__6, start=8, width=1, id=1714, pos=[(0,3742,24), (3,369,56)]) and_reduce.1715: bits[1] = and_reduce(bit_slice.1707, id=1715, pos=[(0,3742,24), (3,369,56)]) eq.1716: bits[1] = eq(bexp__6, literal.1529, id=1716, pos=[(0,3736,29), (3,369,56)]) not.1750: bits[1] = not(eq.1684, id=1750, pos=[(0,3556,5), (0,3755,38), (3,369,56)]) has_pos_inf: bits[1] = or(nor.1695, nor.1696, id=1703, pos=[(0,3749,37), (3,369,56)]) has_neg_inf: bits[1] = or(and.1697, and.1698, id=1704, pos=[(0,3754,37), (3,369,56)]) or.1720: bits[1] = or(is_operand_inf, bit_slice.1714, and_reduce.1715, eq.1716, id=1720, pos=[(0,3747,26), (3,369,56)]) nor.1751: bits[1] = nor(not.1750, eq.1685, id=1751, pos=[(0,3556,5), (0,3755,38), (3,369,56)]) nor.1753: bits[1] = nor(not.1690, eq.1687, id=1753, pos=[(0,71,6), (0,3755,51), (3,369,56)]) and.1710: bits[1] = and(has_pos_inf, has_neg_inf, id=1710, pos=[(0,3755,58), (3,369,56)]) concat.1711: bits[2] = concat(bit_slice.1633, fraction_is_zero, id=1711, pos=[(3,369,56)]) not.1712: bits[1] = not(greater_sign, id=1712, pos=[(0,3676,25), (3,369,56)]) not.1789: bits[1] = not(or.1720, id=1789, pos=[(0,3747,26), (3,369,56)]) is_result_nan: bits[1] = or(nor.1751, nor.1753, and.1710, id=1717, pos=[(0,3755,38), (3,369,56)]) result_sign: bits[1] = priority_sel(concat.1711, cases=[cancel__1, not.1712], default=greater_sign, id=1718, pos=[(3,369,56)]) not.1719: bits[1] = not(has_pos_inf, id=1719, pos=[(0,3750,42), (3,369,56)]) result_fraction: bits[23] = bit_slice(rounded_fraction__1, start=0, width=23, id=1721, pos=[(3,369,56)]) sign_ext.1790: bits[23] = sign_ext(not.1789, new_bit_count=23, id=1790, pos=[(0,3747,26), (3,369,56)]) not.1722: bits[1] = not(is_result_nan, id=1722, pos=[(0,3759,22), (3,369,56)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.1719], id=1723, pos=[(0,3750,22), (3,369,56)]) or.1724: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.1714, and_reduce.1715, id=1724, pos=[(0,3756,21), (3,369,56)]) result_fraction__3: bits[23] = and(result_fraction, sign_ext.1790, id=1791, pos=[(0,3747,26), (3,369,56)]) literal.1726: bits[23] = literal(value=524288, id=1726, pos=[(0,3758,27), (3,369,56)]) after_all.520: token = after_all(id=520) nand.1739: bits[1] = nand(carry_bit__2, cancel__2, id=1739, pos=[(3,369,56)]) result_sign__2: bits[1] = and(not.1722, result_sign__1, id=1728, pos=[(0,3759,22), (3,369,56)]) result_exp__2: bits[8] = sel(or.1724, cases=[bit_slice.1707, max_exp], id=1729, pos=[(0,3756,21), (3,369,56)]) result_fraction__4: bits[23] = sel(is_result_nan, cases=[result_fraction__3, literal.1726], id=1730, pos=[(0,3758,8), (3,369,56)]) assert_1497__2: token = assert(after_all.520, nand.1739, message="Assertion failure via fail! @ /inputs/subtree/xls/dslx/stdlib/apfloat.x:3704:19-3704:60", label="carry_and_cancel", id=1734, pos=[(3,369,56)]) ret tuple.1732: (bits[1], bits[8], bits[23]) = tuple(result_sign__2, result_exp__2, result_fraction__4, id=1732, pos=[(0,3761,33), (3,369,56)]) }