package bfloat16 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/bfloat16.x" top fn __bfloat16__add(x: (bits[1], bits[8], bits[7]) id=840, y: (bits[1], bits[8], bits[7]) id=841) -> (bits[1], bits[8], bits[7]) { y_bexp__1: bits[8] = tuple_index(y, index=1, id=27185, pos=[(2,3091,67), (3,162,51)]) literal.27186: bits[1] = literal(value=0, id=27186, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexp__1: bits[8] = tuple_index(x, index=1, id=27187, pos=[(2,3091,59), (3,162,51)]) y_bexpnot: bits[8] = not(y_bexp__1, id=27188, pos=[(1,90,15), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexp_extended__1: bits[9] = concat(literal.27186, x_bexp__1, id=27189, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) y_bexpnot_extended: bits[9] = concat(literal.27186, y_bexpnot, id=27190, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) full_result: bits[9] = add(x_bexp_extended__1, y_bexpnot_extended, id=27191, pos=[(0,1120,45), (1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=8, width=1, id=27192, pos=[(0,1122,49), (1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) tuple_index.27194: bits[7] = tuple_index(y, index=2, id=27194, pos=[(2,3092,17), (3,162,51)]) tuple_index.27195: bits[7] = tuple_index(x, index=2, id=27195, pos=[(2,3092,17), (3,162,51)]) x_bexp: bits[8] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=27450, pos=[(2,3092,17), (3,162,51)]) literal.27197: bits[8] = literal(value=0, id=27197, pos=[(2,3099,34), (3,162,51)]) y_bexp: bits[8] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=27448, pos=[(2,3092,17), (3,162,51)]) literal.27198: bits[1] = literal(value=1, id=27198, pos=[(2,3095,22), (3,162,51)]) x_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.27194, tuple_index.27195], id=27451, pos=[(2,3092,17), (3,162,51)]) ne.27659: bits[1] = ne(x_bexp, literal.27197, id=27659, pos=[(2,3099,21), (3,162,51)]) y_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.27195, tuple_index.27194], id=27449, pos=[(2,3092,17), (3,162,51)]) ne.27658: bits[1] = ne(y_bexp, literal.27197, id=27658, pos=[(2,3100,21), (3,162,51)]) nc: bits[1] = not(overflow_detected, id=27193, pos=[(1,92,19), (2,3009,44), (2,3091,57), (3,162,51)]) fraction_x: bits[8] = concat(literal.27198, x_fraction, id=27218, pos=[(2,3095,22), (3,162,51)]) sign_ext.27536: bits[8] = sign_ext(ne.27659, new_bit_count=8, id=27536, pos=[(2,3099,21), (3,162,51)]) fraction_y: bits[8] = concat(literal.27198, y_fraction, id=27201, pos=[(2,3096,22), (3,162,51)]) sign_ext.27539: bits[8] = sign_ext(ne.27658, new_bit_count=8, id=27539, pos=[(2,3100,21), (3,162,51)]) narrowed_result: bits[8] = bit_slice(full_result, start=0, width=8, id=27205, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexpor_mask: bits[8] = sign_ext(nc, new_bit_count=8, id=27206, pos=[(1,94,32), (2,3009,44), (2,3091,57), (3,162,51)]) literal.27207: bits[7] = literal(value=0, id=27207, pos=[(2,3010,68), (2,3091,57), (3,162,51)]) tuple_index.27226: bits[1] = tuple_index(y, index=0, id=27226, pos=[(2,3092,17), (3,162,51)]) tuple_index.27225: bits[1] = tuple_index(x, index=0, id=27225, pos=[(2,3092,17), (3,162,51)]) fraction_x__1: bits[8] = and(fraction_x, sign_ext.27536, id=27537, pos=[(2,3099,21), (3,162,51)]) fraction_y__1: bits[8] = and(fraction_y, sign_ext.27539, id=27540, pos=[(2,3100,21), (3,162,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=27203, pos=[(2,3104,17), (3,162,51)]) result: bits[8] = xor(narrowed_result, x_bexpor_mask, id=27209, pos=[(1,95,18), (2,3009,44), (2,3091,57), (3,162,51)]) concat.27210: bits[8] = concat(literal.27207, overflow_detected, id=27210, pos=[(2,3010,68), (2,3091,57), (3,162,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27226, tuple_index.27225], id=27452, pos=[(2,3092,17), (3,162,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27225, tuple_index.27226], id=27453, pos=[(2,3092,17), (3,162,51)]) wide_x_squeezed: bits[9] = concat(literal.27186, fraction_x__1, id=27227, pos=[(2,3103,17), (3,162,51)]) wide_y_shift_bits: bits[11] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=27222, pos=[(2,3116,31), (3,162,51)]) shift: bits[8] = add(result, concat.27210, id=27216, pos=[(1,54,7), (2,3010,68), (2,3091,57), (3,162,51)]) literal.27215: bits[12] = literal(value=4095, id=27215, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) xor.27235: bits[1] = xor(x_sign, y_sign, id=27235, pos=[(2,3110,23), (3,162,51)]) neg.27232: bits[9] = neg(wide_x_squeezed, id=27232, pos=[(2,3110,41), (3,162,51)]) shrl.27228: bits[11] = shrl(wide_y_shift_bits, shift, id=27228, pos=[(2,3116,31), (3,162,51)]) not.27704: bits[7] = not(y_fraction, id=27704, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) shll.27220: bits[12] = shll(literal.27215, shift, id=27220, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) xddend_x__1_squeezed: bits[9] = sel(xor.27235, cases=[wide_x_squeezed, neg.27232], id=27543, pos=[(2,3110,19), (3,162,51)]) literal.27461: bits[2] = literal(value=0, id=27461, pos=[(3,162,51)]) bit_slice.27696: bits[8] = bit_slice(shrl.27228, start=3, width=8, id=27696, pos=[(2,3120,20), (3,162,51)]) concat.27707: bits[8] = concat(literal.27186, not.27704, id=27707, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) not.27662: bits[8] = not(sign_ext.27539, id=27662, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) bit_slice.27224: bits[8] = bit_slice(shll.27220, start=3, width=8, id=27224, pos=[(0,1412,19), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) sign_ext.27681: bits[10] = sign_ext(xddend_x__1_squeezed, new_bit_count=10, id=27681, pos=[(2,3120,20), (3,162,51)]) concat.27683: bits[10] = concat(literal.27461, bit_slice.27696, id=27683, pos=[(2,3120,20), (3,162,51)]) nor.27663: bits[8] = nor(concat.27707, not.27662, bit_slice.27224, id=27663, pos=[(0,1412,4), (0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) add.27647: bits[10] = add(sign_ext.27681, concat.27683, id=27647, pos=[(2,3120,20), (3,162,51)]) bit_slice.27233: bits[1] = bit_slice(shrl.27228, start=0, width=1, id=27233, pos=[(2,3053,40), (2,3116,30), (3,162,51)]) sticky: bits[1] = ne(nor.27663, literal.27197, id=27234, pos=[(0,1502,17), (0,1529,22), (2,3115,35), (3,162,51)]) bit_slice.27674: bits[9] = bit_slice(add.27647, start=0, width=9, id=27674, pos=[(2,3120,20), (3,162,51)]) bit_slice.27697: bits[2] = bit_slice(shrl.27228, start=1, width=2, id=27697, pos=[(2,3120,20), (3,162,51)]) or.27239: bits[1] = or(bit_slice.27233, sticky, id=27239, pos=[(2,3053,40), (2,3116,30), (3,162,51)]) concat.27702: bits[12] = concat(bit_slice.27674, bit_slice.27697, or.27239, id=27702, pos=[(2,3120,20), (3,162,51)]) bit_slice.27676: bits[1] = bit_slice(add.27647, start=9, width=1, id=27676, pos=[(2,3130,12), (3,162,51)]) neg.27247: bits[12] = neg(concat.27702, id=27247, pos=[(2,3130,46), (3,162,51)]) xbs_fraction: bits[12] = sel(bit_slice.27676, cases=[concat.27702, neg.27247], id=27248, pos=[(2,3130,9), (3,162,51)]) bit_slice.27261: bits[1] = bit_slice(xbs_fraction, start=4, width=1, id=27261, pos=[(0,1591,70), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27253: bits[1] = bit_slice(xbs_fraction, start=6, width=1, id=27253, pos=[(0,1591,70), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27252: bits[1] = bit_slice(xbs_fraction, start=8, width=1, id=27252, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27249: bits[1] = bit_slice(xbs_fraction, start=10, width=1, id=27249, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=11, width=1, id=27250, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27257: bits[1] = bit_slice(xbs_fraction, start=9, width=1, id=27257, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27259: bits[1] = bit_slice(xbs_fraction, start=7, width=1, id=27259, pos=[(0,1591,40), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27272: bits[1] = bit_slice(xbs_fraction, start=5, width=1, id=27272, pos=[(0,1591,40), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) not.27273: bits[1] = not(bit_slice.27261, id=27273, 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,162,51)]) not.27260: bits[1] = not(bit_slice.27253, id=27260, 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,162,51)]) not.27258: bits[1] = not(bit_slice.27252, id=27258, 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,162,51)]) not.27251: bits[1] = not(bit_slice.27249, id=27251, 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,162,51)]) bit_slice.27285: bits[1] = bit_slice(xbs_fraction, start=3, width=1, id=27285, pos=[(0,1591,40), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27274: bits[1] = bit_slice(xbs_fraction, start=2, width=1, id=27274, pos=[(0,1591,70), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27297: bits[1] = bit_slice(xbs_fraction, start=1, width=1, id=27297, pos=[(0,1591,40), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) bit_slice.27287: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=27287, pos=[(0,1591,70), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27255: bits[1] = nor(carry_bit, bit_slice.27249, id=27255, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27267: bits[1] = nor(bit_slice.27257, bit_slice.27252, id=27267, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) or.27503: bits[1] = or(bit_slice.27259, bit_slice.27253, id=27503, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27283: bits[1] = nor(bit_slice.27272, bit_slice.27261, id=27283, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27282: bits[1] = nor(bit_slice.27272, not.27273, id=27282, pos=[(0,1591,22), (0,1596,64), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27269: bits[1] = nor(bit_slice.27259, not.27260, id=27269, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) or.27504: bits[1] = or(carry_bit, bit_slice.27249, id=27504, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27266: bits[1] = nor(bit_slice.27257, not.27258, id=27266, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27254: bits[1] = nor(carry_bit, not.27251, id=27254, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) or.27502: bits[1] = or(bit_slice.27285, bit_slice.27274, id=27502, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27307: bits[1] = nor(bit_slice.27297, bit_slice.27287, id=27307, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27295: bits[1] = nor(bit_slice.27285, bit_slice.27274, id=27295, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) not.27298: bits[1] = not(bit_slice.27287, id=27298, 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,162,51)]) not.27754: bits[1] = not(bit_slice.27274, id=27754, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) and.27310: bits[1] = and(nor.27255, nor.27267, id=27310, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27270: bits[1] = nor(bit_slice.27259, bit_slice.27253, id=27270, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27322: bits[1] = nor(or.27503, nor.27283, id=27322, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27499: bits[2] = concat(literal.27198, nor.27282, id=27499, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27764: bits[2] = concat(literal.27186, nor.27269, id=27764, pos=[(0,1591,22), (0,1596,34), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27309: bits[1] = nor(or.27504, nor.27267, id=27309, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27633: bits[2] = concat(literal.27198, nor.27266, id=27633, pos=[(0,1541,24), (0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27765: bits[2] = concat(literal.27186, nor.27254, id=27765, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27336: bits[1] = nor(or.27502, nor.27307, id=27336, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) and.27337: bits[1] = and(nor.27295, nor.27307, id=27337, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27306: bits[1] = nor(bit_slice.27297, not.27298, id=27306, pos=[(0,1591,22), (0,1596,64), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27755: bits[1] = nor(bit_slice.27285, not.27754, id=27755, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) not.27339: bits[1] = not(and.27310, id=27339, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) and.27323: bits[1] = and(nor.27270, nor.27283, id=27323, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) priority_sel.27492: bits[2] = priority_sel(nor.27322, cases=[concat.27499], default=concat.27764, id=27492, pos=[(0,1596,22), (0,1601,64), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) priority_sel.27553: bits[2] = priority_sel(nor.27309, cases=[concat.27633], default=concat.27765, id=27553, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27341: bits[2] = concat(nor.27336, and.27337, id=27341, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27639: bits[2] = concat(literal.27198, nor.27306, id=27639, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27582: bits[2] = concat(nor.27295, nor.27755, id=27582, pos=[(0,1591,22), (0,1596,34), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) nor.27345: bits[1] = nor(not.27339, and.27323, id=27345, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27636: bits[3] = concat(literal.27198, priority_sel.27492, id=27636, pos=[(0,1541,24), (0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27643: bits[3] = concat(literal.27186, priority_sel.27553, id=27643, pos=[(0,1596,22), (0,1601,34), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) priority_sel.27586: bits[2] = priority_sel(concat.27341, cases=[literal.27461, concat.27639], default=concat.27582, id=27586, pos=[(0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) priority_sel.27559: bits[3] = priority_sel(nor.27345, cases=[concat.27636], default=concat.27643, id=27559, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) and.27346: bits[1] = and(and.27310, and.27323, id=27346, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27641: bits[4] = concat(literal.27198, and.27337, priority_sel.27586, id=27641, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27644: bits[4] = concat(literal.27186, priority_sel.27559, id=27644, pos=[(0,1601,22), (0,1606,34), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) concat.27359: bits[13] = concat(literal.27186, xbs_fraction, id=27359, pos=[(3,162,51)]) leading_zeroes: bits[4] = priority_sel(and.27346, cases=[concat.27641], default=concat.27644, id=27360, pos=[(0,1606,22), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) cancel_fraction: bits[13] = shll(concat.27359, leading_zeroes, id=27361, pos=[(2,3144,26), (3,162,51)]) bit_slice.27362: bits[10] = bit_slice(xbs_fraction, start=2, width=10, id=27362, pos=[(2,3053,20), (2,3137,36), (3,162,51)]) or.27363: bits[1] = or(bit_slice.27297, bit_slice.27287, id=27363, pos=[(2,3053,40), (2,3137,36), (3,162,51)]) cancel_fraction__1: bits[11] = bit_slice(cancel_fraction, start=1, width=11, id=27364, pos=[(3,162,51)]) carry_fraction__1: bits[11] = concat(bit_slice.27362, or.27363, id=27365, pos=[(2,3053,20), (2,3137,36), (3,162,51)]) shifted_fraction: bits[11] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=27366, pos=[(2,3146,27), (3,162,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=27367, pos=[(2,3158,39), (3,162,51)]) fraction_shift__3: bits[3] = literal(value=4, id=27471, pos=[(0,1540,24), (0,1596,22), (0,1601,34), (0,1606,64), (0,1645,30), (0,1708,13), (2,3141,34), (3,162,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=27368, pos=[(2,3159,41), (3,162,51)]) literal.27369: bits[2] = literal(value=3, id=27369, pos=[(2,3160,68), (3,162,51)]) ugt.27370: bits[1] = ugt(normal_chunk, fraction_shift__3, id=27370, pos=[(2,3160,23), (3,162,51)]) eq.27371: bits[1] = eq(half_way_chunk, literal.27369, id=27371, pos=[(2,3160,50), (3,162,51)]) bit_slice.27686: bits[8] = bit_slice(shifted_fraction, start=3, width=8, id=27686) do_round_up: bits[1] = or(ugt.27370, eq.27371, id=27374, pos=[(2,3160,23), (3,162,51)]) concat.27687: bits[9] = concat(literal.27186, bit_slice.27686, id=27687) concat.27766: bits[9] = concat(literal.27197, do_round_up, id=27766) add.27655: bits[9] = add(concat.27687, concat.27766, id=27655) literal.27377: bits[4] = literal(value=0, id=27377, pos=[(3,162,51)]) rounding_carry: bits[1] = bit_slice(add.27655, start=8, width=1, id=27678, pos=[(2,3168,41), (3,162,51)]) literal.27738: bits[10] = literal(value=0, id=27738, pos=[(2,3121,39), (3,162,51)]) bit_slice.27762: bits[1] = bit_slice(shrl.27228, start=1, width=1, id=27762, pos=[(2,3121,27), (3,162,51)]) bit_slice.27763: bits[1] = bit_slice(shrl.27228, start=2, width=1, id=27763, pos=[(2,3121,27), (3,162,51)]) concat.27379: bits[9] = concat(literal.27186, x_bexp, id=27379, pos=[(3,162,51)]) literal.27380: bits[9] = literal(value=1, id=27380, pos=[(2,3180,24), (3,162,51)]) concat.27698: bits[5] = concat(literal.27377, rounding_carry, id=27698, pos=[(3,162,51)]) concat.27382: bits[5] = concat(literal.27186, leading_zeroes, id=27382, pos=[(3,162,51)]) eq.27714: bits[1] = eq(add.27647, literal.27738, id=27714, pos=[(2,3121,27), (3,162,51)]) nor.27751: bits[1] = nor(bit_slice.27762, bit_slice.27763, id=27751, pos=[(2,3121,27), (3,162,51)]) nor.27752: bits[1] = nor(bit_slice.27233, sticky, id=27752, pos=[(2,3121,27), (3,162,51)]) add.27383: bits[9] = add(concat.27379, literal.27380, id=27383, pos=[(2,3179,26), (3,162,51)]) sub.27384: bits[5] = sub(concat.27698, concat.27382, id=27384, pos=[(2,3179,26), (3,162,51)]) fraction_is_zero: bits[1] = and(eq.27714, nor.27751, nor.27752, id=27750, pos=[(2,3121,27), (3,162,51)]) wide_exponent_associative_element: bits[10] = concat(literal.27186, add.27383, id=27386, pos=[(2,3179,26), (3,162,51)]) wide_exponent_associative_element__1: bits[10] = sign_ext(sub.27384, new_bit_count=10, id=27387, pos=[(2,3179,26), (3,162,51)]) not.27565: bits[1] = not(fraction_is_zero, id=27565, pos=[(2,3181,24), (3,162,51)]) wide_exponent: bits[10] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=27389, pos=[(2,3179,26), (3,162,51)]) sign_ext.27566: bits[10] = sign_ext(not.27565, new_bit_count=10, id=27566, pos=[(2,3181,24), (3,162,51)]) wide_exponent__1: bits[10] = and(wide_exponent, sign_ext.27566, id=27567, pos=[(2,3181,24), (3,162,51)]) bit_slice.27397: bits[1] = bit_slice(wide_exponent__1, start=9, width=1, id=27397, pos=[(2,3184,27), (3,162,51)]) not.27568: bits[1] = not(bit_slice.27397, id=27568, pos=[(2,3184,24), (3,162,51)]) bit_slice.27398: bits[9] = bit_slice(wide_exponent__1, start=0, width=9, id=27398, pos=[(3,162,51)]) sign_ext.27569: bits[9] = sign_ext(not.27568, new_bit_count=9, id=27569, pos=[(2,3184,24), (3,162,51)]) MAX_EXPONENT: bits[8] = literal(value=255, id=27391, pos=[(2,96,29), (2,3209,29), (3,162,51)]) wide_exponent__2: bits[9] = and(bit_slice.27398, sign_ext.27569, id=27570, pos=[(2,3184,24), (3,162,51)]) eq.27393: bits[1] = eq(x_bexp, MAX_EXPONENT, id=27393, pos=[(2,96,6), (2,3209,29), (3,162,51)]) eq.27394: bits[1] = eq(x_fraction, literal.27207, id=27394, pos=[(2,96,44), (2,3209,29), (3,162,51)]) eq.27395: bits[1] = eq(y_bexp, MAX_EXPONENT, id=27395, pos=[(2,96,6), (2,3210,29), (3,162,51)]) eq.27396: bits[1] = eq(y_fraction, literal.27207, id=27396, pos=[(2,96,44), (2,3210,29), (3,162,51)]) bit_slice.27410: bits[8] = bit_slice(wide_exponent__2, start=1, width=8, id=27410, pos=[(2,3194,11), (3,162,51)]) not.27400: bits[1] = not(eq.27393, id=27400, pos=[(2,3209,29), (3,162,51)]) not.27401: bits[1] = not(eq.27394, id=27401, pos=[(2,3209,29), (3,162,51)]) not.27402: bits[1] = not(eq.27395, id=27402, pos=[(2,3210,29), (3,162,51)]) not.27403: bits[1] = not(eq.27396, id=27403, pos=[(2,3210,29), (3,162,51)]) and.27417: bits[1] = and(eq.27393, eq.27394, id=27417, pos=[(2,96,6), (2,3209,29), (3,162,51)]) and.27418: bits[1] = and(eq.27395, eq.27396, id=27418, pos=[(2,96,6), (2,3210,29), (3,162,51)]) bit_slice.27419: bits[8] = bit_slice(wide_exponent__2, start=0, width=8, id=27419, pos=[(2,3202,11), (3,162,51)]) or_reduce.27420: bits[1] = or_reduce(bit_slice.27410, id=27420, pos=[(2,3194,11), (3,162,51)]) bit_slice.27421: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=27421, pos=[(2,3194,11), (3,162,51)]) nor.27405: bits[1] = nor(not.27400, not.27401, x_sign, id=27405, pos=[(2,3209,29), (3,162,51)]) nor.27406: bits[1] = nor(not.27402, not.27403, y_sign, id=27406, pos=[(2,3210,29), (3,162,51)]) and.27407: bits[1] = and(eq.27393, eq.27394, x_sign, id=27407, pos=[(2,3215,29), (3,162,51)]) and.27408: bits[1] = and(eq.27395, eq.27396, y_sign, id=27408, pos=[(2,3216,29), (3,162,51)]) fraction_shift__2: bits[3] = literal(value=3, id=27411, pos=[(2,3174,8), (3,162,51)]) is_operand_inf: bits[1] = or(and.27417, and.27418, id=27429, pos=[(2,3205,31), (3,162,51)]) bit_slice.27430: bits[1] = bit_slice(wide_exponent__2, start=8, width=1, id=27430, pos=[(2,3202,11), (3,162,51)]) and_reduce.27431: bits[1] = and_reduce(bit_slice.27419, id=27431, pos=[(2,3202,11), (3,162,51)]) nor.27432: bits[1] = nor(or_reduce.27420, bit_slice.27421, id=27432, pos=[(2,3194,11), (3,162,51)]) has_pos_inf: bits[1] = or(nor.27405, nor.27406, id=27414, pos=[(2,3209,29), (3,162,51)]) has_neg_inf: bits[1] = or(and.27407, and.27408, id=27415, pos=[(2,3215,29), (3,162,51)]) rounded_fraction: bits[12] = concat(add.27655, normal_chunk, id=27701) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=27422, pos=[(2,3174,8), (3,162,51)]) or.27437: bits[1] = or(is_operand_inf, bit_slice.27430, and_reduce.27431, nor.27432, id=27437, pos=[(2,3207,26), (3,162,51)]) nor.27464: bits[1] = nor(not.27400, eq.27394, id=27464, pos=[(2,71,6), (2,3217,30), (3,162,51)]) nor.27466: bits[1] = nor(not.27402, eq.27396, id=27466, pos=[(2,71,6), (2,3217,64), (3,162,51)]) and.27425: bits[1] = and(has_pos_inf, has_neg_inf, id=27425, pos=[(2,3218,25), (3,162,51)]) concat.27699: bits[2] = concat(bit_slice.27676, fraction_is_zero, id=27699, pos=[(3,162,51)]) and.27427: bits[1] = and(x_sign, y_sign, id=27427, pos=[(2,3123,22), (3,162,51)]) not.27428: bits[1] = not(y_sign, id=27428, pos=[(2,3210,59), (3,162,51)]) shrl.27433: bits[12] = shrl(rounded_fraction, fraction_shift__1, id=27433, pos=[(2,3175,27), (3,162,51)]) not.27571: bits[1] = not(or.27437, id=27571, pos=[(2,3207,26), (3,162,51)]) is_result_nan: bits[1] = or(nor.27464, nor.27466, and.27425, id=27434, pos=[(2,3217,30), (3,162,51)]) result_sign: bits[1] = priority_sel(concat.27699, cases=[and.27427, not.27428], default=y_sign, id=27435, pos=[(3,162,51)]) not.27436: bits[1] = not(has_pos_inf, id=27436, pos=[(2,3211,42), (3,162,51)]) result_fraction: bits[7] = bit_slice(shrl.27433, start=0, width=7, id=27438, pos=[(3,162,51)]) sign_ext.27572: bits[7] = sign_ext(not.27571, new_bit_count=7, id=27572, pos=[(2,3207,26), (3,162,51)]) not.27439: bits[1] = not(is_result_nan, id=27439, pos=[(2,3222,22), (3,162,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.27436], id=27440, pos=[(2,3211,22), (3,162,51)]) or.27441: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.27430, and_reduce.27431, id=27441, pos=[(2,3220,26), (3,162,51)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.27572, id=27573, pos=[(2,3207,26), (3,162,51)]) FRACTION_HIGH_BIT: bits[7] = literal(value=64, id=27443, pos=[(2,3219,30), (3,162,51)]) result_sign__2: bits[1] = and(not.27439, result_sign__1, id=27444, pos=[(2,3222,22), (3,162,51)]) result_exponent__2: bits[8] = sel(or.27441, cases=[bit_slice.27419, MAX_EXPONENT], id=27445, pos=[(2,3220,26), (3,162,51)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=27446, pos=[(2,3221,26), (3,162,51)]) ret tuple.27447: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=27447, pos=[(2,3225,33), (3,162,51)]) }