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=29613, pos=[(2,3091,67), (3,116,51)]) literal.29614: bits[1] = literal(value=0, id=29614, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexp__1: bits[5] = tuple_index(x, index=1, id=29615, pos=[(2,3091,59), (3,116,51)]) y_bexpnot: bits[5] = not(y_bexp__1, id=29616, pos=[(1,90,15), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexp_extended__1: bits[6] = concat(literal.29614, x_bexp__1, id=29617, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) y_bexpnot_extended: bits[6] = concat(literal.29614, y_bexpnot, id=29618, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) full_result: bits[6] = add(x_bexp_extended__1, y_bexpnot_extended, id=29619, pos=[(0,1119,45), (1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=29620, pos=[(0,1121,49), (1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) tuple_index.29622: bits[10] = tuple_index(y, index=2, id=29622, pos=[(2,3092,17), (3,116,51)]) tuple_index.29623: bits[10] = tuple_index(x, index=2, id=29623, pos=[(2,3092,17), (3,116,51)]) x_bexp: bits[5] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=29896, pos=[(2,3092,17), (3,116,51)]) literal.29625: bits[5] = literal(value=0, id=29625, pos=[(2,3099,34), (3,116,51)]) y_bexp: bits[5] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=29894, pos=[(2,3092,17), (3,116,51)]) literal.29626: bits[1] = literal(value=1, id=29626, pos=[(2,3095,22), (3,116,51)]) x_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.29622, tuple_index.29623], id=29897, pos=[(2,3092,17), (3,116,51)]) ne.30142: bits[1] = ne(x_bexp, literal.29625, id=30142, pos=[(2,3099,21), (3,116,51)]) y_fraction: bits[10] = sel(overflow_detected, cases=[tuple_index.29623, tuple_index.29622], id=29895, pos=[(2,3092,17), (3,116,51)]) ne.30141: bits[1] = ne(y_bexp, literal.29625, id=30141, pos=[(2,3100,21), (3,116,51)]) nc: bits[1] = not(overflow_detected, id=29621, pos=[(1,92,19), (2,3009,44), (2,3091,57), (3,116,51)]) fraction_x: bits[11] = concat(literal.29626, x_fraction, id=29647, pos=[(2,3095,22), (3,116,51)]) sign_ext.30010: bits[11] = sign_ext(ne.30142, new_bit_count=11, id=30010, pos=[(2,3099,21), (3,116,51)]) fraction_y: bits[11] = concat(literal.29626, y_fraction, id=29629, pos=[(2,3096,22), (3,116,51)]) sign_ext.30013: bits[11] = sign_ext(ne.30141, new_bit_count=11, id=30013, pos=[(2,3100,21), (3,116,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=29634, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,116,51)]) x_bexpor_mask: bits[5] = sign_ext(nc, new_bit_count=5, id=29635, pos=[(1,94,32), (2,3009,44), (2,3091,57), (3,116,51)]) literal.29636: bits[4] = literal(value=0, id=29636, pos=[(2,3010,68), (2,3091,57), (3,116,51)]) tuple_index.29655: bits[1] = tuple_index(y, index=0, id=29655, pos=[(2,3092,17), (3,116,51)]) tuple_index.29654: bits[1] = tuple_index(x, index=0, id=29654, pos=[(2,3092,17), (3,116,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.30010, id=30011, pos=[(2,3099,21), (3,116,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.30013, id=30014, pos=[(2,3100,21), (3,116,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=29632, pos=[(2,3104,17), (3,116,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask, id=29638, pos=[(1,95,18), (2,3009,44), (2,3091,57), (3,116,51)]) concat.29639: bits[5] = concat(literal.29636, overflow_detected, id=29639, pos=[(2,3010,68), (2,3091,57), (3,116,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29655, tuple_index.29654], id=29898, pos=[(2,3092,17), (3,116,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.29654, tuple_index.29655], id=29899, pos=[(2,3092,17), (3,116,51)]) wide_x_squeezed: bits[12] = concat(literal.29614, fraction_x__1, id=29656, pos=[(2,3103,17), (3,116,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=29651, pos=[(2,3116,31), (3,116,51)]) shift: bits[5] = add(result, concat.29639, id=29645, pos=[(1,54,7), (2,3010,68), (2,3091,57), (3,116,51)]) literal.29644: bits[15] = literal(value=32767, id=29644, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) xor.29664: bits[1] = xor(x_sign, y_sign, id=29664, pos=[(2,3110,23), (3,116,51)]) neg.29661: bits[12] = neg(wide_x_squeezed, id=29661, pos=[(2,3110,41), (3,116,51)]) shrl.29657: bits[14] = shrl(wide_y_shift_bits, shift, id=29657, pos=[(2,3116,31), (3,116,51)]) not.30185: bits[10] = not(y_fraction, id=30185, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) shll.29649: bits[15] = shll(literal.29644, shift, id=29649, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) xddend_x__1_squeezed: bits[12] = sel(xor.29664, cases=[wide_x_squeezed, neg.29661], id=30017, pos=[(2,3110,19), (3,116,51)]) literal.29911: bits[2] = literal(value=0, id=29911, pos=[(3,116,51)]) bit_slice.30177: bits[11] = bit_slice(shrl.29657, start=3, width=11, id=30177, pos=[(2,3120,20), (3,116,51)]) concat.30188: bits[11] = concat(literal.29614, not.30185, id=30188, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) not.30145: bits[11] = not(sign_ext.30013, id=30145, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) bit_slice.29653: bits[11] = bit_slice(shll.29649, start=3, width=11, id=29653, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) sign_ext.30163: bits[13] = sign_ext(xddend_x__1_squeezed, new_bit_count=13, id=30163, pos=[(2,3120,20), (3,116,51)]) concat.30165: bits[13] = concat(literal.29911, bit_slice.30177, id=30165, pos=[(2,3120,20), (3,116,51)]) nor.30146: bits[11] = nor(concat.30188, not.30145, bit_slice.29653, id=30146, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) literal.29630: bits[11] = literal(value=0, id=29630, pos=[(2,3099,49), (3,116,51)]) add.30130: bits[13] = add(sign_ext.30163, concat.30165, id=30130, pos=[(2,3120,20), (3,116,51)]) bit_slice.29662: bits[1] = bit_slice(shrl.29657, start=0, width=1, id=29662, pos=[(2,3053,40), (2,3116,30), (3,116,51)]) sticky: bits[1] = ne(nor.30146, literal.29630, id=29663, pos=[(0,1501,17), (0,1528,22), (2,3115,35), (3,116,51)]) bit_slice.30156: bits[12] = bit_slice(add.30130, start=0, width=12, id=30156, pos=[(2,3120,20), (3,116,51)]) bit_slice.30178: bits[2] = bit_slice(shrl.29657, start=1, width=2, id=30178, pos=[(2,3120,20), (3,116,51)]) or.29668: bits[1] = or(bit_slice.29662, sticky, id=29668, pos=[(2,3053,40), (2,3116,30), (3,116,51)]) concat.30183: bits[15] = concat(bit_slice.30156, bit_slice.30178, or.29668, id=30183, pos=[(2,3120,20), (3,116,51)]) bit_slice.30158: bits[1] = bit_slice(add.30130, start=12, width=1, id=30158, pos=[(2,3130,12), (3,116,51)]) neg.29676: bits[15] = neg(concat.30183, id=29676, pos=[(2,3130,46), (3,116,51)]) xbs_fraction: bits[15] = sel(bit_slice.30158, cases=[concat.30183, neg.29676], id=29677, pos=[(2,3130,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,3141,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,3141,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,3141,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,3141,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,3141,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,3141,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,3141,34), (3,116,51)]) bit_slice.29762: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=29762, pos=[(0,1590,40), (0,1595,64), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (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,3141,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,3141,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,3141,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,3141,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,3141,34), (3,116,51)]) not.30238: bits[1] = not(bit_slice.29703, id=30238, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=14, width=1, id=29679, pos=[(0,1590,40), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (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,3141,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,3141,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,3141,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,3141,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,3141,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,3141,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,3141,34), (3,116,51)]) not.29905: bits[1] = not(bit_slice.29762, id=29905, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,34), (3,116,51)]) or.29970: bits[1] = or(bit_slice.29714, bit_slice.29703, id=29970, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,34), (3,116,51)]) nor.30236: bits[1] = nor(bit_slice.29714, bit_slice.29703, id=30236, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) nor.30239: bits[1] = nor(bit_slice.29714, not.30238, id=30239, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,34), (3,116,51)]) or.29971: bits[1] = or(bit_slice.29688, bit_slice.29682, id=29971, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,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,3141,34), (3,116,51)]) or.29972: bits[1] = or(carry_bit, bit_slice.29678, id=29972, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,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,3141,34), (3,116,51)]) concat.29927: bits[2] = concat(literal.29626, not.29905, id=29927, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30249: bits[2] = concat(literal.29614, nor.29759, id=30249, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) nor.29776: bits[1] = nor(or.29970, nor.29736, id=29776, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30115: bits[2] = concat(literal.29626, nor.29735, id=30115, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30064: bits[2] = concat(nor.30236, nor.30239, id=30064, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,34), (3,116,51)]) nor.29754: bits[1] = nor(or.29971, nor.29712, id=29754, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.29967: bits[2] = concat(literal.29626, nor.29711, id=29967, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30250: bits[2] = concat(literal.29614, nor.29698, id=30250, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) nor.29739: bits[1] = nor(or.29972, nor.29696, id=29739, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30118: bits[2] = concat(literal.29626, nor.29695, id=30118, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30251: bits[2] = concat(literal.29614, nor.29683, id=30251, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) priority_sel.29793: bits[2] = priority_sel(nor.29760, cases=[concat.29927], default=concat.30249, id=29793, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) priority_sel.30029: bits[2] = priority_sel(nor.29776, cases=[concat.30115], default=concat.30064, id=30029, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,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,3141,34), (3,116,51)]) priority_sel.29958: bits[2] = priority_sel(nor.29754, cases=[concat.29967], default=concat.30250, id=29958, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) priority_sel.30035: bits[2] = priority_sel(nor.29739, cases=[concat.30118], default=concat.30251, id=30035, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) and.29777: bits[1] = and(nor.30236, nor.29736, id=29777, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.29799: bits[3] = concat(literal.29626, priority_sel.29793, id=29799, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30125: bits[3] = concat(literal.29614, priority_sel.30029, id=30125, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,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,3141,34), (3,116,51)]) concat.30121: bits[3] = concat(literal.29626, priority_sel.29958, id=30121, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30126: bits[3] = concat(literal.29614, priority_sel.30035, id=30126, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) priority_sel.29801: bits[3] = priority_sel(and.29777, cases=[concat.29799], default=concat.30125, id=29801, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) priority_sel.30041: bits[3] = priority_sel(nor.29789, cases=[concat.30121], default=concat.30126, id=30041, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,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,3141,34), (3,116,51)]) concat.29803: bits[4] = concat(literal.29626, priority_sel.29801, id=29803, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.30127: bits[4] = concat(literal.29614, priority_sel.30041, id=30127, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) concat.29804: bits[16] = concat(literal.29614, xbs_fraction, id=29804, pos=[(3,116,51)]) leading_zeroes: bits[4] = priority_sel(and.29790, cases=[concat.29803], default=concat.30127, id=29805, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3141,34), (3,116,51)]) cancel_fraction: bits[16] = shll(concat.29804, leading_zeroes, id=29806, pos=[(2,3144,26), (3,116,51)]) bit_slice.29807: bits[13] = bit_slice(xbs_fraction, start=2, width=13, id=29807, pos=[(2,3053,20), (2,3137,36), (3,116,51)]) or.29808: bits[1] = or(bit_slice.29738, bit_slice.29762, id=29808, pos=[(2,3053,40), (2,3137,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,3053,20), (2,3137,36), (3,116,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=29811, pos=[(2,3146,27), (3,116,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=29812, pos=[(2,3158,39), (3,116,51)]) fraction_shift__3: bits[3] = literal(value=4, id=29813, pos=[(2,3160,38), (3,116,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=29814, pos=[(2,3159,41), (3,116,51)]) literal.29815: bits[2] = literal(value=3, id=29815, pos=[(2,3160,68), (3,116,51)]) ugt.29816: bits[1] = ugt(normal_chunk, fraction_shift__3, id=29816, pos=[(2,3160,23), (3,116,51)]) eq.29817: bits[1] = eq(half_way_chunk, literal.29815, id=29817, pos=[(2,3160,50), (3,116,51)]) bit_slice.30168: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=30168) do_round_up: bits[1] = or(ugt.29816, eq.29817, id=29820, pos=[(2,3160,23), (3,116,51)]) concat.30169: bits[12] = concat(literal.29614, bit_slice.30168, id=30169) concat.30252: bits[12] = concat(literal.29630, do_round_up, id=30252) add.30138: bits[12] = add(concat.30169, concat.30252, id=30138) rounding_carry: bits[1] = bit_slice(add.30138, start=11, width=1, id=30160, pos=[(2,3168,41), (3,116,51)]) literal.30223: bits[13] = literal(value=0, id=30223, pos=[(2,3121,39), (3,116,51)]) bit_slice.30247: bits[1] = bit_slice(shrl.29657, start=1, width=1, id=30247, pos=[(2,3121,27), (3,116,51)]) bit_slice.30248: bits[1] = bit_slice(shrl.29657, start=2, width=1, id=30248, pos=[(2,3121,27), (3,116,51)]) concat.29824: bits[6] = concat(literal.29614, x_bexp, id=29824, pos=[(3,116,51)]) literal.29825: bits[6] = literal(value=1, id=29825, pos=[(2,3180,24), (3,116,51)]) concat.30179: bits[5] = concat(literal.29636, rounding_carry, id=30179, pos=[(3,116,51)]) concat.29827: bits[5] = concat(literal.29614, leading_zeroes, id=29827, pos=[(3,116,51)]) eq.30195: bits[1] = eq(add.30130, literal.30223, id=30195, pos=[(2,3121,27), (3,116,51)]) nor.30234: bits[1] = nor(bit_slice.30247, bit_slice.30248, id=30234, pos=[(2,3121,27), (3,116,51)]) nor.30235: bits[1] = nor(bit_slice.29662, sticky, id=30235, pos=[(2,3121,27), (3,116,51)]) add.29828: bits[6] = add(concat.29824, literal.29825, id=29828, pos=[(2,3179,26), (3,116,51)]) sub.29829: bits[5] = sub(concat.30179, concat.29827, id=29829, pos=[(2,3179,26), (3,116,51)]) fraction_is_zero: bits[1] = and(eq.30195, nor.30234, nor.30235, id=30233, pos=[(2,3121,27), (3,116,51)]) wide_exponent_associative_element: bits[7] = concat(literal.29614, add.29828, id=29831, pos=[(2,3179,26), (3,116,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.29829, new_bit_count=7, id=29832, pos=[(2,3179,26), (3,116,51)]) not.30047: bits[1] = not(fraction_is_zero, id=30047, pos=[(2,3181,24), (3,116,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=29834, pos=[(2,3179,26), (3,116,51)]) sign_ext.30048: bits[7] = sign_ext(not.30047, new_bit_count=7, id=30048, pos=[(2,3181,24), (3,116,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.30048, id=30049, pos=[(2,3181,24), (3,116,51)]) bit_slice.29843: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=29843, pos=[(2,3184,27), (3,116,51)]) not.30050: bits[1] = not(bit_slice.29843, id=30050, pos=[(2,3184,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.30051: bits[6] = sign_ext(not.30050, new_bit_count=6, id=30051, pos=[(2,3184,24), (3,116,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=29836, pos=[(2,96,29), (2,3209,29), (3,116,51)]) literal.29837: bits[10] = literal(value=0, id=29837, pos=[(2,96,57), (2,3209,29), (3,116,51)]) wide_exponent__2: bits[6] = and(bit_slice.29844, sign_ext.30051, id=30052, pos=[(2,3184,24), (3,116,51)]) eq.29839: bits[1] = eq(x_bexp, MAX_EXPONENT, id=29839, pos=[(2,96,6), (2,3209,29), (3,116,51)]) eq.29840: bits[1] = eq(x_fraction, literal.29837, id=29840, pos=[(2,96,44), (2,3209,29), (3,116,51)]) eq.29841: bits[1] = eq(y_bexp, MAX_EXPONENT, id=29841, pos=[(2,96,6), (2,3210,29), (3,116,51)]) eq.29842: bits[1] = eq(y_fraction, literal.29837, id=29842, pos=[(2,96,44), (2,3210,29), (3,116,51)]) bit_slice.29856: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=29856, pos=[(2,3194,11), (3,116,51)]) not.29846: bits[1] = not(eq.29839, id=29846, pos=[(2,3209,29), (3,116,51)]) not.29847: bits[1] = not(eq.29840, id=29847, pos=[(2,3209,29), (3,116,51)]) not.29848: bits[1] = not(eq.29841, id=29848, pos=[(2,3210,29), (3,116,51)]) not.29849: bits[1] = not(eq.29842, id=29849, pos=[(2,3210,29), (3,116,51)]) and.29863: bits[1] = and(eq.29839, eq.29840, id=29863, pos=[(2,96,6), (2,3209,29), (3,116,51)]) and.29864: bits[1] = and(eq.29841, eq.29842, id=29864, pos=[(2,96,6), (2,3210,29), (3,116,51)]) bit_slice.29865: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=29865, pos=[(2,3202,11), (3,116,51)]) or_reduce.29866: bits[1] = or_reduce(bit_slice.29856, id=29866, pos=[(2,3194,11), (3,116,51)]) bit_slice.29867: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=29867, pos=[(2,3194,11), (3,116,51)]) nor.29851: bits[1] = nor(not.29846, not.29847, x_sign, id=29851, pos=[(2,3209,29), (3,116,51)]) nor.29852: bits[1] = nor(not.29848, not.29849, y_sign, id=29852, pos=[(2,3210,29), (3,116,51)]) and.29853: bits[1] = and(eq.29839, eq.29840, x_sign, id=29853, pos=[(2,3215,29), (3,116,51)]) and.29854: bits[1] = and(eq.29841, eq.29842, y_sign, id=29854, pos=[(2,3216,29), (3,116,51)]) fraction_shift__2: bits[3] = literal(value=3, id=29857, pos=[(2,3174,8), (3,116,51)]) is_operand_inf: bits[1] = or(and.29863, and.29864, id=29875, pos=[(2,3205,31), (3,116,51)]) bit_slice.29876: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=29876, pos=[(2,3202,11), (3,116,51)]) and_reduce.29877: bits[1] = and_reduce(bit_slice.29865, id=29877, pos=[(2,3202,11), (3,116,51)]) nor.29878: bits[1] = nor(or_reduce.29866, bit_slice.29867, id=29878, pos=[(2,3194,11), (3,116,51)]) has_pos_inf: bits[1] = or(nor.29851, nor.29852, id=29860, pos=[(2,3209,29), (3,116,51)]) has_neg_inf: bits[1] = or(and.29853, and.29854, id=29861, pos=[(2,3215,29), (3,116,51)]) rounded_fraction: bits[15] = concat(add.30138, normal_chunk, id=30182) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=29868, pos=[(2,3174,8), (3,116,51)]) or.29883: bits[1] = or(is_operand_inf, bit_slice.29876, and_reduce.29877, nor.29878, id=29883, pos=[(2,3207,26), (3,116,51)]) nor.29920: bits[1] = nor(not.29846, eq.29840, id=29920, pos=[(2,71,6), (2,3217,30), (3,116,51)]) nor.29922: bits[1] = nor(not.29848, eq.29842, id=29922, pos=[(2,71,6), (2,3217,64), (3,116,51)]) and.29871: bits[1] = and(has_pos_inf, has_neg_inf, id=29871, pos=[(2,3218,25), (3,116,51)]) concat.30180: bits[2] = concat(bit_slice.30158, fraction_is_zero, id=30180, pos=[(3,116,51)]) and.29873: bits[1] = and(x_sign, y_sign, id=29873, pos=[(2,3123,22), (3,116,51)]) not.29874: bits[1] = not(y_sign, id=29874, pos=[(2,3210,59), (3,116,51)]) shrl.29879: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=29879, pos=[(2,3175,27), (3,116,51)]) not.30053: bits[1] = not(or.29883, id=30053, pos=[(2,3207,26), (3,116,51)]) is_result_nan: bits[1] = or(nor.29920, nor.29922, and.29871, id=29880, pos=[(2,3217,30), (3,116,51)]) result_sign: bits[1] = priority_sel(concat.30180, cases=[and.29873, not.29874], default=y_sign, id=29881, pos=[(3,116,51)]) not.29882: bits[1] = not(has_pos_inf, id=29882, pos=[(2,3211,42), (3,116,51)]) result_fraction: bits[10] = bit_slice(shrl.29879, start=0, width=10, id=29884, pos=[(3,116,51)]) sign_ext.30054: bits[10] = sign_ext(not.30053, new_bit_count=10, id=30054, pos=[(2,3207,26), (3,116,51)]) not.29885: bits[1] = not(is_result_nan, id=29885, pos=[(2,3222,22), (3,116,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.29882], id=29886, pos=[(2,3211,22), (3,116,51)]) or.29887: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.29876, and_reduce.29877, id=29887, pos=[(2,3220,26), (3,116,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.30054, id=30055, pos=[(2,3207,26), (3,116,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=29889, pos=[(2,3219,30), (3,116,51)]) result_sign__2: bits[1] = and(not.29885, result_sign__1, id=29890, pos=[(2,3222,22), (3,116,51)]) result_exponent__2: bits[5] = sel(or.29887, cases=[bit_slice.29865, MAX_EXPONENT], id=29891, pos=[(2,3220,26), (3,116,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=29892, pos=[(2,3221,26), (3,116,51)]) ret tuple.29893: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=29893, pos=[(2,3225,33), (3,116,51)]) }