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=843, y: (bits[1], bits[8], bits[7]) id=844) -> (bits[1], bits[8], bits[7]) { y_bexp__1: bits[8] = tuple_index(y, index=1, id=29569, pos=[(2,3087,67), (3,162,51)]) literal.29570: bits[1] = literal(value=0, id=29570, pos=[(3,162,51)]) x_bexp__1: bits[8] = tuple_index(x, index=1, id=29571, pos=[(2,3087,59), (3,162,51)]) y_bexpnot: bits[8] = not(y_bexp__1, id=29572, pos=[(1,90,15), (2,3005,44), (2,3087,57), (3,162,51)]) x_bexp_extended__1: bits[9] = concat(literal.29570, x_bexp__1, id=29573, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,162,51)]) y_bexpnot_extended: bits[9] = concat(literal.29570, y_bexpnot, id=29574, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,162,51)]) full_result: bits[9] = add(x_bexp_extended__1, y_bexpnot_extended, id=29575, pos=[(0,1119,45), (1,91,63), (2,3005,44), (2,3087,57), (3,162,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=8, width=1, id=29576, pos=[(0,1121,49), (1,91,63), (2,3005,44), (2,3087,57), (3,162,51)]) tuple_index.29578: bits[7] = tuple_index(y, index=2, id=29578, pos=[(2,3088,17), (3,162,51)]) tuple_index.29579: bits[7] = tuple_index(x, index=2, id=29579, pos=[(2,3088,17), (3,162,51)]) x_bexp: bits[8] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=29834, pos=[(2,3088,17), (3,162,51)]) literal.29581: bits[8] = literal(value=0, id=29581, pos=[(2,3095,34), (3,162,51)]) y_bexp: bits[8] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=29832, pos=[(2,3088,17), (3,162,51)]) literal.29582: bits[1] = literal(value=1, id=29582, pos=[(2,3091,22), (3,162,51)]) x_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.29578, tuple_index.29579], id=29835, pos=[(2,3088,17), (3,162,51)]) ne.30043: bits[1] = ne(x_bexp, literal.29581, id=30043, pos=[(2,3095,21), (3,162,51)]) y_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.29579, tuple_index.29578], id=29833, pos=[(2,3088,17), (3,162,51)]) ne.30042: bits[1] = ne(y_bexp, literal.29581, id=30042, pos=[(2,3096,21), (3,162,51)]) nc: bits[1] = not(overflow_detected, id=29577, pos=[(1,92,19), (2,3005,44), (2,3087,57), (3,162,51)]) fraction_x: bits[8] = concat(literal.29582, x_fraction, id=29602, pos=[(2,3091,22), (3,162,51)]) sign_ext.29920: bits[8] = sign_ext(ne.30043, new_bit_count=8, id=29920, pos=[(2,3095,21), (3,162,51)]) fraction_y: bits[8] = concat(literal.29582, y_fraction, id=29585, pos=[(2,3092,22), (3,162,51)]) sign_ext.29923: bits[8] = sign_ext(ne.30042, new_bit_count=8, id=29923, pos=[(2,3096,21), (3,162,51)]) narrowed_result: bits[8] = bit_slice(full_result, start=0, width=8, id=29589, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,162,51)]) x_bexpor_mask: bits[8] = sign_ext(nc, new_bit_count=8, id=29590, pos=[(1,94,32), (2,3005,44), (2,3087,57), (3,162,51)]) literal.29591: bits[7] = literal(value=0, id=29591, pos=[(2,3190,44), (3,162,51)]) fraction_x__1: bits[8] = and(fraction_x, sign_ext.29920, id=29921, pos=[(2,3095,21), (3,162,51)]) fraction_y__1: bits[8] = and(fraction_y, sign_ext.29923, id=29924, pos=[(2,3096,21), (3,162,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=29929, pos=[(2,3106,19), (3,162,51)]) result: bits[8] = xor(narrowed_result, x_bexpor_mask, id=29593, pos=[(1,95,18), (2,3005,44), (2,3087,57), (3,162,51)]) concat.29594: bits[8] = concat(literal.29591, overflow_detected, id=29594, pos=[(2,3006,68), (2,3087,57), (3,162,51)]) tuple_index.29612: bits[1] = tuple_index(x, index=0, id=29612, pos=[(2,3088,17), (3,162,51)]) tuple_index.29613: bits[1] = tuple_index(y, index=0, id=29613, pos=[(2,3088,17), (3,162,51)]) wide_x_squeezed: bits[9] = concat(literal.29570, fraction_x__1, id=30014, pos=[(2,3099,17), (3,162,51)]) wide_y_shift_bits: bits[11] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=29606, pos=[(2,3112,31), (3,162,51)]) shift: bits[8] = add(result, concat.29594, id=29600, pos=[(1,54,7), (2,3006,68), (2,3087,57), (3,162,51)]) literal.29599: bits[12] = literal(value=4095, id=29599, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) xor.29617: bits[1] = xor(tuple_index.29612, tuple_index.29613, id=29617, pos=[(2,3106,23), (3,162,51)]) neg.29614: bits[9] = neg(wide_x_squeezed, id=29614, pos=[(2,3106,41), (3,162,51)]) shrl.29610: bits[11] = shrl(wide_y_shift_bits, shift, id=29610, pos=[(2,3112,31), (3,162,51)]) not.30088: bits[7] = not(y_fraction, id=30088, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) shll.29604: bits[12] = shll(literal.29599, shift, id=29604, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) xddend_x__1_squeezed: bits[9] = sel(xor.29617, cases=[wide_x_squeezed, neg.29614], id=29927, pos=[(2,3106,19), (3,162,51)]) literal.29845: bits[2] = literal(value=0, id=29845, pos=[(3,162,51)]) bit_slice.30080: bits[8] = bit_slice(shrl.29610, start=3, width=8, id=30080, pos=[(2,3116,20), (3,162,51)]) concat.30091: bits[8] = concat(literal.29570, not.30088, id=30091, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) not.30046: bits[8] = not(sign_ext.29923, id=30046, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) bit_slice.29608: bits[8] = bit_slice(shll.29604, start=3, width=8, id=29608, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) sign_ext.30065: bits[10] = sign_ext(xddend_x__1_squeezed, new_bit_count=10, id=30065, pos=[(2,3116,20), (3,162,51)]) concat.30067: bits[10] = concat(literal.29845, bit_slice.30080, id=30067, pos=[(2,3116,20), (3,162,51)]) nor.30047: bits[8] = nor(concat.30091, not.30046, bit_slice.29608, id=30047, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) add.30031: bits[10] = add(sign_ext.30065, concat.30067, id=30031, pos=[(2,3116,20), (3,162,51)]) bit_slice.29615: bits[1] = bit_slice(shrl.29610, start=0, width=1, id=29615, pos=[(2,3049,40), (2,3112,30), (3,162,51)]) sticky: bits[1] = ne(nor.30047, literal.29581, id=29616, pos=[(0,1501,17), (0,1528,22), (2,3111,35), (3,162,51)]) bit_slice.30058: bits[9] = bit_slice(add.30031, start=0, width=9, id=30058, pos=[(2,3126,9), (3,162,51)]) bit_slice.30081: bits[2] = bit_slice(shrl.29610, start=1, width=2, id=30081, pos=[(2,3116,20), (3,162,51)]) or.29621: bits[1] = or(bit_slice.29615, sticky, id=29621, pos=[(2,3049,40), (2,3112,30), (3,162,51)]) concat.30086: bits[12] = concat(bit_slice.30058, bit_slice.30081, or.29621, id=30086, pos=[(2,3126,9), (3,162,51)]) bit_slice.30060: bits[1] = bit_slice(add.30031, start=9, width=1, id=30060, pos=[(2,3118,47), (3,162,51)]) neg.29629: bits[12] = neg(concat.30086, id=29629, pos=[(2,3126,46), (3,162,51)]) xbs_fraction: bits[12] = sel(bit_slice.30060, cases=[concat.30086, neg.29629], id=29630, pos=[(2,3126,9), (3,162,51)]) bit_slice.29643: bits[1] = bit_slice(xbs_fraction, start=4, width=1, id=29643, pos=[(0,1590,70), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29635: bits[1] = bit_slice(xbs_fraction, start=6, width=1, id=29635, pos=[(0,1590,70), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29634: bits[1] = bit_slice(xbs_fraction, start=8, width=1, id=29634, pos=[(0,1590,70), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29631: bits[1] = bit_slice(xbs_fraction, start=10, width=1, id=29631, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=11, width=1, id=29632, pos=[(2,3131,32), (3,162,51)]) bit_slice.29639: bits[1] = bit_slice(xbs_fraction, start=9, width=1, id=29639, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29641: bits[1] = bit_slice(xbs_fraction, start=7, width=1, id=29641, pos=[(0,1590,40), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29654: bits[1] = bit_slice(xbs_fraction, start=5, width=1, id=29654, pos=[(0,1590,40), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29655: bits[1] = not(bit_slice.29643, id=29655, pos=[(0,1583,4), (0,1590,64), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29642: bits[1] = not(bit_slice.29635, id=29642, pos=[(0,1583,4), (0,1590,64), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29640: bits[1] = not(bit_slice.29634, id=29640, pos=[(0,1583,4), (0,1590,64), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29633: bits[1] = not(bit_slice.29631, id=29633, pos=[(0,1583,4), (0,1590,64), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29667: bits[1] = bit_slice(xbs_fraction, start=3, width=1, id=29667, pos=[(0,1590,40), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29656: bits[1] = bit_slice(xbs_fraction, start=2, width=1, id=29656, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29679: bits[1] = bit_slice(xbs_fraction, start=1, width=1, id=29679, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) bit_slice.29669: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=29669, pos=[(2,3133,65), (3,162,51)]) nor.29637: bits[1] = nor(carry_bit, bit_slice.29631, id=29637, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29649: bits[1] = nor(bit_slice.29639, bit_slice.29634, id=29649, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) or.29887: bits[1] = or(bit_slice.29641, bit_slice.29635, id=29887, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29665: bits[1] = nor(bit_slice.29654, bit_slice.29643, id=29665, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29664: bits[1] = nor(bit_slice.29654, not.29655, id=29664, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29651: bits[1] = nor(bit_slice.29641, not.29642, id=29651, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) or.29888: bits[1] = or(carry_bit, bit_slice.29631, id=29888, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29648: bits[1] = nor(bit_slice.29639, not.29640, id=29648, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29636: bits[1] = nor(carry_bit, not.29633, id=29636, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) or.29886: bits[1] = or(bit_slice.29667, bit_slice.29656, id=29886, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29689: bits[1] = nor(bit_slice.29679, bit_slice.29669, id=29689, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29677: bits[1] = nor(bit_slice.29667, bit_slice.29656, id=29677, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29680: bits[1] = not(bit_slice.29669, id=29680, pos=[(0,1583,4), (0,1590,64), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.30138: bits[1] = not(bit_slice.29656, id=30138, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) and.29692: bits[1] = and(nor.29637, nor.29649, id=29692, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29652: bits[1] = nor(bit_slice.29641, bit_slice.29635, id=29652, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29704: bits[1] = nor(or.29887, nor.29665, id=29704, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.29883: bits[2] = concat(literal.29582, nor.29664, id=29883, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30148: bits[2] = concat(literal.29570, nor.29651, id=30148, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29691: bits[1] = nor(or.29888, nor.29649, id=29691, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30017: bits[2] = concat(literal.29582, nor.29648, id=30017, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30149: bits[2] = concat(literal.29570, nor.29636, id=30149, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29718: bits[1] = nor(or.29886, nor.29689, id=29718, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) and.29719: bits[1] = and(nor.29677, nor.29689, id=29719, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29688: bits[1] = nor(bit_slice.29679, not.29680, id=29688, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.30139: bits[1] = nor(bit_slice.29667, not.30138, id=30139, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) not.29721: bits[1] = not(and.29692, id=29721, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) and.29705: bits[1] = and(nor.29652, nor.29665, id=29705, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) priority_sel.29876: bits[2] = priority_sel(nor.29704, cases=[concat.29883], default=concat.30148, id=29876, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) priority_sel.29937: bits[2] = priority_sel(nor.29691, cases=[concat.30017], default=concat.30149, id=29937, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.29723: bits[2] = concat(nor.29718, and.29719, id=29723, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30023: bits[2] = concat(literal.29582, nor.29688, id=30023, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.29966: bits[2] = concat(nor.29677, nor.30139, id=29966, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) nor.29727: bits[1] = nor(not.29721, and.29705, id=29727, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30020: bits[3] = concat(literal.29582, priority_sel.29876, id=30020, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30027: bits[3] = concat(literal.29570, priority_sel.29937, id=30027, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) priority_sel.29970: bits[2] = priority_sel(concat.29723, cases=[literal.29845, concat.30023], default=concat.29966, id=29970, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) priority_sel.29943: bits[3] = priority_sel(nor.29727, cases=[concat.30020], default=concat.30027, id=29943, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) and.29728: bits[1] = and(and.29692, and.29705, id=29728, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30025: bits[4] = concat(literal.29582, and.29719, priority_sel.29970, id=30025, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.30028: bits[4] = concat(literal.29570, priority_sel.29943, id=30028, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) concat.29741: bits[13] = concat(literal.29570, xbs_fraction, id=29741, pos=[(3,162,51)]) leading_zeroes: bits[4] = priority_sel(and.29728, cases=[concat.30025], default=concat.30028, id=29742, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (3,162,51)]) cancel_fraction: bits[13] = shll(concat.29741, leading_zeroes, id=29743, pos=[(2,3140,26), (3,162,51)]) bit_slice.29744: bits[10] = bit_slice(xbs_fraction, start=2, width=10, id=29744, pos=[(2,3049,20), (2,3133,36), (3,162,51)]) or.29745: bits[1] = or(bit_slice.29679, bit_slice.29669, id=29745, pos=[(2,3049,40), (2,3133,36), (3,162,51)]) cancel_fraction__1: bits[11] = bit_slice(cancel_fraction, start=1, width=11, id=29746, pos=[(3,162,51)]) carry_fraction__1: bits[11] = concat(bit_slice.29744, or.29745, id=29747, pos=[(2,3049,20), (2,3133,36), (3,162,51)]) shifted_fraction: bits[11] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=29748, pos=[(2,3142,27), (3,162,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=29749, pos=[(2,3154,39), (3,162,51)]) fraction_shift__3: bits[3] = literal(value=4, id=29736, pos=[(2,3170,8), (3,162,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=29750, pos=[(2,3155,41), (3,162,51)]) literal.29751: bits[2] = literal(value=3, id=29751, pos=[(2,3156,68), (3,162,51)]) ugt.29752: bits[1] = ugt(normal_chunk, fraction_shift__3, id=29752, pos=[(2,3156,23), (3,162,51)]) eq.29753: bits[1] = eq(half_way_chunk, literal.29751, id=29753, pos=[(2,3156,50), (3,162,51)]) bit_slice.30070: bits[8] = bit_slice(shifted_fraction, start=3, width=8, id=30070) do_round_up: bits[1] = or(ugt.29752, eq.29753, id=29756, pos=[(2,3156,23), (3,162,51)]) concat.30071: bits[9] = concat(literal.29570, bit_slice.30070, id=30071) concat.30150: bits[9] = concat(literal.29581, do_round_up, id=30150) add.30039: bits[9] = add(concat.30071, concat.30150, id=30039) literal.29759: bits[4] = literal(value=0, id=29759, pos=[(3,162,51)]) rounding_carry: bits[1] = bit_slice(add.30039, start=8, width=1, id=30062, pos=[(2,3164,41), (3,162,51)]) literal.30122: bits[10] = literal(value=0, id=30122, pos=[(2,3117,39), (3,162,51)]) bit_slice.30146: bits[1] = bit_slice(shrl.29610, start=1, width=1, id=30146, pos=[(2,3117,27), (3,162,51)]) bit_slice.30147: bits[1] = bit_slice(shrl.29610, start=2, width=1, id=30147, pos=[(2,3117,27), (3,162,51)]) concat.29761: bits[9] = concat(literal.29570, x_bexp, id=29761, pos=[(3,162,51)]) literal.29762: bits[9] = literal(value=1, id=29762, pos=[(2,3176,24), (3,162,51)]) concat.30082: bits[5] = concat(literal.29759, rounding_carry, id=30082, pos=[(3,162,51)]) concat.29764: bits[5] = concat(literal.29570, leading_zeroes, id=29764, pos=[(3,162,51)]) eq.30098: bits[1] = eq(add.30031, literal.30122, id=30098, pos=[(2,3117,27), (3,162,51)]) nor.30135: bits[1] = nor(bit_slice.30146, bit_slice.30147, id=30135, pos=[(2,3117,27), (3,162,51)]) nor.30136: bits[1] = nor(bit_slice.29615, sticky, id=30136, pos=[(2,3117,27), (3,162,51)]) add.29765: bits[9] = add(concat.29761, literal.29762, id=29765, pos=[(2,3175,26), (3,162,51)]) sub.29766: bits[5] = sub(concat.30082, concat.29764, id=29766, pos=[(2,3175,26), (3,162,51)]) fraction_is_zero: bits[1] = and(eq.30098, nor.30135, nor.30136, id=30134, pos=[(2,3117,27), (3,162,51)]) wide_exponent_associative_element: bits[10] = concat(literal.29570, add.29765, id=29768, pos=[(2,3175,26), (3,162,51)]) wide_exponent_associative_element__1: bits[10] = sign_ext(sub.29766, new_bit_count=10, id=29769, pos=[(2,3175,26), (3,162,51)]) not.29949: bits[1] = not(fraction_is_zero, id=29949, pos=[(2,3177,24), (3,162,51)]) wide_exponent: bits[10] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=29771, pos=[(2,3175,26), (3,162,51)]) sign_ext.29950: bits[10] = sign_ext(not.29949, new_bit_count=10, id=29950, pos=[(2,3177,24), (3,162,51)]) wide_exponent__1: bits[10] = and(wide_exponent, sign_ext.29950, id=29951, pos=[(2,3177,24), (3,162,51)]) bit_slice.29779: bits[1] = bit_slice(wide_exponent__1, start=9, width=1, id=29779, pos=[(2,3180,27), (3,162,51)]) not.29952: bits[1] = not(bit_slice.29779, id=29952, pos=[(2,3180,24), (3,162,51)]) bit_slice.29780: bits[9] = bit_slice(wide_exponent__1, start=0, width=9, id=29780, pos=[(3,162,51)]) sign_ext.29953: bits[9] = sign_ext(not.29952, new_bit_count=9, id=29953, pos=[(2,3180,24), (3,162,51)]) MAX_EXPONENT: bits[8] = literal(value=255, id=29773, pos=[(2,3193,39), (3,162,51)]) wide_exponent__2: bits[9] = and(bit_slice.29780, sign_ext.29953, id=29954, pos=[(2,3180,24), (3,162,51)]) eq.29775: bits[1] = eq(x_bexp, MAX_EXPONENT, id=29775, pos=[(2,71,6), (2,3213,30), (3,162,51)]) eq.29776: bits[1] = eq(x_fraction, literal.29591, id=29776, pos=[(2,96,44), (2,3201,31), (3,162,51)]) eq.29777: bits[1] = eq(y_bexp, MAX_EXPONENT, id=29777, pos=[(2,71,6), (2,3213,64), (3,162,51)]) eq.29778: bits[1] = eq(y_fraction, literal.29591, id=29778, pos=[(2,96,44), (2,3201,65), (3,162,51)]) bit_slice.29794: bits[8] = bit_slice(wide_exponent__2, start=1, width=8, id=29794, pos=[(2,3190,11), (3,162,51)]) not.29782: bits[1] = not(eq.29775, id=29782, pos=[(2,3205,29), (3,162,51)]) not.29783: bits[1] = not(eq.29776, id=29783, pos=[(2,3205,29), (3,162,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29613, tuple_index.29612], id=29838, pos=[(2,3088,17), (3,162,51)]) not.29785: bits[1] = not(eq.29777, id=29785, pos=[(2,3206,29), (3,162,51)]) not.29786: bits[1] = not(eq.29778, id=29786, pos=[(2,3206,29), (3,162,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29612, tuple_index.29613], id=29839, pos=[(2,3088,17), (3,162,51)]) and.29801: bits[1] = and(eq.29775, eq.29776, id=29801, pos=[(2,96,6), (2,3201,31), (3,162,51)]) and.29802: bits[1] = and(eq.29777, eq.29778, id=29802, pos=[(2,96,6), (2,3201,65), (3,162,51)]) bit_slice.29803: bits[8] = bit_slice(wide_exponent__2, start=0, width=8, id=29803, pos=[(3,162,51)]) or_reduce.29804: bits[1] = or_reduce(bit_slice.29794, id=29804, pos=[(2,3190,11), (3,162,51)]) bit_slice.29805: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=29805, pos=[(2,3190,11), (3,162,51)]) nor.29789: bits[1] = nor(not.29782, not.29783, x_sign, id=29789, pos=[(2,3205,29), (3,162,51)]) nor.29790: bits[1] = nor(not.29785, not.29786, y_sign, id=29790, pos=[(2,3206,29), (3,162,51)]) and.29791: bits[1] = and(eq.29775, eq.29776, x_sign, id=29791, pos=[(2,3211,29), (3,162,51)]) and.29792: bits[1] = and(eq.29777, eq.29778, y_sign, id=29792, pos=[(2,3212,29), (3,162,51)]) fraction_shift__2: bits[3] = literal(value=3, id=29795, pos=[(2,3170,8), (3,162,51)]) is_operand_inf: bits[1] = or(and.29801, and.29802, id=29813, pos=[(2,3201,31), (3,162,51)]) bit_slice.29814: bits[1] = bit_slice(wide_exponent__2, start=8, width=1, id=29814, pos=[(2,3196,11), (3,162,51)]) and_reduce.29815: bits[1] = and_reduce(bit_slice.29803, id=29815, pos=[(2,3196,11), (3,162,51)]) nor.29816: bits[1] = nor(or_reduce.29804, bit_slice.29805, id=29816, pos=[(2,3190,11), (3,162,51)]) has_pos_inf: bits[1] = or(nor.29789, nor.29790, id=29798, pos=[(2,3205,29), (3,162,51)]) has_neg_inf: bits[1] = or(and.29791, and.29792, id=29799, pos=[(2,3211,29), (3,162,51)]) rounded_fraction: bits[12] = concat(add.30039, normal_chunk, id=30085) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=29806, pos=[(2,3170,8), (3,162,51)]) or.29821: bits[1] = or(is_operand_inf, bit_slice.29814, and_reduce.29815, nor.29816, id=29821, pos=[(2,3203,26), (3,162,51)]) nor.29848: bits[1] = nor(not.29782, eq.29776, id=29848, pos=[(2,71,6), (2,3213,30), (3,162,51)]) nor.29850: bits[1] = nor(not.29785, eq.29778, id=29850, pos=[(2,71,6), (2,3213,64), (3,162,51)]) and.29809: bits[1] = and(has_pos_inf, has_neg_inf, id=29809, pos=[(2,3214,25), (3,162,51)]) concat.30083: bits[2] = concat(bit_slice.30060, fraction_is_zero, id=30083, pos=[(3,162,51)]) and.29811: bits[1] = and(tuple_index.29612, tuple_index.29613, id=29811, pos=[(2,3119,22), (3,162,51)]) not.29812: bits[1] = not(y_sign, id=29812, pos=[(2,3120,25), (3,162,51)]) shrl.29817: bits[12] = shrl(rounded_fraction, fraction_shift__1, id=29817, pos=[(2,3171,27), (3,162,51)]) not.29955: bits[1] = not(or.29821, id=29955, pos=[(2,3203,26), (3,162,51)]) is_result_nan: bits[1] = or(nor.29848, nor.29850, and.29809, id=29818, pos=[(2,3213,30), (3,162,51)]) result_sign: bits[1] = priority_sel(concat.30083, cases=[and.29811, not.29812], default=y_sign, id=29819, pos=[(3,162,51)]) not.29820: bits[1] = not(has_pos_inf, id=29820, pos=[(2,3207,42), (3,162,51)]) result_fraction: bits[7] = bit_slice(shrl.29817, start=0, width=7, id=29822, pos=[(3,162,51)]) sign_ext.29956: bits[7] = sign_ext(not.29955, new_bit_count=7, id=29956, pos=[(2,3203,26), (3,162,51)]) not.29823: bits[1] = not(is_result_nan, id=29823, pos=[(2,3218,22), (3,162,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.29820], id=29824, pos=[(2,3207,22), (3,162,51)]) or.29825: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.29814, and_reduce.29815, id=29825, pos=[(2,3216,26), (3,162,51)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.29956, id=29957, pos=[(2,3203,26), (3,162,51)]) FRACTION_HIGH_BIT: bits[7] = literal(value=64, id=29827, pos=[(2,3215,30), (3,162,51)]) result_sign__2: bits[1] = and(not.29823, result_sign__1, id=29828, pos=[(2,3218,22), (3,162,51)]) result_exponent__2: bits[8] = sel(or.29825, cases=[bit_slice.29803, MAX_EXPONENT], id=29829, pos=[(2,3216,26), (3,162,51)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=29830, pos=[(2,3217,26), (3,162,51)]) ret tuple.29831: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=29831, pos=[(2,3221,33), (3,162,51)]) }