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=843, y: (bits[1], bits[5], bits[10]) id=844) -> (bits[1], bits[5], bits[10]) { y_bexp__1: bits[5] = tuple_index(y, index=1, id=29615, pos=[(2,3087,67), (3,116,51)]) literal.29616: bits[1] = literal(value=0, id=29616, pos=[(3,116,51)]) x_bexp__1: bits[5] = tuple_index(x, index=1, id=29617, pos=[(2,3087,59), (3,116,51)]) y_bexpnot: bits[5] = not(y_bexp__1, id=29618, pos=[(1,90,15), (2,3005,44), (2,3087,57), (3,116,51)]) x_bexp_extended__1: bits[6] = concat(literal.29616, x_bexp__1, id=29619, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,116,51)]) y_bexpnot_extended: bits[6] = concat(literal.29616, y_bexpnot, id=29620, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,116,51)]) full_result: bits[6] = add(x_bexp_extended__1, y_bexpnot_extended, id=29621, pos=[(0,1119,45), (1,91,63), (2,3005,44), (2,3087,57), (3,116,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=29622, pos=[(0,1121,49), (1,91,63), (2,3005,44), (2,3087,57), (3,116,51)]) tuple_index.29624: bits[10] = tuple_index(y, index=2, id=29624, pos=[(2,3088,17), (3,116,51)]) tuple_index.29625: bits[10] = tuple_index(x, index=2, id=29625, pos=[(2,3088,17), (3,116,51)]) x_bexp: bits[5] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=29898, pos=[(2,3088,17), (3,116,51)]) literal.29627: bits[5] = literal(value=0, id=29627, pos=[(2,3095,34), (3,116,51)]) y_bexp: bits[5] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=29896, pos=[(2,3088,17), (3,116,51)]) literal.29628: bits[1] = literal(value=1, id=29628, pos=[(2,3091,22), (3,116,51)]) x_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.29624, tuple_index.29625], id=29899, pos=[(2,3088,17), (3,116,51)]) ne.30144: bits[1] = ne(x_bexp, literal.29627, id=30144, pos=[(2,3095,21), (3,116,51)]) y_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.29625, tuple_index.29624], id=29897, pos=[(2,3088,17), (3,116,51)]) ne.30143: bits[1] = ne(y_bexp, literal.29627, id=30143, pos=[(2,3096,21), (3,116,51)]) nc: bits[1] = not(overflow_detected, id=29623, pos=[(1,92,19), (2,3005,44), (2,3087,57), (3,116,51)]) fraction_x: bits[11] = concat(literal.29628, x_fraction, id=29649, pos=[(2,3091,22), (3,116,51)]) sign_ext.30012: bits[11] = sign_ext(ne.30144, new_bit_count=11, id=30012, pos=[(2,3095,21), (3,116,51)]) fraction_y: bits[11] = concat(literal.29628, y_fraction, id=29631, pos=[(2,3092,22), (3,116,51)]) sign_ext.30015: bits[11] = sign_ext(ne.30143, new_bit_count=11, id=30015, pos=[(2,3096,21), (3,116,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=29636, pos=[(1,91,63), (2,3005,44), (2,3087,57), (3,116,51)]) x_bexpor_mask: bits[5] = sign_ext(nc, new_bit_count=5, id=29637, pos=[(1,94,32), (2,3005,44), (2,3087,57), (3,116,51)]) literal.29638: bits[4] = literal(value=0, id=29638, pos=[(3,116,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.30012, id=30013, pos=[(2,3095,21), (3,116,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.30015, id=30016, pos=[(2,3096,21), (3,116,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=30021, pos=[(2,3106,19), (3,116,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask, id=29640, pos=[(1,95,18), (2,3005,44), (2,3087,57), (3,116,51)]) concat.29641: bits[5] = concat(literal.29638, overflow_detected, id=29641, pos=[(2,3006,68), (2,3087,57), (3,116,51)]) tuple_index.29659: bits[1] = tuple_index(x, index=0, id=29659, pos=[(2,3088,17), (3,116,51)]) tuple_index.29660: bits[1] = tuple_index(y, index=0, id=29660, pos=[(2,3088,17), (3,116,51)]) wide_x_squeezed: bits[12] = concat(literal.29616, fraction_x__1, id=30114, pos=[(2,3099,17), (3,116,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=29653, pos=[(2,3112,31), (3,116,51)]) shift: bits[5] = add(result, concat.29641, id=29647, pos=[(1,54,7), (2,3006,68), (2,3087,57), (3,116,51)]) literal.29646: bits[15] = literal(value=32767, id=29646, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) xor.29664: bits[1] = xor(tuple_index.29659, tuple_index.29660, id=29664, pos=[(2,3106,23), (3,116,51)]) neg.29661: bits[12] = neg(wide_x_squeezed, id=29661, pos=[(2,3106,41), (3,116,51)]) shrl.29657: bits[14] = shrl(wide_y_shift_bits, shift, id=29657, pos=[(2,3112,31), (3,116,51)]) not.30187: bits[10] = not(y_fraction, id=30187, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) shll.29651: bits[15] = shll(literal.29646, shift, id=29651, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) xddend_x__1_squeezed: bits[12] = sel(xor.29664, cases=[wide_x_squeezed, neg.29661], id=30019, pos=[(2,3106,19), (3,116,51)]) literal.29913: bits[2] = literal(value=0, id=29913, pos=[(3,116,51)]) bit_slice.30179: bits[11] = bit_slice(shrl.29657, start=3, width=11, id=30179, pos=[(2,3116,20), (3,116,51)]) concat.30190: bits[11] = concat(literal.29616, not.30187, id=30190, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) not.30147: bits[11] = not(sign_ext.30015, id=30147, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) bit_slice.29655: bits[11] = bit_slice(shll.29651, start=3, width=11, id=29655, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) sign_ext.30165: bits[13] = sign_ext(xddend_x__1_squeezed, new_bit_count=13, id=30165, pos=[(2,3116,20), (3,116,51)]) concat.30167: bits[13] = concat(literal.29913, bit_slice.30179, id=30167, pos=[(2,3116,20), (3,116,51)]) nor.30148: bits[11] = nor(concat.30190, not.30147, bit_slice.29655, id=30148, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) literal.29632: bits[11] = literal(value=0, id=29632, pos=[(2,3095,49), (3,116,51)]) add.30132: bits[13] = add(sign_ext.30165, concat.30167, id=30132, pos=[(2,3116,20), (3,116,51)]) bit_slice.29662: bits[1] = bit_slice(shrl.29657, start=0, width=1, id=29662, pos=[(2,3049,40), (2,3112,30), (3,116,51)]) sticky: bits[1] = ne(nor.30148, literal.29632, id=29663, pos=[(0,1501,17), (0,1528,22), (2,3111,35), (3,116,51)]) bit_slice.30158: bits[12] = bit_slice(add.30132, start=0, width=12, id=30158, pos=[(2,3126,9), (3,116,51)]) bit_slice.30180: bits[2] = bit_slice(shrl.29657, start=1, width=2, id=30180, pos=[(2,3116,20), (3,116,51)]) or.29668: bits[1] = or(bit_slice.29662, sticky, id=29668, pos=[(2,3049,40), (2,3112,30), (3,116,51)]) concat.30185: bits[15] = concat(bit_slice.30158, bit_slice.30180, or.29668, id=30185, pos=[(2,3126,9), (3,116,51)]) bit_slice.30160: bits[1] = bit_slice(add.30132, start=12, width=1, id=30160, pos=[(2,3118,47), (3,116,51)]) neg.29676: bits[15] = neg(concat.30185, id=29676, pos=[(2,3126,46), (3,116,51)]) xbs_fraction: bits[15] = sel(bit_slice.30160, cases=[concat.30185, neg.29676], id=29677, pos=[(2,3126,9), (3,116,51)]) bit_slice.29738: bits[1] = bit_slice(xbs_fraction, start=1, width=1, id=29738, pos=[(0,1590,70), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29716: bits[1] = bit_slice(xbs_fraction, start=3, width=1, id=29716, pos=[(0,1590,70), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29703: bits[1] = bit_slice(xbs_fraction, start=5, width=1, id=29703, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29690: bits[1] = bit_slice(xbs_fraction, start=7, width=1, id=29690, pos=[(0,1590,70), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29682: bits[1] = bit_slice(xbs_fraction, start=9, width=1, id=29682, pos=[(0,1590,70), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29681: bits[1] = bit_slice(xbs_fraction, start=11, width=1, id=29681, pos=[(0,1590,70), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29678: bits[1] = bit_slice(xbs_fraction, start=13, width=1, id=29678, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29762: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=29762, pos=[(2,3133,65), (3,116,51)]) bit_slice.29748: bits[1] = bit_slice(xbs_fraction, start=2, width=1, id=29748, pos=[(0,1590,40), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) not.29749: bits[1] = not(bit_slice.29738, id=29749, pos=[(0,1583,4), (0,1590,64), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29714: bits[1] = bit_slice(xbs_fraction, start=6, width=1, id=29714, pos=[(0,1590,40), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29726: bits[1] = bit_slice(xbs_fraction, start=4, width=1, id=29726, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) not.29727: bits[1] = not(bit_slice.29716, id=29727, 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,116,51)]) not.30240: bits[1] = not(bit_slice.29703, id=30240, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=14, width=1, id=29679, pos=[(2,3131,32), (3,116,51)]) bit_slice.29686: bits[1] = bit_slice(xbs_fraction, start=12, width=1, id=29686, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29688: bits[1] = bit_slice(xbs_fraction, start=10, width=1, id=29688, pos=[(0,1590,40), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) bit_slice.29701: bits[1] = bit_slice(xbs_fraction, start=8, width=1, id=29701, pos=[(0,1590,40), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) not.29702: bits[1] = not(bit_slice.29690, id=29702, 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,116,51)]) not.29689: bits[1] = not(bit_slice.29682, id=29689, 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,116,51)]) not.29687: bits[1] = not(bit_slice.29681, id=29687, 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,116,51)]) not.29680: bits[1] = not(bit_slice.29678, id=29680, 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,116,51)]) not.29773: bits[1] = not(bit_slice.29762, id=29773, pos=[(0,1583,4), (0,1590,34), (0,1595,64), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29759: bits[1] = nor(bit_slice.29748, not.29749, id=29759, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) or.29972: bits[1] = or(bit_slice.29714, bit_slice.29703, id=29972, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29736: bits[1] = nor(bit_slice.29726, bit_slice.29716, id=29736, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29735: bits[1] = nor(bit_slice.29726, not.29727, id=29735, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29724: bits[1] = nor(bit_slice.29714, bit_slice.29703, id=29724, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.30241: bits[1] = nor(bit_slice.29714, not.30240, id=30241, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29684: bits[1] = nor(carry_bit, bit_slice.29678, id=29684, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29696: bits[1] = nor(bit_slice.29686, bit_slice.29681, id=29696, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) or.29973: bits[1] = or(bit_slice.29688, bit_slice.29682, id=29973, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29712: bits[1] = nor(bit_slice.29701, bit_slice.29690, id=29712, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29711: bits[1] = nor(bit_slice.29701, not.29702, id=29711, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29698: bits[1] = nor(bit_slice.29688, not.29689, id=29698, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) or.29974: bits[1] = or(carry_bit, bit_slice.29678, id=29974, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29695: bits[1] = nor(bit_slice.29686, not.29687, id=29695, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29683: bits[1] = nor(carry_bit, not.29680, id=29683, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29760: bits[1] = nor(bit_slice.29748, bit_slice.29738, id=29760, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.29929: bits[2] = concat(literal.29628, not.29773, id=29929, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30251: bits[2] = concat(literal.29616, nor.29759, id=30251, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29776: bits[1] = nor(or.29972, nor.29736, id=29776, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30117: bits[2] = concat(literal.29628, nor.29735, id=30117, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30066: bits[2] = concat(nor.29724, nor.30241, id=30066, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) and.29740: bits[1] = and(nor.29684, nor.29696, id=29740, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29699: bits[1] = nor(bit_slice.29688, bit_slice.29682, id=29699, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29754: bits[1] = nor(or.29973, nor.29712, id=29754, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.29969: bits[2] = concat(literal.29628, nor.29711, id=29969, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30252: bits[2] = concat(literal.29616, nor.29698, id=30252, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29739: bits[1] = nor(or.29974, nor.29696, id=29739, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30120: bits[2] = concat(literal.29628, nor.29695, id=30120, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30253: bits[2] = concat(literal.29616, nor.29683, id=30253, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.29793: bits[2] = priority_sel(nor.29760, cases=[concat.29929], default=concat.30251, id=29793, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.30031: bits[2] = priority_sel(nor.29776, cases=[concat.30117], default=concat.30066, id=30031, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) not.29781: bits[1] = not(and.29740, id=29781, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) and.29755: bits[1] = and(nor.29699, nor.29712, id=29755, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.29960: bits[2] = priority_sel(nor.29754, cases=[concat.29969], default=concat.30252, id=29960, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.30037: bits[2] = priority_sel(nor.29739, cases=[concat.30120], default=concat.30253, id=30037, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) and.29777: bits[1] = and(nor.29724, nor.29736, id=29777, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.29799: bits[3] = concat(literal.29628, priority_sel.29793, id=29799, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30127: bits[3] = concat(literal.29616, priority_sel.30031, id=30127, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) nor.29789: bits[1] = nor(not.29781, and.29755, id=29789, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30123: bits[3] = concat(literal.29628, priority_sel.29960, id=30123, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30128: bits[3] = concat(literal.29616, priority_sel.30037, id=30128, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.29801: bits[3] = priority_sel(and.29777, cases=[concat.29799], default=concat.30127, id=29801, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) priority_sel.30043: bits[3] = priority_sel(nor.29789, cases=[concat.30123], default=concat.30128, id=30043, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) and.29790: bits[1] = and(and.29740, and.29755, id=29790, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.29803: bits[4] = concat(literal.29628, priority_sel.29801, id=29803, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.30129: bits[4] = concat(literal.29616, priority_sel.30043, id=30129, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) concat.29804: bits[16] = concat(literal.29616, xbs_fraction, id=29804, pos=[(3,116,51)]) leading_zeroes: bits[4] = priority_sel(and.29790, cases=[concat.29803], default=concat.30129, id=29805, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (3,116,51)]) cancel_fraction: bits[16] = shll(concat.29804, leading_zeroes, id=29806, pos=[(2,3140,26), (3,116,51)]) bit_slice.29807: bits[13] = bit_slice(xbs_fraction, start=2, width=13, id=29807, pos=[(2,3049,20), (2,3133,36), (3,116,51)]) or.29808: bits[1] = or(bit_slice.29738, bit_slice.29762, id=29808, pos=[(2,3049,40), (2,3133,36), (3,116,51)]) cancel_fraction__1: bits[14] = bit_slice(cancel_fraction, start=1, width=14, id=29809, pos=[(3,116,51)]) carry_fraction__1: bits[14] = concat(bit_slice.29807, or.29808, id=29810, pos=[(2,3049,20), (2,3133,36), (3,116,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=29811, pos=[(2,3142,27), (3,116,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=29812, pos=[(2,3154,39), (3,116,51)]) fraction_shift__3: bits[3] = literal(value=4, id=29813, pos=[(2,3170,8), (3,116,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=29814, pos=[(2,3155,41), (3,116,51)]) literal.29815: bits[2] = literal(value=3, id=29815, pos=[(2,3156,68), (3,116,51)]) ugt.29816: bits[1] = ugt(normal_chunk, fraction_shift__3, id=29816, pos=[(2,3156,23), (3,116,51)]) eq.29817: bits[1] = eq(half_way_chunk, literal.29815, id=29817, pos=[(2,3156,50), (3,116,51)]) bit_slice.30170: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=30170) do_round_up: bits[1] = or(ugt.29816, eq.29817, id=29820, pos=[(2,3156,23), (3,116,51)]) concat.30171: bits[12] = concat(literal.29616, bit_slice.30170, id=30171) concat.30254: bits[12] = concat(literal.29632, do_round_up, id=30254) add.30140: bits[12] = add(concat.30171, concat.30254, id=30140) rounding_carry: bits[1] = bit_slice(add.30140, start=11, width=1, id=30162, pos=[(2,3164,41), (3,116,51)]) literal.30225: bits[13] = literal(value=0, id=30225, pos=[(2,3117,39), (3,116,51)]) bit_slice.30249: bits[1] = bit_slice(shrl.29657, start=1, width=1, id=30249, pos=[(2,3117,27), (3,116,51)]) bit_slice.30250: bits[1] = bit_slice(shrl.29657, start=2, width=1, id=30250, pos=[(2,3117,27), (3,116,51)]) concat.29824: bits[6] = concat(literal.29616, x_bexp, id=29824, pos=[(3,116,51)]) literal.29825: bits[6] = literal(value=1, id=29825, pos=[(2,3176,24), (3,116,51)]) concat.30181: bits[5] = concat(literal.29638, rounding_carry, id=30181, pos=[(3,116,51)]) concat.29827: bits[5] = concat(literal.29616, leading_zeroes, id=29827, pos=[(3,116,51)]) eq.30197: bits[1] = eq(add.30132, literal.30225, id=30197, pos=[(2,3117,27), (3,116,51)]) nor.30236: bits[1] = nor(bit_slice.30249, bit_slice.30250, id=30236, pos=[(2,3117,27), (3,116,51)]) nor.30237: bits[1] = nor(bit_slice.29662, sticky, id=30237, pos=[(2,3117,27), (3,116,51)]) add.29828: bits[6] = add(concat.29824, literal.29825, id=29828, pos=[(2,3175,26), (3,116,51)]) sub.29829: bits[5] = sub(concat.30181, concat.29827, id=29829, pos=[(2,3175,26), (3,116,51)]) fraction_is_zero: bits[1] = and(eq.30197, nor.30236, nor.30237, id=30235, pos=[(2,3117,27), (3,116,51)]) wide_exponent_associative_element: bits[7] = concat(literal.29616, add.29828, id=29831, pos=[(2,3175,26), (3,116,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.29829, new_bit_count=7, id=29832, pos=[(2,3175,26), (3,116,51)]) not.30049: bits[1] = not(fraction_is_zero, id=30049, pos=[(2,3177,24), (3,116,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=29834, pos=[(2,3175,26), (3,116,51)]) sign_ext.30050: bits[7] = sign_ext(not.30049, new_bit_count=7, id=30050, pos=[(2,3177,24), (3,116,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.30050, id=30051, pos=[(2,3177,24), (3,116,51)]) bit_slice.29843: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=29843, pos=[(2,3180,27), (3,116,51)]) not.30052: bits[1] = not(bit_slice.29843, id=30052, pos=[(2,3180,24), (3,116,51)]) bit_slice.29844: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=29844, pos=[(3,116,51)]) sign_ext.30053: bits[6] = sign_ext(not.30052, new_bit_count=6, id=30053, pos=[(2,3180,24), (3,116,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=29836, pos=[(2,3193,39), (3,116,51)]) literal.29837: bits[10] = literal(value=0, id=29837, pos=[(2,3190,44), (3,116,51)]) wide_exponent__2: bits[6] = and(bit_slice.29844, sign_ext.30053, id=30054, pos=[(2,3180,24), (3,116,51)]) eq.29839: bits[1] = eq(x_bexp, MAX_EXPONENT, id=29839, pos=[(2,71,6), (2,3213,30), (3,116,51)]) eq.29840: bits[1] = eq(x_fraction, literal.29837, id=29840, pos=[(2,96,44), (2,3201,31), (3,116,51)]) eq.29841: bits[1] = eq(y_bexp, MAX_EXPONENT, id=29841, pos=[(2,71,6), (2,3213,64), (3,116,51)]) eq.29842: bits[1] = eq(y_fraction, literal.29837, id=29842, pos=[(2,96,44), (2,3201,65), (3,116,51)]) bit_slice.29858: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=29858, pos=[(2,3190,11), (3,116,51)]) not.29846: bits[1] = not(eq.29839, id=29846, pos=[(2,3205,29), (3,116,51)]) not.29847: bits[1] = not(eq.29840, id=29847, pos=[(2,3205,29), (3,116,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29660, tuple_index.29659], id=29902, pos=[(2,3088,17), (3,116,51)]) not.29849: bits[1] = not(eq.29841, id=29849, pos=[(2,3206,29), (3,116,51)]) not.29850: bits[1] = not(eq.29842, id=29850, pos=[(2,3206,29), (3,116,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29659, tuple_index.29660], id=29903, pos=[(2,3088,17), (3,116,51)]) and.29865: bits[1] = and(eq.29839, eq.29840, id=29865, pos=[(2,96,6), (2,3201,31), (3,116,51)]) and.29866: bits[1] = and(eq.29841, eq.29842, id=29866, pos=[(2,96,6), (2,3201,65), (3,116,51)]) bit_slice.29867: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=29867, pos=[(3,116,51)]) or_reduce.29868: bits[1] = or_reduce(bit_slice.29858, id=29868, pos=[(2,3190,11), (3,116,51)]) bit_slice.29869: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=29869, pos=[(2,3190,11), (3,116,51)]) nor.29853: bits[1] = nor(not.29846, not.29847, x_sign, id=29853, pos=[(2,3205,29), (3,116,51)]) nor.29854: bits[1] = nor(not.29849, not.29850, y_sign, id=29854, pos=[(2,3206,29), (3,116,51)]) and.29855: bits[1] = and(eq.29839, eq.29840, x_sign, id=29855, pos=[(2,3211,29), (3,116,51)]) and.29856: bits[1] = and(eq.29841, eq.29842, y_sign, id=29856, pos=[(2,3212,29), (3,116,51)]) fraction_shift__2: bits[3] = literal(value=3, id=29859, pos=[(2,3170,8), (3,116,51)]) is_operand_inf: bits[1] = or(and.29865, and.29866, id=29877, pos=[(2,3201,31), (3,116,51)]) bit_slice.29878: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=29878, pos=[(2,3196,11), (3,116,51)]) and_reduce.29879: bits[1] = and_reduce(bit_slice.29867, id=29879, pos=[(2,3196,11), (3,116,51)]) nor.29880: bits[1] = nor(or_reduce.29868, bit_slice.29869, id=29880, pos=[(2,3190,11), (3,116,51)]) has_pos_inf: bits[1] = or(nor.29853, nor.29854, id=29862, pos=[(2,3205,29), (3,116,51)]) has_neg_inf: bits[1] = or(and.29855, and.29856, id=29863, pos=[(2,3211,29), (3,116,51)]) rounded_fraction: bits[15] = concat(add.30140, normal_chunk, id=30184) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=29870, pos=[(2,3170,8), (3,116,51)]) or.29885: bits[1] = or(is_operand_inf, bit_slice.29878, and_reduce.29879, nor.29880, id=29885, pos=[(2,3203,26), (3,116,51)]) nor.29922: bits[1] = nor(not.29846, eq.29840, id=29922, pos=[(2,71,6), (2,3213,30), (3,116,51)]) nor.29924: bits[1] = nor(not.29849, eq.29842, id=29924, pos=[(2,71,6), (2,3213,64), (3,116,51)]) and.29873: bits[1] = and(has_pos_inf, has_neg_inf, id=29873, pos=[(2,3214,25), (3,116,51)]) concat.30182: bits[2] = concat(bit_slice.30160, fraction_is_zero, id=30182, pos=[(3,116,51)]) and.29875: bits[1] = and(tuple_index.29659, tuple_index.29660, id=29875, pos=[(2,3119,22), (3,116,51)]) not.29876: bits[1] = not(y_sign, id=29876, pos=[(2,3120,25), (3,116,51)]) shrl.29881: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=29881, pos=[(2,3171,27), (3,116,51)]) not.30055: bits[1] = not(or.29885, id=30055, pos=[(2,3203,26), (3,116,51)]) is_result_nan: bits[1] = or(nor.29922, nor.29924, and.29873, id=29882, pos=[(2,3213,30), (3,116,51)]) result_sign: bits[1] = priority_sel(concat.30182, cases=[and.29875, not.29876], default=y_sign, id=29883, pos=[(3,116,51)]) not.29884: bits[1] = not(has_pos_inf, id=29884, pos=[(2,3207,42), (3,116,51)]) result_fraction: bits[10] = bit_slice(shrl.29881, start=0, width=10, id=29886, pos=[(3,116,51)]) sign_ext.30056: bits[10] = sign_ext(not.30055, new_bit_count=10, id=30056, pos=[(2,3203,26), (3,116,51)]) not.29887: bits[1] = not(is_result_nan, id=29887, pos=[(2,3218,22), (3,116,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.29884], id=29888, pos=[(2,3207,22), (3,116,51)]) or.29889: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.29878, and_reduce.29879, id=29889, pos=[(2,3216,26), (3,116,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.30056, id=30057, pos=[(2,3203,26), (3,116,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=29891, pos=[(2,3215,30), (3,116,51)]) result_sign__2: bits[1] = and(not.29887, result_sign__1, id=29892, pos=[(2,3218,22), (3,116,51)]) result_exponent__2: bits[5] = sel(or.29889, cases=[bit_slice.29867, MAX_EXPONENT], id=29893, pos=[(2,3216,26), (3,116,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=29894, pos=[(2,3217,26), (3,116,51)]) ret tuple.29895: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=29895, pos=[(2,3221,33), (3,116,51)]) }