package hfloat16 file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/abs_diff.x" file_number 2 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 3 "/inputs/subtree/xls/dslx/stdlib/hfloat16.x" top fn __hfloat16__add(x: (bits[1], bits[5], bits[10]) id=840, y: (bits[1], bits[5], bits[10]) id=841) -> (bits[1], bits[5], bits[10]) { y_bexp__1: bits[5] = tuple_index(y, index=1, id=27231, pos=[(2,3091,67), (3,116,51)]) literal.27232: bits[1] = literal(value=0, id=27232, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexp__1: bits[5] = tuple_index(x, index=1, id=27233, pos=[(2,3091,59), (3,116,51)]) y_bexpnot: bits[5] = not(y_bexp__1, id=27234, pos=[(1,90,15), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexp_extended__1: bits[6] = concat(literal.27232, x_bexp__1, id=27235, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) y_bexpnot_extended: bits[6] = concat(literal.27232, y_bexpnot, id=27236, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) full_result: bits[6] = add(x_bexp_extended__1, y_bexpnot_extended, id=27237, pos=[(0,1120,45), (1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=27238, pos=[(0,1122,49), (1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) tuple_index.27240: bits[10] = tuple_index(y, index=2, id=27240, pos=[(2,3092,17), (3,116,51)]) tuple_index.27241: bits[10] = tuple_index(x, index=2, id=27241, pos=[(2,3092,17), (3,116,51)]) x_bexp: bits[5] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=27514, pos=[(2,3092,17), (3,116,51)]) literal.27243: bits[5] = literal(value=0, id=27243, pos=[(2,3099,34), (3,116,51)]) y_bexp: bits[5] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=27512, pos=[(2,3092,17), (3,116,51)]) literal.27244: bits[1] = literal(value=1, id=27244, pos=[(2,3095,22), (3,116,51)]) x_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.27240, tuple_index.27241], id=27515, pos=[(2,3092,17), (3,116,51)]) ne.27760: bits[1] = ne(x_bexp, literal.27243, id=27760, pos=[(2,3099,21), (3,116,51)]) y_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.27241, tuple_index.27240], id=27513, pos=[(2,3092,17), (3,116,51)]) ne.27759: bits[1] = ne(y_bexp, literal.27243, id=27759, pos=[(2,3100,21), (3,116,51)]) nc: bits[1] = not(overflow_detected, id=27239, pos=[(1,92,19), (2,3009,44), (2,3091,57), (3,116,51)]) fraction_x: bits[11] = concat(literal.27244, x_fraction, id=27265, pos=[(2,3095,22), (3,116,51)]) sign_ext.27628: bits[11] = sign_ext(ne.27760, new_bit_count=11, id=27628, pos=[(2,3099,21), (3,116,51)]) fraction_y: bits[11] = concat(literal.27244, y_fraction, id=27247, pos=[(2,3096,22), (3,116,51)]) sign_ext.27631: bits[11] = sign_ext(ne.27759, new_bit_count=11, id=27631, pos=[(2,3100,21), (3,116,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=27252, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexpor_mask: bits[5] = sign_ext(nc, new_bit_count=5, id=27253, pos=[(1,94,32), (2,3009,44), (2,3091,57), (3,116,51)]) literal.27254: bits[4] = literal(value=0, id=27254, pos=[(2,3010,68), (2,3091,57), (3,116,51)]) tuple_index.27273: bits[1] = tuple_index(y, index=0, id=27273, pos=[(2,3092,17), (3,116,51)]) tuple_index.27272: bits[1] = tuple_index(x, index=0, id=27272, pos=[(2,3092,17), (3,116,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.27628, id=27629, pos=[(2,3099,21), (3,116,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.27631, id=27632, pos=[(2,3100,21), (3,116,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=27250, pos=[(2,3104,17), (3,116,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask, id=27256, pos=[(1,95,18), (2,3009,44), (2,3091,57), (3,116,51)]) concat.27257: bits[5] = concat(literal.27254, overflow_detected, id=27257, pos=[(2,3010,68), (2,3091,57), (3,116,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27273, tuple_index.27272], id=27516, pos=[(2,3092,17), (3,116,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27272, tuple_index.27273], id=27517, pos=[(2,3092,17), (3,116,51)]) wide_x_squeezed: bits[12] = concat(literal.27232, fraction_x__1, id=27274, pos=[(2,3103,17), (3,116,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=27269, pos=[(2,3116,31), (3,116,51)]) shift: bits[5] = add(result, concat.27257, id=27263, pos=[(1,54,7), (2,3010,68), (2,3091,57), (3,116,51)]) literal.27262: bits[15] = literal(value=32767, id=27262, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) xor.27282: bits[1] = xor(x_sign, y_sign, id=27282, pos=[(2,3110,23), (3,116,51)]) neg.27279: bits[12] = neg(wide_x_squeezed, id=27279, pos=[(2,3110,41), (3,116,51)]) shrl.27275: bits[14] = shrl(wide_y_shift_bits, shift, id=27275, pos=[(2,3116,31), (3,116,51)]) not.27803: bits[10] = not(y_fraction, id=27803, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) shll.27267: bits[15] = shll(literal.27262, shift, id=27267, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) xddend_x__1_squeezed: bits[12] = sel(xor.27282, cases=[wide_x_squeezed, neg.27279], id=27635, pos=[(2,3110,19), (3,116,51)]) literal.27529: bits[2] = literal(value=0, id=27529, pos=[(3,116,51)]) bit_slice.27795: bits[11] = bit_slice(shrl.27275, start=3, width=11, id=27795, pos=[(2,3120,20), (3,116,51)]) concat.27806: bits[11] = concat(literal.27232, not.27803, id=27806, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) not.27763: bits[11] = not(sign_ext.27631, id=27763, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) bit_slice.27271: bits[11] = bit_slice(shll.27267, start=3, width=11, id=27271, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) sign_ext.27781: bits[13] = sign_ext(xddend_x__1_squeezed, new_bit_count=13, id=27781, pos=[(2,3120,20), (3,116,51)]) concat.27783: bits[13] = concat(literal.27529, bit_slice.27795, id=27783, pos=[(2,3120,20), (3,116,51)]) nor.27764: bits[11] = nor(concat.27806, not.27763, bit_slice.27271, id=27764, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) literal.27248: bits[11] = literal(value=0, id=27248, pos=[(2,3099,49), (3,116,51)]) add.27748: bits[13] = add(sign_ext.27781, concat.27783, id=27748, pos=[(2,3120,20), (3,116,51)]) bit_slice.27280: bits[1] = bit_slice(shrl.27275, start=0, width=1, id=27280, pos=[(2,3053,40), (2,3116,30), (3,116,51)]) sticky: bits[1] = ne(nor.27764, literal.27248, id=27281, pos=[(0,1502,17), (0,1529,22), (2,3115,35), (3,116,51)]) bit_slice.27774: bits[12] = bit_slice(add.27748, start=0, width=12, id=27774, pos=[(2,3120,20), (3,116,51)]) bit_slice.27796: bits[2] = bit_slice(shrl.27275, start=1, width=2, id=27796, pos=[(2,3120,20), (3,116,51)]) or.27286: bits[1] = or(bit_slice.27280, sticky, id=27286, pos=[(2,3053,40), (2,3116,30), (3,116,51)]) concat.27801: bits[15] = concat(bit_slice.27774, bit_slice.27796, or.27286, id=27801, pos=[(2,3120,20), (3,116,51)]) bit_slice.27776: bits[1] = bit_slice(add.27748, start=12, width=1, id=27776, pos=[(2,3130,12), (3,116,51)]) neg.27294: bits[15] = neg(concat.27801, id=27294, pos=[(2,3130,46), (3,116,51)]) xbs_fraction: bits[15] = sel(bit_slice.27776, cases=[concat.27801, neg.27294], id=27295, pos=[(2,3130,9), (3,116,51)]) bit_slice.27356: bits[1] = bit_slice(xbs_fraction, start=1, width=1, id=27356, pos=[(0,1591,70), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27334: bits[1] = bit_slice(xbs_fraction, start=3, width=1, id=27334, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27321: bits[1] = bit_slice(xbs_fraction, start=5, width=1, id=27321, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27308: bits[1] = bit_slice(xbs_fraction, start=7, width=1, id=27308, pos=[(0,1591,70), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27300: bits[1] = bit_slice(xbs_fraction, start=9, width=1, id=27300, pos=[(0,1591,70), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27299: bits[1] = bit_slice(xbs_fraction, start=11, width=1, id=27299, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27296: bits[1] = bit_slice(xbs_fraction, start=13, width=1, id=27296, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27380: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=27380, pos=[(0,1591,40), (0,1596,64), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27366: bits[1] = bit_slice(xbs_fraction, start=2, width=1, id=27366, pos=[(0,1591,40), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27367: bits[1] = not(bit_slice.27356, id=27367, pos=[(0,1584,4), (0,1591,64), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27332: bits[1] = bit_slice(xbs_fraction, start=6, width=1, id=27332, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27344: bits[1] = bit_slice(xbs_fraction, start=4, width=1, id=27344, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27345: bits[1] = not(bit_slice.27334, id=27345, pos=[(0,1584,4), (0,1591,64), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27856: bits[1] = not(bit_slice.27321, id=27856, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=14, width=1, id=27297, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27304: bits[1] = bit_slice(xbs_fraction, start=12, width=1, id=27304, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27306: bits[1] = bit_slice(xbs_fraction, start=10, width=1, id=27306, pos=[(0,1591,40), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) bit_slice.27319: bits[1] = bit_slice(xbs_fraction, start=8, width=1, id=27319, pos=[(0,1591,40), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27320: bits[1] = not(bit_slice.27308, id=27320, pos=[(0,1584,4), (0,1591,64), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27307: bits[1] = not(bit_slice.27300, id=27307, pos=[(0,1584,4), (0,1591,64), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27305: bits[1] = not(bit_slice.27299, id=27305, pos=[(0,1584,4), (0,1591,64), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27298: bits[1] = not(bit_slice.27296, id=27298, pos=[(0,1584,4), (0,1591,64), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27523: bits[1] = not(bit_slice.27380, id=27523, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27377: bits[1] = nor(bit_slice.27366, not.27367, id=27377, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) or.27588: bits[1] = or(bit_slice.27332, bit_slice.27321, id=27588, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27354: bits[1] = nor(bit_slice.27344, bit_slice.27334, id=27354, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27353: bits[1] = nor(bit_slice.27344, not.27345, id=27353, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27854: bits[1] = nor(bit_slice.27332, bit_slice.27321, id=27854, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27857: bits[1] = nor(bit_slice.27332, not.27856, id=27857, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27302: bits[1] = nor(carry_bit, bit_slice.27296, id=27302, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27314: bits[1] = nor(bit_slice.27304, bit_slice.27299, id=27314, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) or.27589: bits[1] = or(bit_slice.27306, bit_slice.27300, id=27589, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27330: bits[1] = nor(bit_slice.27319, bit_slice.27308, id=27330, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27329: bits[1] = nor(bit_slice.27319, not.27320, id=27329, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27316: bits[1] = nor(bit_slice.27306, not.27307, id=27316, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) or.27590: bits[1] = or(carry_bit, bit_slice.27296, id=27590, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27313: bits[1] = nor(bit_slice.27304, not.27305, id=27313, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27301: bits[1] = nor(carry_bit, not.27298, id=27301, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27378: bits[1] = nor(bit_slice.27366, bit_slice.27356, id=27378, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27545: bits[2] = concat(literal.27244, not.27523, id=27545, pos=[(0,1596,22), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27867: bits[2] = concat(literal.27232, nor.27377, id=27867, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27394: bits[1] = nor(or.27588, nor.27354, id=27394, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27733: bits[2] = concat(literal.27244, nor.27353, id=27733, pos=[(0,1541,24), (0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27682: bits[2] = concat(nor.27854, nor.27857, id=27682, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) and.27358: bits[1] = and(nor.27302, nor.27314, id=27358, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27317: bits[1] = nor(bit_slice.27306, bit_slice.27300, id=27317, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27372: bits[1] = nor(or.27589, nor.27330, id=27372, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27585: bits[2] = concat(literal.27244, nor.27329, id=27585, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27868: bits[2] = concat(literal.27232, nor.27316, id=27868, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27357: bits[1] = nor(or.27590, nor.27314, id=27357, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27736: bits[2] = concat(literal.27244, nor.27313, id=27736, pos=[(0,1541,24), (0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27869: bits[2] = concat(literal.27232, nor.27301, id=27869, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27411: bits[2] = priority_sel(nor.27378, cases=[concat.27545], default=concat.27867, id=27411, pos=[(0,1596,22), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27647: bits[2] = priority_sel(nor.27394, cases=[concat.27733], default=concat.27682, id=27647, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) not.27399: bits[1] = not(and.27358, id=27399, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) and.27373: bits[1] = and(nor.27317, nor.27330, id=27373, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27576: bits[2] = priority_sel(nor.27372, cases=[concat.27585], default=concat.27868, id=27576, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27653: bits[2] = priority_sel(nor.27357, cases=[concat.27736], default=concat.27869, id=27653, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) and.27395: bits[1] = and(nor.27854, nor.27354, id=27395, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27417: bits[3] = concat(literal.27244, priority_sel.27411, id=27417, pos=[(0,1601,22), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27743: bits[3] = concat(literal.27232, priority_sel.27647, id=27743, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) nor.27407: bits[1] = nor(not.27399, and.27373, id=27407, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27739: bits[3] = concat(literal.27244, priority_sel.27576, id=27739, pos=[(0,1541,24), (0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27744: bits[3] = concat(literal.27232, priority_sel.27653, id=27744, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27419: bits[3] = priority_sel(and.27395, cases=[concat.27417], default=concat.27743, id=27419, pos=[(0,1601,22), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) priority_sel.27659: bits[3] = priority_sel(nor.27407, cases=[concat.27739], default=concat.27744, id=27659, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) and.27408: bits[1] = and(and.27358, and.27373, id=27408, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27421: bits[4] = concat(literal.27244, priority_sel.27419, id=27421, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27745: bits[4] = concat(literal.27232, priority_sel.27659, id=27745, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) concat.27422: bits[16] = concat(literal.27232, xbs_fraction, id=27422, pos=[(3,116,51)]) leading_zeroes: bits[4] = priority_sel(and.27408, cases=[concat.27421], default=concat.27745, id=27423, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (3,116,51)]) cancel_fraction: bits[16] = shll(concat.27422, leading_zeroes, id=27424, pos=[(2,3144,26), (3,116,51)]) bit_slice.27425: bits[13] = bit_slice(xbs_fraction, start=2, width=13, id=27425, pos=[(2,3053,20), (2,3137,36), (3,116,51)]) or.27426: bits[1] = or(bit_slice.27356, bit_slice.27380, id=27426, pos=[(2,3053,40), (2,3137,36), (3,116,51)]) cancel_fraction__1: bits[14] = bit_slice(cancel_fraction, start=1, width=14, id=27427, pos=[(3,116,51)]) carry_fraction__1: bits[14] = concat(bit_slice.27425, or.27426, id=27428, pos=[(2,3053,20), (2,3137,36), (3,116,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=27429, pos=[(2,3146,27), (3,116,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=27430, pos=[(2,3158,39), (3,116,51)]) fraction_shift__3: bits[3] = literal(value=4, id=27431, pos=[(2,3160,38), (3,116,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=27432, pos=[(2,3159,41), (3,116,51)]) literal.27433: bits[2] = literal(value=3, id=27433, pos=[(2,3160,68), (3,116,51)]) ugt.27434: bits[1] = ugt(normal_chunk, fraction_shift__3, id=27434, pos=[(2,3160,23), (3,116,51)]) eq.27435: bits[1] = eq(half_way_chunk, literal.27433, id=27435, pos=[(2,3160,50), (3,116,51)]) bit_slice.27786: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=27786) do_round_up: bits[1] = or(ugt.27434, eq.27435, id=27438, pos=[(2,3160,23), (3,116,51)]) concat.27787: bits[12] = concat(literal.27232, bit_slice.27786, id=27787) concat.27870: bits[12] = concat(literal.27248, do_round_up, id=27870) add.27756: bits[12] = add(concat.27787, concat.27870, id=27756) rounding_carry: bits[1] = bit_slice(add.27756, start=11, width=1, id=27778, pos=[(2,3168,41), (3,116,51)]) literal.27841: bits[13] = literal(value=0, id=27841, pos=[(2,3121,39), (3,116,51)]) bit_slice.27865: bits[1] = bit_slice(shrl.27275, start=1, width=1, id=27865, pos=[(2,3121,27), (3,116,51)]) bit_slice.27866: bits[1] = bit_slice(shrl.27275, start=2, width=1, id=27866, pos=[(2,3121,27), (3,116,51)]) concat.27442: bits[6] = concat(literal.27232, x_bexp, id=27442, pos=[(3,116,51)]) literal.27443: bits[6] = literal(value=1, id=27443, pos=[(2,3180,24), (3,116,51)]) concat.27797: bits[5] = concat(literal.27254, rounding_carry, id=27797, pos=[(3,116,51)]) concat.27445: bits[5] = concat(literal.27232, leading_zeroes, id=27445, pos=[(3,116,51)]) eq.27813: bits[1] = eq(add.27748, literal.27841, id=27813, pos=[(2,3121,27), (3,116,51)]) nor.27852: bits[1] = nor(bit_slice.27865, bit_slice.27866, id=27852, pos=[(2,3121,27), (3,116,51)]) nor.27853: bits[1] = nor(bit_slice.27280, sticky, id=27853, pos=[(2,3121,27), (3,116,51)]) add.27446: bits[6] = add(concat.27442, literal.27443, id=27446, pos=[(2,3179,26), (3,116,51)]) sub.27447: bits[5] = sub(concat.27797, concat.27445, id=27447, pos=[(2,3179,26), (3,116,51)]) fraction_is_zero: bits[1] = and(eq.27813, nor.27852, nor.27853, id=27851, pos=[(2,3121,27), (3,116,51)]) wide_exponent_associative_element: bits[7] = concat(literal.27232, add.27446, id=27449, pos=[(2,3179,26), (3,116,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.27447, new_bit_count=7, id=27450, pos=[(2,3179,26), (3,116,51)]) not.27665: bits[1] = not(fraction_is_zero, id=27665, pos=[(2,3181,24), (3,116,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=27452, pos=[(2,3179,26), (3,116,51)]) sign_ext.27666: bits[7] = sign_ext(not.27665, new_bit_count=7, id=27666, pos=[(2,3181,24), (3,116,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.27666, id=27667, pos=[(2,3181,24), (3,116,51)]) bit_slice.27461: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=27461, pos=[(2,3184,27), (3,116,51)]) not.27668: bits[1] = not(bit_slice.27461, id=27668, pos=[(2,3184,24), (3,116,51)]) bit_slice.27462: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=27462, pos=[(3,116,51)]) sign_ext.27669: bits[6] = sign_ext(not.27668, new_bit_count=6, id=27669, pos=[(2,3184,24), (3,116,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=27454, pos=[(2,96,29), (2,3209,29), (3,116,51)]) literal.27455: bits[10] = literal(value=0, id=27455, pos=[(2,96,57), (2,3209,29), (3,116,51)]) wide_exponent__2: bits[6] = and(bit_slice.27462, sign_ext.27669, id=27670, pos=[(2,3184,24), (3,116,51)]) eq.27457: bits[1] = eq(x_bexp, MAX_EXPONENT, id=27457, pos=[(2,96,6), (2,3209,29), (3,116,51)]) eq.27458: bits[1] = eq(x_fraction, literal.27455, id=27458, pos=[(2,96,44), (2,3209,29), (3,116,51)]) eq.27459: bits[1] = eq(y_bexp, MAX_EXPONENT, id=27459, pos=[(2,96,6), (2,3210,29), (3,116,51)]) eq.27460: bits[1] = eq(y_fraction, literal.27455, id=27460, pos=[(2,96,44), (2,3210,29), (3,116,51)]) bit_slice.27474: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=27474, pos=[(2,3194,11), (3,116,51)]) not.27464: bits[1] = not(eq.27457, id=27464, pos=[(2,3209,29), (3,116,51)]) not.27465: bits[1] = not(eq.27458, id=27465, pos=[(2,3209,29), (3,116,51)]) not.27466: bits[1] = not(eq.27459, id=27466, pos=[(2,3210,29), (3,116,51)]) not.27467: bits[1] = not(eq.27460, id=27467, pos=[(2,3210,29), (3,116,51)]) and.27481: bits[1] = and(eq.27457, eq.27458, id=27481, pos=[(2,96,6), (2,3209,29), (3,116,51)]) and.27482: bits[1] = and(eq.27459, eq.27460, id=27482, pos=[(2,96,6), (2,3210,29), (3,116,51)]) bit_slice.27483: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=27483, pos=[(2,3202,11), (3,116,51)]) or_reduce.27484: bits[1] = or_reduce(bit_slice.27474, id=27484, pos=[(2,3194,11), (3,116,51)]) bit_slice.27485: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=27485, pos=[(2,3194,11), (3,116,51)]) nor.27469: bits[1] = nor(not.27464, not.27465, x_sign, id=27469, pos=[(2,3209,29), (3,116,51)]) nor.27470: bits[1] = nor(not.27466, not.27467, y_sign, id=27470, pos=[(2,3210,29), (3,116,51)]) and.27471: bits[1] = and(eq.27457, eq.27458, x_sign, id=27471, pos=[(2,3215,29), (3,116,51)]) and.27472: bits[1] = and(eq.27459, eq.27460, y_sign, id=27472, pos=[(2,3216,29), (3,116,51)]) fraction_shift__2: bits[3] = literal(value=3, id=27475, pos=[(2,3174,8), (3,116,51)]) is_operand_inf: bits[1] = or(and.27481, and.27482, id=27493, pos=[(2,3205,31), (3,116,51)]) bit_slice.27494: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=27494, pos=[(2,3202,11), (3,116,51)]) and_reduce.27495: bits[1] = and_reduce(bit_slice.27483, id=27495, pos=[(2,3202,11), (3,116,51)]) nor.27496: bits[1] = nor(or_reduce.27484, bit_slice.27485, id=27496, pos=[(2,3194,11), (3,116,51)]) has_pos_inf: bits[1] = or(nor.27469, nor.27470, id=27478, pos=[(2,3209,29), (3,116,51)]) has_neg_inf: bits[1] = or(and.27471, and.27472, id=27479, pos=[(2,3215,29), (3,116,51)]) rounded_fraction: bits[15] = concat(add.27756, normal_chunk, id=27800) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=27486, pos=[(2,3174,8), (3,116,51)]) or.27501: bits[1] = or(is_operand_inf, bit_slice.27494, and_reduce.27495, nor.27496, id=27501, pos=[(2,3207,26), (3,116,51)]) nor.27538: bits[1] = nor(not.27464, eq.27458, id=27538, pos=[(2,71,6), (2,3217,30), (3,116,51)]) nor.27540: bits[1] = nor(not.27466, eq.27460, id=27540, pos=[(2,71,6), (2,3217,64), (3,116,51)]) and.27489: bits[1] = and(has_pos_inf, has_neg_inf, id=27489, pos=[(2,3218,25), (3,116,51)]) concat.27798: bits[2] = concat(bit_slice.27776, fraction_is_zero, id=27798, pos=[(3,116,51)]) and.27491: bits[1] = and(x_sign, y_sign, id=27491, pos=[(2,3123,22), (3,116,51)]) not.27492: bits[1] = not(y_sign, id=27492, pos=[(2,3210,59), (3,116,51)]) shrl.27497: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=27497, pos=[(2,3175,27), (3,116,51)]) not.27671: bits[1] = not(or.27501, id=27671, pos=[(2,3207,26), (3,116,51)]) is_result_nan: bits[1] = or(nor.27538, nor.27540, and.27489, id=27498, pos=[(2,3217,30), (3,116,51)]) result_sign: bits[1] = priority_sel(concat.27798, cases=[and.27491, not.27492], default=y_sign, id=27499, pos=[(3,116,51)]) not.27500: bits[1] = not(has_pos_inf, id=27500, pos=[(2,3211,42), (3,116,51)]) result_fraction: bits[10] = bit_slice(shrl.27497, start=0, width=10, id=27502, pos=[(3,116,51)]) sign_ext.27672: bits[10] = sign_ext(not.27671, new_bit_count=10, id=27672, pos=[(2,3207,26), (3,116,51)]) not.27503: bits[1] = not(is_result_nan, id=27503, pos=[(2,3222,22), (3,116,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.27500], id=27504, pos=[(2,3211,22), (3,116,51)]) or.27505: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.27494, and_reduce.27495, id=27505, pos=[(2,3220,26), (3,116,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.27672, id=27673, pos=[(2,3207,26), (3,116,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=27507, pos=[(2,3219,30), (3,116,51)]) result_sign__2: bits[1] = and(not.27503, result_sign__1, id=27508, pos=[(2,3222,22), (3,116,51)]) result_exponent__2: bits[5] = sel(or.27505, cases=[bit_slice.27483, MAX_EXPONENT], id=27509, pos=[(2,3220,26), (3,116,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=27510, pos=[(2,3221,26), (3,116,51)]) ret tuple.27511: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=27511, pos=[(2,3225,33), (3,116,51)]) }