package hfloat16 file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/abs_diff.x" file_number 2 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 3 "/inputs/subtree/xls/dslx/stdlib/hfloat16.x" top fn __hfloat16__sub(x: (bits[1], bits[5], bits[10]) id=845, y: (bits[1], bits[5], bits[10]) id=846) -> (bits[1], bits[5], bits[10]) { y_bexp__2: bits[5] = tuple_index(y, index=1, id=27390, pos=[(2,3242,65), (3,118,51)]) literal.27394: bits[1] = literal(value=0, id=27394, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexp__2: bits[5] = tuple_index(x, index=1, id=27395, pos=[(2,3091,59), (2,3243,7), (3,118,51)]) y__1_bexpnot__1: bits[5] = not(y_bexp__2, id=27396, pos=[(1,90,15), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexp_extended__2: bits[6] = concat(literal.27394, x_bexp__2, id=27397, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y__1_bexpnot_extended__1: bits[6] = concat(literal.27394, y__1_bexpnot__1, id=27398, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) full_result: bits[6] = add(x_bexp_extended__2, y__1_bexpnot_extended__1, id=27399, pos=[(0,1114,45), (1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=27400, pos=[(0,1116,49), (1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y_fraction__2: bits[10] = tuple_index(y, index=2, id=27391, pos=[(2,3242,83), (3,118,51)]) tuple_index.27403: bits[10] = tuple_index(x, index=2, id=27403, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) x_bexp__3: bits[5] = sel(overflow_detected, cases=[y_bexp__2, x_bexp__2], id=27676, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.27405: bits[5] = literal(value=0, id=27405, pos=[(2,3099,34), (2,3243,7), (3,118,51)]) y_bexp__3: bits[5] = sel(overflow_detected, cases=[x_bexp__2, y_bexp__2], id=27674, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.27406: bits[1] = literal(value=1, id=27406, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) x_fraction__1: bits[10] = sel(overflow_detected, cases=[y_fraction__2, tuple_index.27403], id=27677, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.27920: bits[1] = ne(x_bexp__3, literal.27405, id=27920, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) y_fraction__3: bits[10] = sel(overflow_detected, cases=[tuple_index.27403, y_fraction__2], id=27675, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.27919: bits[1] = ne(y_bexp__3, literal.27405, id=27919, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) nc: bits[1] = not(overflow_detected, id=27401, pos=[(1,92,19), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) y_sign__2: bits[1] = tuple_index(y, index=0, id=27388, pos=[(2,3242,51), (3,118,51)]) fraction_x: bits[11] = concat(literal.27406, x_fraction__1, id=27427, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) sign_ext.27788: bits[11] = sign_ext(ne.27920, new_bit_count=11, id=27788, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y: bits[11] = concat(literal.27406, y_fraction__3, id=27409, pos=[(2,3096,22), (2,3243,7), (3,118,51)]) sign_ext.27791: bits[11] = sign_ext(ne.27919, new_bit_count=11, id=27791, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=27414, pos=[(1,91,63), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexpor_mask__1: bits[5] = sign_ext(nc, new_bit_count=5, id=27415, pos=[(1,94,32), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) literal.27416: bits[4] = literal(value=0, id=27416, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) not.27389: bits[1] = not(y_sign__2, id=27389, pos=[(2,3242,49), (3,118,51)]) tuple_index.27434: bits[1] = tuple_index(x, index=0, id=27434, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.27788, id=27789, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.27791, id=27792, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=27412, pos=[(2,3104,17), (2,3243,7), (3,118,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask__1, id=27418, pos=[(1,95,18), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) concat.27419: bits[5] = concat(literal.27416, overflow_detected, id=27419, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) x_sign__1: bits[1] = sel(overflow_detected, cases=[not.27389, tuple_index.27434], id=27678, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) y_sign__3: bits[1] = sel(overflow_detected, cases=[tuple_index.27434, not.27389], id=27679, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) wide_x_squeezed: bits[12] = concat(literal.27394, fraction_x__1, id=27436, pos=[(2,3103,17), (2,3243,7), (3,118,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__2_squeezed_const_lsb_bits, id=27431, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) shift: bits[5] = add(result, concat.27419, id=27425, pos=[(1,54,7), (2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) literal.27424: bits[15] = literal(value=32767, id=27424, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) xor.27444: bits[1] = xor(x_sign__1, y_sign__3, id=27444, pos=[(2,3110,23), (2,3243,7), (3,118,51)]) neg.27441: bits[12] = neg(wide_x_squeezed, id=27441, pos=[(2,3110,41), (2,3243,7), (3,118,51)]) shrl.27437: bits[14] = shrl(wide_y_shift_bits, shift, id=27437, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) not.27963: bits[10] = not(y_fraction__3, id=27963, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) shll.27429: bits[15] = shll(literal.27424, shift, id=27429, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed: bits[12] = sel(xor.27444, cases=[wide_x_squeezed, neg.27441], id=27795, pos=[(2,3110,19), (2,3243,7), (3,118,51)]) literal.27691: bits[2] = literal(value=0, id=27691, pos=[(2,3243,7), (3,118,51)]) bit_slice.27955: bits[11] = bit_slice(shrl.27437, start=3, width=11, id=27955, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.27966: bits[11] = concat(literal.27394, not.27963, id=27966, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) not.27923: bits[11] = not(sign_ext.27791, id=27923, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.27433: bits[11] = bit_slice(shll.27429, start=3, width=11, id=27433, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) sign_ext.27941: bits[13] = sign_ext(xddend_x__2_squeezed, new_bit_count=13, id=27941, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.27943: bits[13] = concat(literal.27691, bit_slice.27955, id=27943, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) nor.27924: bits[11] = nor(concat.27966, not.27923, bit_slice.27433, id=27924, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) literal.27410: bits[11] = literal(value=0, id=27410, pos=[(2,3099,49), (2,3243,7), (3,118,51)]) add.27908: bits[13] = add(sign_ext.27941, concat.27943, id=27908, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.27442: bits[1] = bit_slice(shrl.27437, start=0, width=1, id=27442, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) sticky: bits[1] = ne(nor.27924, literal.27410, id=27443, pos=[(0,1496,17), (0,1523,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.27934: bits[12] = bit_slice(add.27908, start=0, width=12, id=27934, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.27956: bits[2] = bit_slice(shrl.27437, start=1, width=2, id=27956, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) or.27448: bits[1] = or(bit_slice.27442, sticky, id=27448, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) concat.27961: bits[15] = concat(bit_slice.27934, bit_slice.27956, or.27448, id=27961, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.27936: bits[1] = bit_slice(add.27908, start=12, width=1, id=27936, pos=[(2,3130,12), (2,3243,7), (3,118,51)]) neg.27456: bits[15] = neg(concat.27961, id=27456, pos=[(2,3130,46), (2,3243,7), (3,118,51)]) xbs_fraction__1: bits[15] = sel(bit_slice.27936, cases=[concat.27961, neg.27456], id=27457, pos=[(2,3130,9), (2,3243,7), (3,118,51)]) bit_slice.27518: bits[1] = bit_slice(xbs_fraction__1, start=1, width=1, id=27518, pos=[(0,1585,70), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27496: bits[1] = bit_slice(xbs_fraction__1, start=3, width=1, id=27496, pos=[(0,1585,70), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27483: bits[1] = bit_slice(xbs_fraction__1, start=5, width=1, id=27483, pos=[(0,1585,70), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27470: bits[1] = bit_slice(xbs_fraction__1, start=7, width=1, id=27470, pos=[(0,1585,70), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27462: bits[1] = bit_slice(xbs_fraction__1, start=9, width=1, id=27462, pos=[(0,1585,70), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27461: bits[1] = bit_slice(xbs_fraction__1, start=11, width=1, id=27461, pos=[(0,1585,70), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27458: bits[1] = bit_slice(xbs_fraction__1, start=13, width=1, id=27458, pos=[(0,1585,70), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27542: bits[1] = bit_slice(xbs_fraction__1, start=0, width=1, id=27542, pos=[(0,1585,40), (0,1590,64), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27528: bits[1] = bit_slice(xbs_fraction__1, start=2, width=1, id=27528, pos=[(0,1585,40), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27529: bits[1] = not(bit_slice.27518, id=27529, pos=[(0,1578,4), (0,1585,64), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27494: bits[1] = bit_slice(xbs_fraction__1, start=6, width=1, id=27494, pos=[(0,1585,40), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27506: bits[1] = bit_slice(xbs_fraction__1, start=4, width=1, id=27506, pos=[(0,1585,40), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27507: bits[1] = not(bit_slice.27496, id=27507, pos=[(0,1578,4), (0,1585,64), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.28016: bits[1] = not(bit_slice.27483, id=28016, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction__1, start=14, width=1, id=27459, pos=[(0,1585,40), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27466: bits[1] = bit_slice(xbs_fraction__1, start=12, width=1, id=27466, pos=[(0,1585,40), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27468: bits[1] = bit_slice(xbs_fraction__1, start=10, width=1, id=27468, pos=[(0,1585,40), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) bit_slice.27481: bits[1] = bit_slice(xbs_fraction__1, start=8, width=1, id=27481, pos=[(0,1585,40), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27482: bits[1] = not(bit_slice.27470, id=27482, pos=[(0,1578,4), (0,1585,64), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27469: bits[1] = not(bit_slice.27462, id=27469, pos=[(0,1578,4), (0,1585,64), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27467: bits[1] = not(bit_slice.27461, id=27467, pos=[(0,1578,4), (0,1585,64), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27460: bits[1] = not(bit_slice.27458, id=27460, pos=[(0,1578,4), (0,1585,64), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27685: bits[1] = not(bit_slice.27542, id=27685, pos=[(0,1585,22), (0,1590,64), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27539: bits[1] = nor(bit_slice.27528, not.27529, id=27539, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27748: bits[1] = or(bit_slice.27494, bit_slice.27483, id=27748, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27516: bits[1] = nor(bit_slice.27506, bit_slice.27496, id=27516, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27515: bits[1] = nor(bit_slice.27506, not.27507, id=27515, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.28014: bits[1] = nor(bit_slice.27494, bit_slice.27483, id=28014, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.28017: bits[1] = nor(bit_slice.27494, not.28016, id=28017, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27464: bits[1] = nor(carry_bit, bit_slice.27458, id=27464, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27476: bits[1] = nor(bit_slice.27466, bit_slice.27461, id=27476, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27749: bits[1] = or(bit_slice.27468, bit_slice.27462, id=27749, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27492: bits[1] = nor(bit_slice.27481, bit_slice.27470, id=27492, pos=[(0,1585,22), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27491: bits[1] = nor(bit_slice.27481, not.27482, id=27491, pos=[(0,1585,22), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27478: bits[1] = nor(bit_slice.27468, not.27469, id=27478, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) or.27750: bits[1] = or(carry_bit, bit_slice.27458, id=27750, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27475: bits[1] = nor(bit_slice.27466, not.27467, id=27475, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27463: bits[1] = nor(carry_bit, not.27460, id=27463, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27540: bits[1] = nor(bit_slice.27528, bit_slice.27518, id=27540, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27707: bits[2] = concat(literal.27406, not.27685, id=27707, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28027: bits[2] = concat(literal.27394, nor.27539, id=28027, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27556: bits[1] = nor(or.27748, nor.27516, id=27556, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27893: bits[2] = concat(literal.27406, nor.27515, id=27893, pos=[(0,1535,24), (0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27842: bits[2] = concat(nor.28014, nor.28017, id=27842, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27520: bits[1] = and(nor.27464, nor.27476, id=27520, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27479: bits[1] = nor(bit_slice.27468, bit_slice.27462, id=27479, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27534: bits[1] = nor(or.27749, nor.27492, id=27534, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27745: bits[2] = concat(literal.27406, nor.27491, id=27745, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28028: bits[2] = concat(literal.27394, nor.27478, id=28028, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27519: bits[1] = nor(or.27750, nor.27476, id=27519, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27896: bits[2] = concat(literal.27406, nor.27475, id=27896, pos=[(0,1535,24), (0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.28029: bits[2] = concat(literal.27394, nor.27463, id=28029, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27573: bits[2] = priority_sel(nor.27540, cases=[concat.27707], default=concat.28027, id=27573, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27807: bits[2] = priority_sel(nor.27556, cases=[concat.27893], default=concat.27842, id=27807, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) not.27561: bits[1] = not(and.27520, id=27561, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27535: bits[1] = and(nor.27479, nor.27492, id=27535, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27736: bits[2] = priority_sel(nor.27534, cases=[concat.27745], default=concat.28028, id=27736, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27813: bits[2] = priority_sel(nor.27519, cases=[concat.27896], default=concat.28029, id=27813, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27557: bits[1] = and(nor.28014, nor.27516, id=27557, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27579: bits[3] = concat(literal.27406, priority_sel.27573, id=27579, pos=[(0,1595,22), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27903: bits[3] = concat(literal.27394, priority_sel.27807, id=27903, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.27569: bits[1] = nor(not.27561, and.27535, id=27569, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27899: bits[3] = concat(literal.27406, priority_sel.27736, id=27899, pos=[(0,1535,24), (0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27904: bits[3] = concat(literal.27394, priority_sel.27813, id=27904, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27581: bits[3] = priority_sel(and.27557, cases=[concat.27579], default=concat.27903, id=27581, pos=[(0,1595,22), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.27819: bits[3] = priority_sel(nor.27569, cases=[concat.27899], default=concat.27904, id=27819, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.27570: bits[1] = and(and.27520, and.27535, id=27570, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27583: bits[4] = concat(literal.27406, priority_sel.27581, id=27583, pos=[(0,1600,22), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27905: bits[4] = concat(literal.27394, priority_sel.27819, id=27905, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.27584: bits[16] = concat(literal.27394, xbs_fraction__1, id=27584, pos=[(2,3243,7), (3,118,51)]) leading_zeroes: bits[4] = priority_sel(and.27570, cases=[concat.27583], default=concat.27905, id=27585, pos=[(0,1600,22), (0,1639,30), (0,1702,13), (2,3141,34), (2,3243,7), (3,118,51)]) cancel_fraction: bits[16] = shll(concat.27584, leading_zeroes, id=27586, pos=[(2,3144,26), (2,3243,7), (3,118,51)]) bit_slice.27587: bits[13] = bit_slice(xbs_fraction__1, start=2, width=13, id=27587, pos=[(2,3053,20), (2,3137,36), (2,3243,7), (3,118,51)]) or.27588: bits[1] = or(bit_slice.27518, bit_slice.27542, id=27588, pos=[(2,3053,40), (2,3137,36), (2,3243,7), (3,118,51)]) cancel_fraction__1: bits[14] = bit_slice(cancel_fraction, start=1, width=14, id=27589, pos=[(2,3243,7), (3,118,51)]) carry_fraction__1: bits[14] = concat(bit_slice.27587, or.27588, id=27590, pos=[(2,3053,20), (2,3137,36), (2,3243,7), (3,118,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=27591, pos=[(2,3146,27), (2,3243,7), (3,118,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=27592, pos=[(2,3158,39), (2,3243,7), (3,118,51)]) fraction_shift__3: bits[3] = literal(value=4, id=27593, pos=[(2,3160,38), (2,3243,7), (3,118,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=27594, pos=[(2,3159,41), (2,3243,7), (3,118,51)]) literal.27595: bits[2] = literal(value=3, id=27595, pos=[(2,3160,68), (2,3243,7), (3,118,51)]) ugt.27596: bits[1] = ugt(normal_chunk, fraction_shift__3, id=27596, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) eq.27597: bits[1] = eq(half_way_chunk, literal.27595, id=27597, pos=[(2,3160,50), (2,3243,7), (3,118,51)]) bit_slice.27946: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=27946) do_round_up: bits[1] = or(ugt.27596, eq.27597, id=27600, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) concat.27947: bits[12] = concat(literal.27394, bit_slice.27946, id=27947) concat.28030: bits[12] = concat(literal.27410, do_round_up, id=28030) add.27916: bits[12] = add(concat.27947, concat.28030, id=27916) rounding_carry: bits[1] = bit_slice(add.27916, start=11, width=1, id=27938, pos=[(2,3168,41), (2,3243,7), (3,118,51)]) literal.28001: bits[13] = literal(value=0, id=28001, pos=[(2,3121,39), (2,3243,7), (3,118,51)]) bit_slice.28025: bits[1] = bit_slice(shrl.27437, start=1, width=1, id=28025, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) bit_slice.28026: bits[1] = bit_slice(shrl.27437, start=2, width=1, id=28026, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) concat.27604: bits[6] = concat(literal.27394, x_bexp__3, id=27604, pos=[(2,3243,7), (3,118,51)]) literal.27605: bits[6] = literal(value=1, id=27605, pos=[(2,3180,24), (2,3243,7), (3,118,51)]) concat.27957: bits[5] = concat(literal.27416, rounding_carry, id=27957, pos=[(2,3243,7), (3,118,51)]) concat.27607: bits[5] = concat(literal.27394, leading_zeroes, id=27607, pos=[(2,3243,7), (3,118,51)]) eq.27973: bits[1] = eq(add.27908, literal.28001, id=27973, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.28012: bits[1] = nor(bit_slice.28025, bit_slice.28026, id=28012, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.28013: bits[1] = nor(bit_slice.27442, sticky, id=28013, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) add.27608: bits[6] = add(concat.27604, literal.27605, id=27608, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sub.27609: bits[5] = sub(concat.27957, concat.27607, id=27609, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) fraction_is_zero: bits[1] = and(eq.27973, nor.28012, nor.28013, id=28011, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) wide_exponent_associative_element: bits[7] = concat(literal.27394, add.27608, id=27611, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.27609, new_bit_count=7, id=27612, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) not.27825: bits[1] = not(fraction_is_zero, id=27825, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=27614, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sign_ext.27826: bits[7] = sign_ext(not.27825, new_bit_count=7, id=27826, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.27826, id=27827, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) bit_slice.27623: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=27623, pos=[(2,3184,27), (2,3243,7), (3,118,51)]) not.27828: bits[1] = not(bit_slice.27623, id=27828, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) bit_slice.27624: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=27624, pos=[(2,3243,7), (3,118,51)]) sign_ext.27829: bits[6] = sign_ext(not.27828, new_bit_count=6, id=27829, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=27616, pos=[(2,96,29), (2,3209,29), (2,3243,7), (3,118,51)]) literal.27617: bits[10] = literal(value=0, id=27617, pos=[(2,96,57), (2,3209,29), (2,3243,7), (3,118,51)]) wide_exponent__2: bits[6] = and(bit_slice.27624, sign_ext.27829, id=27830, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) eq.27619: bits[1] = eq(x_bexp__3, MAX_EXPONENT, id=27619, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) eq.27620: bits[1] = eq(x_fraction__1, literal.27617, id=27620, pos=[(2,96,44), (2,3209,29), (2,3243,7), (3,118,51)]) eq.27621: bits[1] = eq(y_bexp__3, MAX_EXPONENT, id=27621, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) eq.27622: bits[1] = eq(y_fraction__3, literal.27617, id=27622, pos=[(2,96,44), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.27636: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=27636, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) not.27626: bits[1] = not(eq.27619, id=27626, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.27627: bits[1] = not(eq.27620, id=27627, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.27628: bits[1] = not(eq.27621, id=27628, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) not.27629: bits[1] = not(eq.27622, id=27629, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.27643: bits[1] = and(eq.27619, eq.27620, id=27643, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) and.27644: bits[1] = and(eq.27621, eq.27622, id=27644, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.27645: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=27645, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) or_reduce.27646: bits[1] = or_reduce(bit_slice.27636, id=27646, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) bit_slice.27647: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=27647, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) nor.27631: bits[1] = nor(not.27626, not.27627, x_sign__1, id=27631, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) nor.27632: bits[1] = nor(not.27628, not.27629, y_sign__3, id=27632, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.27633: bits[1] = and(eq.27619, eq.27620, x_sign__1, id=27633, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) and.27634: bits[1] = and(eq.27621, eq.27622, y_sign__3, id=27634, pos=[(2,3216,29), (2,3243,7), (3,118,51)]) fraction_shift__2: bits[3] = literal(value=3, id=27637, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) is_operand_inf: bits[1] = or(and.27643, and.27644, id=27655, pos=[(2,3205,31), (2,3243,7), (3,118,51)]) bit_slice.27656: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=27656, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) and_reduce.27657: bits[1] = and_reduce(bit_slice.27645, id=27657, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) nor.27658: bits[1] = nor(or_reduce.27646, bit_slice.27647, id=27658, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) has_pos_inf: bits[1] = or(nor.27631, nor.27632, id=27640, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) has_neg_inf: bits[1] = or(and.27633, and.27634, id=27641, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) rounded_fraction: bits[15] = concat(add.27916, normal_chunk, id=27960) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=27648, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) or.27663: bits[1] = or(is_operand_inf, bit_slice.27656, and_reduce.27657, nor.27658, id=27663, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) nor.27700: bits[1] = nor(not.27626, eq.27620, id=27700, pos=[(2,71,6), (2,3217,30), (2,3243,7), (3,118,51)]) nor.27702: bits[1] = nor(not.27628, eq.27622, id=27702, pos=[(2,71,6), (2,3217,64), (2,3243,7), (3,118,51)]) and.27651: bits[1] = and(has_pos_inf, has_neg_inf, id=27651, pos=[(2,3218,25), (2,3243,7), (3,118,51)]) concat.27958: bits[2] = concat(bit_slice.27936, fraction_is_zero, id=27958, pos=[(2,3243,7), (3,118,51)]) and.27653: bits[1] = and(x_sign__1, y_sign__3, id=27653, pos=[(2,3123,22), (2,3243,7), (3,118,51)]) not.27654: bits[1] = not(y_sign__3, id=27654, pos=[(2,3210,59), (2,3243,7), (3,118,51)]) shrl.27659: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=27659, pos=[(2,3175,27), (2,3243,7), (3,118,51)]) not.27831: bits[1] = not(or.27663, id=27831, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) is_result_nan: bits[1] = or(nor.27700, nor.27702, and.27651, id=27660, pos=[(2,3217,30), (2,3243,7), (3,118,51)]) result_sign: bits[1] = priority_sel(concat.27958, cases=[and.27653, not.27654], default=y_sign__3, id=27661, pos=[(2,3243,7), (3,118,51)]) not.27662: bits[1] = not(has_pos_inf, id=27662, pos=[(2,3211,42), (2,3243,7), (3,118,51)]) result_fraction: bits[10] = bit_slice(shrl.27659, start=0, width=10, id=27664, pos=[(2,3243,7), (3,118,51)]) sign_ext.27832: bits[10] = sign_ext(not.27831, new_bit_count=10, id=27832, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) not.27665: bits[1] = not(is_result_nan, id=27665, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.27662], id=27666, pos=[(2,3211,22), (2,3243,7), (3,118,51)]) or.27667: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.27656, and_reduce.27657, id=27667, pos=[(2,3220,26), (2,3243,7), (3,118,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.27832, id=27833, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=27669, pos=[(2,3219,30), (2,3243,7), (3,118,51)]) result_sign__2: bits[1] = and(not.27665, result_sign__1, id=27670, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_exponent__2: bits[5] = sel(or.27667, cases=[bit_slice.27645, MAX_EXPONENT], id=27671, pos=[(2,3220,26), (2,3243,7), (3,118,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=27672, pos=[(2,3221,26), (2,3243,7), (3,118,51)]) ret tuple.27673: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=27673, pos=[(2,3225,33), (2,3243,7), (3,118,51)]) }