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__sub(x: (bits[1], bits[5], bits[10]) id=850, y: (bits[1], bits[5], bits[10]) id=851) -> (bits[1], bits[5], bits[10]) { y_bexp__2: bits[5] = tuple_index(y, index=1, id=27524, pos=[(2,3242,65), (3,118,51)]) literal.27528: bits[1] = literal(value=0, id=27528, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexp__2: bits[5] = tuple_index(x, index=1, id=27529, pos=[(2,3091,59), (2,3243,7), (3,118,51)]) y__1_bexpnot__1: bits[5] = not(y_bexp__2, id=27530, pos=[(1,90,15), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexp_extended__2: bits[6] = concat(literal.27528, x_bexp__2, id=27531, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y__1_bexpnot_extended__1: bits[6] = concat(literal.27528, y__1_bexpnot__1, id=27532, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) full_result: bits[6] = add(x_bexp_extended__2, y__1_bexpnot_extended__1, id=27533, pos=[(0,1120,45), (1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=27534, pos=[(0,1122,49), (1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y_fraction__2: bits[10] = tuple_index(y, index=2, id=27525, pos=[(2,3242,83), (3,118,51)]) tuple_index.27537: bits[10] = tuple_index(x, index=2, id=27537, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) x_bexp__3: bits[5] = sel(overflow_detected, cases=[y_bexp__2, x_bexp__2], id=27810, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.27539: bits[5] = literal(value=0, id=27539, pos=[(2,3099,34), (2,3243,7), (3,118,51)]) y_bexp__3: bits[5] = sel(overflow_detected, cases=[x_bexp__2, y_bexp__2], id=27808, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.27540: bits[1] = literal(value=1, id=27540, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) x_fraction__1: bits[10] = sel(overflow_detected, cases=[y_fraction__2, tuple_index.27537], id=27811, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.28056: bits[1] = ne(x_bexp__3, literal.27539, id=28056, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) y_fraction__3: bits[10] = sel(overflow_detected, cases=[tuple_index.27537, y_fraction__2], id=27809, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.28055: bits[1] = ne(y_bexp__3, literal.27539, id=28055, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) nc: bits[1] = not(overflow_detected, id=27535, pos=[(1,92,19), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y_sign__2: bits[1] = tuple_index(y, index=0, id=27522, pos=[(2,3242,51), (3,118,51)]) fraction_x: bits[11] = concat(literal.27540, x_fraction__1, id=27561, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) sign_ext.27924: bits[11] = sign_ext(ne.28056, new_bit_count=11, id=27924, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y: bits[11] = concat(literal.27540, y_fraction__3, id=27543, pos=[(2,3096,22), (2,3243,7), (3,118,51)]) sign_ext.27927: bits[11] = sign_ext(ne.28055, new_bit_count=11, id=27927, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=27548, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexpor_mask__1: bits[5] = sign_ext(nc, new_bit_count=5, id=27549, pos=[(1,94,32), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) literal.27550: bits[4] = literal(value=0, id=27550, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) not.27523: bits[1] = not(y_sign__2, id=27523, pos=[(2,3242,49), (3,118,51)]) tuple_index.27568: bits[1] = tuple_index(x, index=0, id=27568, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.27924, id=27925, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.27927, id=27928, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=27546, pos=[(2,3104,17), (2,3243,7), (3,118,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask__1, id=27552, pos=[(1,95,18), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) concat.27553: bits[5] = concat(literal.27550, overflow_detected, id=27553, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) x_sign__1: bits[1] = sel(overflow_detected, cases=[not.27523, tuple_index.27568], id=27812, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) y_sign__3: bits[1] = sel(overflow_detected, cases=[tuple_index.27568, not.27523], id=27813, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) wide_x_squeezed: bits[12] = concat(literal.27528, fraction_x__1, id=27570, pos=[(2,3103,17), (2,3243,7), (3,118,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__2_squeezed_const_lsb_bits, id=27565, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) shift: bits[5] = add(result, concat.27553, id=27559, pos=[(1,54,7), (2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) literal.27558: bits[15] = literal(value=32767, id=27558, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) xor.27578: bits[1] = xor(x_sign__1, y_sign__3, id=27578, pos=[(2,3110,23), (2,3243,7), (3,118,51)]) neg.27575: bits[12] = neg(wide_x_squeezed, id=27575, pos=[(2,3110,41), (2,3243,7), (3,118,51)]) shrl.27571: bits[14] = shrl(wide_y_shift_bits, shift, id=27571, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) not.28099: bits[10] = not(y_fraction__3, id=28099, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) shll.27563: bits[15] = shll(literal.27558, shift, id=27563, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed: bits[12] = sel(xor.27578, cases=[wide_x_squeezed, neg.27575], id=27931, pos=[(2,3110,19), (2,3243,7), (3,118,51)]) literal.27825: bits[2] = literal(value=0, id=27825, pos=[(2,3243,7), (3,118,51)]) bit_slice.28091: bits[11] = bit_slice(shrl.27571, start=3, width=11, id=28091, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.28102: bits[11] = concat(literal.27528, not.28099, id=28102, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) not.28059: bits[11] = not(sign_ext.27927, id=28059, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.27567: bits[11] = bit_slice(shll.27563, start=3, width=11, id=27567, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) sign_ext.28077: bits[13] = sign_ext(xddend_x__2_squeezed, new_bit_count=13, id=28077, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.28079: bits[13] = concat(literal.27825, bit_slice.28091, id=28079, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) nor.28060: bits[11] = nor(concat.28102, not.28059, bit_slice.27567, id=28060, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) literal.27544: bits[11] = literal(value=0, id=27544, pos=[(2,3099,49), (2,3243,7), (3,118,51)]) add.28044: bits[13] = add(sign_ext.28077, concat.28079, id=28044, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.27576: bits[1] = bit_slice(shrl.27571, start=0, width=1, id=27576, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) sticky: bits[1] = ne(nor.28060, literal.27544, id=27577, pos=[(0,1502,17), (0,1529,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.28070: bits[12] = bit_slice(add.28044, start=0, width=12, id=28070, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.28092: bits[2] = bit_slice(shrl.27571, start=1, width=2, id=28092, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) or.27582: bits[1] = or(bit_slice.27576, sticky, id=27582, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) concat.28097: bits[15] = concat(bit_slice.28070, bit_slice.28092, or.27582, id=28097, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.28072: bits[1] = bit_slice(add.28044, start=12, width=1, id=28072, pos=[(2,3130,12), (2,3243,7), (3,118,51)]) neg.27590: bits[15] = neg(concat.28097, id=27590, pos=[(2,3130,46), (2,3243,7), (3,118,51)]) xbs_fraction__1: bits[15] = sel(bit_slice.28072, cases=[concat.28097, neg.27590], id=27591, pos=[(2,3130,9), (2,3243,7), (3,118,51)]) bit_slice.27652: bits[1] = bit_slice(xbs_fraction__1, start=1, width=1, id=27652, pos=[(0,1591,70), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27630: bits[1] = bit_slice(xbs_fraction__1, start=3, width=1, id=27630, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27617: bits[1] = bit_slice(xbs_fraction__1, start=5, width=1, id=27617, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27604: bits[1] = bit_slice(xbs_fraction__1, start=7, width=1, id=27604, pos=[(0,1591,70), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27596: bits[1] = bit_slice(xbs_fraction__1, start=9, width=1, id=27596, pos=[(0,1591,70), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27595: bits[1] = bit_slice(xbs_fraction__1, start=11, width=1, id=27595, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27592: bits[1] = bit_slice(xbs_fraction__1, start=13, width=1, id=27592, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27676: bits[1] = bit_slice(xbs_fraction__1, start=0, width=1, id=27676, pos=[(0,1591,40), (0,1596,64), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27662: bits[1] = bit_slice(xbs_fraction__1, start=2, width=1, id=27662, pos=[(0,1591,40), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27663: bits[1] = not(bit_slice.27652, id=27663, 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), (2,3243,7), (3,118,51)]) bit_slice.27628: bits[1] = bit_slice(xbs_fraction__1, start=6, width=1, id=27628, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27640: bits[1] = bit_slice(xbs_fraction__1, start=4, width=1, id=27640, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27641: bits[1] = not(bit_slice.27630, id=27641, 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), (2,3243,7), (3,118,51)]) not.28152: bits[1] = not(bit_slice.27617, id=28152, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction__1, start=14, width=1, id=27593, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27600: bits[1] = bit_slice(xbs_fraction__1, start=12, width=1, id=27600, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27602: bits[1] = bit_slice(xbs_fraction__1, start=10, width=1, id=27602, pos=[(0,1591,40), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27615: bits[1] = bit_slice(xbs_fraction__1, start=8, width=1, id=27615, pos=[(0,1591,40), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27616: bits[1] = not(bit_slice.27604, id=27616, 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), (2,3243,7), (3,118,51)]) not.27603: bits[1] = not(bit_slice.27596, id=27603, 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), (2,3243,7), (3,118,51)]) not.27601: bits[1] = not(bit_slice.27595, id=27601, 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), (2,3243,7), (3,118,51)]) not.27594: bits[1] = not(bit_slice.27592, id=27594, 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), (2,3243,7), (3,118,51)]) not.27819: bits[1] = not(bit_slice.27676, id=27819, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27673: bits[1] = nor(bit_slice.27662, not.27663, id=27673, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27884: bits[1] = or(bit_slice.27628, bit_slice.27617, id=27884, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27650: bits[1] = nor(bit_slice.27640, bit_slice.27630, id=27650, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27649: bits[1] = nor(bit_slice.27640, not.27641, id=27649, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.28150: bits[1] = nor(bit_slice.27628, bit_slice.27617, id=28150, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.28153: bits[1] = nor(bit_slice.27628, not.28152, id=28153, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27598: bits[1] = nor(carry_bit, bit_slice.27592, id=27598, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27610: bits[1] = nor(bit_slice.27600, bit_slice.27595, id=27610, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27885: bits[1] = or(bit_slice.27602, bit_slice.27596, id=27885, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27626: bits[1] = nor(bit_slice.27615, bit_slice.27604, id=27626, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27625: bits[1] = nor(bit_slice.27615, not.27616, id=27625, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27612: bits[1] = nor(bit_slice.27602, not.27603, id=27612, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27886: bits[1] = or(carry_bit, bit_slice.27592, id=27886, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27609: bits[1] = nor(bit_slice.27600, not.27601, id=27609, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27597: bits[1] = nor(carry_bit, not.27594, id=27597, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27674: bits[1] = nor(bit_slice.27662, bit_slice.27652, id=27674, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27841: bits[2] = concat(literal.27540, not.27819, id=27841, pos=[(0,1596,22), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28163: bits[2] = concat(literal.27528, nor.27673, id=28163, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27690: bits[1] = nor(or.27884, nor.27650, id=27690, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28029: bits[2] = concat(literal.27540, nor.27649, id=28029, pos=[(0,1541,24), (0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27978: bits[2] = concat(nor.28150, nor.28153, id=27978, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27654: bits[1] = and(nor.27598, nor.27610, id=27654, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27613: bits[1] = nor(bit_slice.27602, bit_slice.27596, id=27613, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27668: bits[1] = nor(or.27885, nor.27626, id=27668, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27881: bits[2] = concat(literal.27540, nor.27625, id=27881, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28164: bits[2] = concat(literal.27528, nor.27612, id=28164, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27653: bits[1] = nor(or.27886, nor.27610, id=27653, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28032: bits[2] = concat(literal.27540, nor.27609, id=28032, pos=[(0,1541,24), (0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28165: bits[2] = concat(literal.27528, nor.27597, id=28165, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27707: bits[2] = priority_sel(nor.27674, cases=[concat.27841], default=concat.28163, id=27707, pos=[(0,1596,22), (0,1601,64), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27943: bits[2] = priority_sel(nor.27690, cases=[concat.28029], default=concat.27978, id=27943, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27695: bits[1] = not(and.27654, id=27695, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27669: bits[1] = and(nor.27613, nor.27626, id=27669, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27872: bits[2] = priority_sel(nor.27668, cases=[concat.27881], default=concat.28164, id=27872, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27949: bits[2] = priority_sel(nor.27653, cases=[concat.28032], default=concat.28165, id=27949, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27691: bits[1] = and(nor.28150, nor.27650, id=27691, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27713: bits[3] = concat(literal.27540, priority_sel.27707, id=27713, pos=[(0,1601,22), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28039: bits[3] = concat(literal.27528, priority_sel.27943, id=28039, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27703: bits[1] = nor(not.27695, and.27669, id=27703, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28035: bits[3] = concat(literal.27540, priority_sel.27872, id=28035, pos=[(0,1541,24), (0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28040: bits[3] = concat(literal.27528, priority_sel.27949, id=28040, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27715: bits[3] = priority_sel(and.27691, cases=[concat.27713], default=concat.28039, id=27715, pos=[(0,1601,22), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27955: bits[3] = priority_sel(nor.27703, cases=[concat.28035], default=concat.28040, id=27955, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27704: bits[1] = and(and.27654, and.27669, id=27704, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27717: bits[4] = concat(literal.27540, priority_sel.27715, id=27717, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28041: bits[4] = concat(literal.27528, priority_sel.27955, id=28041, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27718: bits[16] = concat(literal.27528, xbs_fraction__1, id=27718, pos=[(2,3243,7), (3,118,51)]) leading_zeroes: bits[4] = priority_sel(and.27704, cases=[concat.27717], default=concat.28041, id=27719, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (2,3243,7), (3,118,51)]) cancel_fraction: bits[16] = shll(concat.27718, leading_zeroes, id=27720, pos=[(2,3144,26), (2,3243,7), (3,118,51)]) bit_slice.27721: bits[13] = bit_slice(xbs_fraction__1, start=2, width=13, id=27721, pos=[(2,3053,20), (2,3137,36), (2,3243,7), (3,118,51)]) or.27722: bits[1] = or(bit_slice.27652, bit_slice.27676, id=27722, pos=[(2,3053,40), (2,3137,36), (2,3243,7), (3,118,51)]) cancel_fraction__1: bits[14] = bit_slice(cancel_fraction, start=1, width=14, id=27723, pos=[(2,3243,7), (3,118,51)]) carry_fraction__1: bits[14] = concat(bit_slice.27721, or.27722, id=27724, pos=[(2,3053,20), (2,3137,36), (2,3243,7), (3,118,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=27725, pos=[(2,3146,27), (2,3243,7), (3,118,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=27726, pos=[(2,3158,39), (2,3243,7), (3,118,51)]) fraction_shift__3: bits[3] = literal(value=4, id=27727, pos=[(2,3160,38), (2,3243,7), (3,118,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=27728, pos=[(2,3159,41), (2,3243,7), (3,118,51)]) literal.27729: bits[2] = literal(value=3, id=27729, pos=[(2,3160,68), (2,3243,7), (3,118,51)]) ugt.27730: bits[1] = ugt(normal_chunk, fraction_shift__3, id=27730, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) eq.27731: bits[1] = eq(half_way_chunk, literal.27729, id=27731, pos=[(2,3160,50), (2,3243,7), (3,118,51)]) bit_slice.28082: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=28082) do_round_up: bits[1] = or(ugt.27730, eq.27731, id=27734, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) concat.28083: bits[12] = concat(literal.27528, bit_slice.28082, id=28083) concat.28166: bits[12] = concat(literal.27544, do_round_up, id=28166) add.28052: bits[12] = add(concat.28083, concat.28166, id=28052) rounding_carry: bits[1] = bit_slice(add.28052, start=11, width=1, id=28074, pos=[(2,3168,41), (2,3243,7), (3,118,51)]) literal.28137: bits[13] = literal(value=0, id=28137, pos=[(2,3121,39), (2,3243,7), (3,118,51)]) bit_slice.28161: bits[1] = bit_slice(shrl.27571, start=1, width=1, id=28161, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) bit_slice.28162: bits[1] = bit_slice(shrl.27571, start=2, width=1, id=28162, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) concat.27738: bits[6] = concat(literal.27528, x_bexp__3, id=27738, pos=[(2,3243,7), (3,118,51)]) literal.27739: bits[6] = literal(value=1, id=27739, pos=[(2,3180,24), (2,3243,7), (3,118,51)]) concat.28093: bits[5] = concat(literal.27550, rounding_carry, id=28093, pos=[(2,3243,7), (3,118,51)]) concat.27741: bits[5] = concat(literal.27528, leading_zeroes, id=27741, pos=[(2,3243,7), (3,118,51)]) eq.28109: bits[1] = eq(add.28044, literal.28137, id=28109, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.28148: bits[1] = nor(bit_slice.28161, bit_slice.28162, id=28148, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.28149: bits[1] = nor(bit_slice.27576, sticky, id=28149, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) add.27742: bits[6] = add(concat.27738, literal.27739, id=27742, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sub.27743: bits[5] = sub(concat.28093, concat.27741, id=27743, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) fraction_is_zero: bits[1] = and(eq.28109, nor.28148, nor.28149, id=28147, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) wide_exponent_associative_element: bits[7] = concat(literal.27528, add.27742, id=27745, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.27743, new_bit_count=7, id=27746, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) not.27961: bits[1] = not(fraction_is_zero, id=27961, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=27748, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sign_ext.27962: bits[7] = sign_ext(not.27961, new_bit_count=7, id=27962, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.27962, id=27963, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) bit_slice.27757: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=27757, pos=[(2,3184,27), (2,3243,7), (3,118,51)]) not.27964: bits[1] = not(bit_slice.27757, id=27964, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) bit_slice.27758: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=27758, pos=[(2,3243,7), (3,118,51)]) sign_ext.27965: bits[6] = sign_ext(not.27964, new_bit_count=6, id=27965, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=27750, pos=[(2,96,29), (2,3209,29), (2,3243,7), (3,118,51)]) literal.27751: bits[10] = literal(value=0, id=27751, pos=[(2,96,57), (2,3209,29), (2,3243,7), (3,118,51)]) wide_exponent__2: bits[6] = and(bit_slice.27758, sign_ext.27965, id=27966, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) eq.27753: bits[1] = eq(x_bexp__3, MAX_EXPONENT, id=27753, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) eq.27754: bits[1] = eq(x_fraction__1, literal.27751, id=27754, pos=[(2,96,44), (2,3209,29), (2,3243,7), (3,118,51)]) eq.27755: bits[1] = eq(y_bexp__3, MAX_EXPONENT, id=27755, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) eq.27756: bits[1] = eq(y_fraction__3, literal.27751, id=27756, pos=[(2,96,44), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.27770: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=27770, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) not.27760: bits[1] = not(eq.27753, id=27760, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.27761: bits[1] = not(eq.27754, id=27761, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.27762: bits[1] = not(eq.27755, id=27762, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) not.27763: bits[1] = not(eq.27756, id=27763, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.27777: bits[1] = and(eq.27753, eq.27754, id=27777, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) and.27778: bits[1] = and(eq.27755, eq.27756, id=27778, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.27779: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=27779, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) or_reduce.27780: bits[1] = or_reduce(bit_slice.27770, id=27780, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) bit_slice.27781: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=27781, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) nor.27765: bits[1] = nor(not.27760, not.27761, x_sign__1, id=27765, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) nor.27766: bits[1] = nor(not.27762, not.27763, y_sign__3, id=27766, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.27767: bits[1] = and(eq.27753, eq.27754, x_sign__1, id=27767, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) and.27768: bits[1] = and(eq.27755, eq.27756, y_sign__3, id=27768, pos=[(2,3216,29), (2,3243,7), (3,118,51)]) fraction_shift__2: bits[3] = literal(value=3, id=27771, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) is_operand_inf: bits[1] = or(and.27777, and.27778, id=27789, pos=[(2,3205,31), (2,3243,7), (3,118,51)]) bit_slice.27790: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=27790, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) and_reduce.27791: bits[1] = and_reduce(bit_slice.27779, id=27791, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) nor.27792: bits[1] = nor(or_reduce.27780, bit_slice.27781, id=27792, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) has_pos_inf: bits[1] = or(nor.27765, nor.27766, id=27774, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) has_neg_inf: bits[1] = or(and.27767, and.27768, id=27775, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) rounded_fraction: bits[15] = concat(add.28052, normal_chunk, id=28096) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=27782, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) or.27797: bits[1] = or(is_operand_inf, bit_slice.27790, and_reduce.27791, nor.27792, id=27797, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) nor.27834: bits[1] = nor(not.27760, eq.27754, id=27834, pos=[(2,71,6), (2,3217,30), (2,3243,7), (3,118,51)]) nor.27836: bits[1] = nor(not.27762, eq.27756, id=27836, pos=[(2,71,6), (2,3217,64), (2,3243,7), (3,118,51)]) and.27785: bits[1] = and(has_pos_inf, has_neg_inf, id=27785, pos=[(2,3218,25), (2,3243,7), (3,118,51)]) concat.28094: bits[2] = concat(bit_slice.28072, fraction_is_zero, id=28094, pos=[(2,3243,7), (3,118,51)]) and.27787: bits[1] = and(x_sign__1, y_sign__3, id=27787, pos=[(2,3123,22), (2,3243,7), (3,118,51)]) not.27788: bits[1] = not(y_sign__3, id=27788, pos=[(2,3210,59), (2,3243,7), (3,118,51)]) shrl.27793: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=27793, pos=[(2,3175,27), (2,3243,7), (3,118,51)]) not.27967: bits[1] = not(or.27797, id=27967, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) is_result_nan: bits[1] = or(nor.27834, nor.27836, and.27785, id=27794, pos=[(2,3217,30), (2,3243,7), (3,118,51)]) result_sign: bits[1] = priority_sel(concat.28094, cases=[and.27787, not.27788], default=y_sign__3, id=27795, pos=[(2,3243,7), (3,118,51)]) not.27796: bits[1] = not(has_pos_inf, id=27796, pos=[(2,3211,42), (2,3243,7), (3,118,51)]) result_fraction: bits[10] = bit_slice(shrl.27793, start=0, width=10, id=27798, pos=[(2,3243,7), (3,118,51)]) sign_ext.27968: bits[10] = sign_ext(not.27967, new_bit_count=10, id=27968, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) not.27799: bits[1] = not(is_result_nan, id=27799, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.27796], id=27800, pos=[(2,3211,22), (2,3243,7), (3,118,51)]) or.27801: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.27790, and_reduce.27791, id=27801, pos=[(2,3220,26), (2,3243,7), (3,118,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.27968, id=27969, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=27803, pos=[(2,3219,30), (2,3243,7), (3,118,51)]) result_sign__2: bits[1] = and(not.27799, result_sign__1, id=27804, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_exponent__2: bits[5] = sel(or.27801, cases=[bit_slice.27779, MAX_EXPONENT], id=27805, pos=[(2,3220,26), (2,3243,7), (3,118,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=27806, pos=[(2,3221,26), (2,3243,7), (3,118,51)]) ret tuple.27807: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=27807, pos=[(2,3225,33), (2,3243,7), (3,118,51)]) }