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=835, y: (bits[1], bits[8], bits[7]) id=836) -> (bits[1], bits[8], bits[7]) { y_bexp__1: bits[8] = tuple_index(y, index=1, id=27051, pos=[(2,3091,67), (3,162,51)]) literal.27052: bits[1] = literal(value=0, id=27052, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexp__1: bits[8] = tuple_index(x, index=1, id=27053, pos=[(2,3091,59), (3,162,51)]) y_bexpnot: bits[8] = not(y_bexp__1, id=27054, pos=[(1,90,15), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexp_extended__1: bits[9] = concat(literal.27052, x_bexp__1, id=27055, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) y_bexpnot_extended: bits[9] = concat(literal.27052, y_bexpnot, id=27056, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) full_result: bits[9] = add(x_bexp_extended__1, y_bexpnot_extended, id=27057, pos=[(0,1114,45), (1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=8, width=1, id=27058, pos=[(0,1116,49), (1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) tuple_index.27060: bits[7] = tuple_index(y, index=2, id=27060, pos=[(2,3092,17), (3,162,51)]) tuple_index.27061: bits[7] = tuple_index(x, index=2, id=27061, pos=[(2,3092,17), (3,162,51)]) x_bexp: bits[8] = sel(overflow_detected, cases=[y_bexp__1, x_bexp__1], id=27316, pos=[(2,3092,17), (3,162,51)]) literal.27063: bits[8] = literal(value=0, id=27063, pos=[(2,3099,34), (3,162,51)]) y_bexp: bits[8] = sel(overflow_detected, cases=[x_bexp__1, y_bexp__1], id=27314, pos=[(2,3092,17), (3,162,51)]) literal.27064: bits[1] = literal(value=1, id=27064, pos=[(2,3095,22), (3,162,51)]) x_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.27060, tuple_index.27061], id=27317, pos=[(2,3092,17), (3,162,51)]) ne.27523: bits[1] = ne(x_bexp, literal.27063, id=27523, pos=[(2,3099,21), (3,162,51)]) y_fraction: bits[7] = sel(overflow_detected, cases=[tuple_index.27061, tuple_index.27060], id=27315, pos=[(2,3092,17), (3,162,51)]) ne.27522: bits[1] = ne(y_bexp, literal.27063, id=27522, pos=[(2,3100,21), (3,162,51)]) nc: bits[1] = not(overflow_detected, id=27059, pos=[(1,92,19), (2,3009,44), (2,3091,57), (3,162,51)]) fraction_x: bits[8] = concat(literal.27064, x_fraction, id=27084, pos=[(2,3095,22), (3,162,51)]) sign_ext.27400: bits[8] = sign_ext(ne.27523, new_bit_count=8, id=27400, pos=[(2,3099,21), (3,162,51)]) fraction_y: bits[8] = concat(literal.27064, y_fraction, id=27067, pos=[(2,3096,22), (3,162,51)]) sign_ext.27403: bits[8] = sign_ext(ne.27522, new_bit_count=8, id=27403, pos=[(2,3100,21), (3,162,51)]) narrowed_result: bits[8] = bit_slice(full_result, start=0, width=8, id=27071, pos=[(1,91,63), (2,3009,44), (2,3091,57), (3,162,51)]) x_bexpor_mask: bits[8] = sign_ext(nc, new_bit_count=8, id=27072, pos=[(1,94,32), (2,3009,44), (2,3091,57), (3,162,51)]) literal.27073: bits[7] = literal(value=0, id=27073, pos=[(2,3010,68), (2,3091,57), (3,162,51)]) tuple_index.27092: bits[1] = tuple_index(y, index=0, id=27092, pos=[(2,3092,17), (3,162,51)]) tuple_index.27091: bits[1] = tuple_index(x, index=0, id=27091, pos=[(2,3092,17), (3,162,51)]) fraction_x__1: bits[8] = and(fraction_x, sign_ext.27400, id=27401, pos=[(2,3099,21), (3,162,51)]) fraction_y__1: bits[8] = and(fraction_y, sign_ext.27403, id=27404, pos=[(2,3100,21), (3,162,51)]) xddend_x__1_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=27069, pos=[(2,3104,17), (3,162,51)]) result: bits[8] = xor(narrowed_result, x_bexpor_mask, id=27075, pos=[(1,95,18), (2,3009,44), (2,3091,57), (3,162,51)]) concat.27076: bits[8] = concat(literal.27073, overflow_detected, id=27076, pos=[(2,3010,68), (2,3091,57), (3,162,51)]) x_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27092, tuple_index.27091], id=27318, pos=[(2,3092,17), (3,162,51)]) y_sign: bits[1] = sel(overflow_detected, cases=[tuple_index.27091, tuple_index.27092], id=27319, pos=[(2,3092,17), (3,162,51)]) wide_x_squeezed: bits[9] = concat(literal.27052, fraction_x__1, id=27093, pos=[(2,3103,17), (3,162,51)]) wide_y_shift_bits: bits[11] = concat(fraction_y__1, xddend_x__1_squeezed_const_lsb_bits, id=27088, pos=[(2,3116,31), (3,162,51)]) shift: bits[8] = add(result, concat.27076, id=27082, pos=[(1,54,7), (2,3010,68), (2,3091,57), (3,162,51)]) literal.27081: bits[12] = literal(value=4095, id=27081, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) xor.27101: bits[1] = xor(x_sign, y_sign, id=27101, pos=[(2,3110,23), (3,162,51)]) neg.27098: bits[9] = neg(wide_x_squeezed, id=27098, pos=[(2,3110,41), (3,162,51)]) shrl.27094: bits[11] = shrl(wide_y_shift_bits, shift, id=27094, pos=[(2,3116,31), (3,162,51)]) not.27568: bits[7] = not(y_fraction, id=27568, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) shll.27086: bits[12] = shll(literal.27081, shift, id=27086, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) xddend_x__1_squeezed: bits[9] = sel(xor.27101, cases=[wide_x_squeezed, neg.27098], id=27407, pos=[(2,3110,19), (3,162,51)]) literal.27327: bits[2] = literal(value=0, id=27327, pos=[(3,162,51)]) bit_slice.27560: bits[8] = bit_slice(shrl.27094, start=3, width=8, id=27560, pos=[(2,3120,20), (3,162,51)]) concat.27571: bits[8] = concat(literal.27052, not.27568, id=27571, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) not.27526: bits[8] = not(sign_ext.27403, id=27526, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) bit_slice.27090: bits[8] = bit_slice(shll.27086, start=3, width=8, id=27090, pos=[(0,1406,19), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) sign_ext.27545: bits[10] = sign_ext(xddend_x__1_squeezed, new_bit_count=10, id=27545, pos=[(2,3120,20), (3,162,51)]) concat.27547: bits[10] = concat(literal.27327, bit_slice.27560, id=27547, pos=[(2,3120,20), (3,162,51)]) nor.27527: bits[8] = nor(concat.27571, not.27526, bit_slice.27090, id=27527, pos=[(0,1406,4), (0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) add.27511: bits[10] = add(sign_ext.27545, concat.27547, id=27511, pos=[(2,3120,20), (3,162,51)]) bit_slice.27099: bits[1] = bit_slice(shrl.27094, start=0, width=1, id=27099, pos=[(2,3053,40), (2,3116,30), (3,162,51)]) sticky: bits[1] = ne(nor.27527, literal.27063, id=27100, pos=[(0,1496,17), (0,1523,22), (2,3115,35), (3,162,51)]) bit_slice.27538: bits[9] = bit_slice(add.27511, start=0, width=9, id=27538, pos=[(2,3120,20), (3,162,51)]) bit_slice.27561: bits[2] = bit_slice(shrl.27094, start=1, width=2, id=27561, pos=[(2,3120,20), (3,162,51)]) or.27105: bits[1] = or(bit_slice.27099, sticky, id=27105, pos=[(2,3053,40), (2,3116,30), (3,162,51)]) concat.27566: bits[12] = concat(bit_slice.27538, bit_slice.27561, or.27105, id=27566, pos=[(2,3120,20), (3,162,51)]) bit_slice.27540: bits[1] = bit_slice(add.27511, start=9, width=1, id=27540, pos=[(2,3130,12), (3,162,51)]) neg.27113: bits[12] = neg(concat.27566, id=27113, pos=[(2,3130,46), (3,162,51)]) xbs_fraction: bits[12] = sel(bit_slice.27540, cases=[concat.27566, neg.27113], id=27114, pos=[(2,3130,9), (3,162,51)]) bit_slice.27127: bits[1] = bit_slice(xbs_fraction, start=4, width=1, id=27127, pos=[(0,1585,70), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27119: bits[1] = bit_slice(xbs_fraction, start=6, width=1, id=27119, pos=[(0,1585,70), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27118: bits[1] = bit_slice(xbs_fraction, start=8, width=1, id=27118, pos=[(0,1585,70), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27115: bits[1] = bit_slice(xbs_fraction, start=10, width=1, id=27115, pos=[(0,1585,70), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction, start=11, width=1, id=27116, pos=[(0,1585,40), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27123: bits[1] = bit_slice(xbs_fraction, start=9, width=1, id=27123, pos=[(0,1585,40), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27125: bits[1] = bit_slice(xbs_fraction, start=7, width=1, id=27125, pos=[(0,1585,40), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27138: bits[1] = bit_slice(xbs_fraction, start=5, width=1, id=27138, pos=[(0,1585,40), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) not.27139: bits[1] = not(bit_slice.27127, id=27139, 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), (3,162,51)]) not.27126: bits[1] = not(bit_slice.27119, id=27126, 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), (3,162,51)]) not.27124: bits[1] = not(bit_slice.27118, id=27124, 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), (3,162,51)]) not.27117: bits[1] = not(bit_slice.27115, id=27117, 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), (3,162,51)]) bit_slice.27151: bits[1] = bit_slice(xbs_fraction, start=3, width=1, id=27151, pos=[(0,1585,40), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27140: bits[1] = bit_slice(xbs_fraction, start=2, width=1, id=27140, pos=[(0,1585,70), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27163: bits[1] = bit_slice(xbs_fraction, start=1, width=1, id=27163, pos=[(0,1585,40), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) bit_slice.27153: bits[1] = bit_slice(xbs_fraction, start=0, width=1, id=27153, pos=[(0,1585,70), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27121: bits[1] = nor(carry_bit, bit_slice.27115, id=27121, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27133: bits[1] = nor(bit_slice.27123, bit_slice.27118, id=27133, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) or.27367: bits[1] = or(bit_slice.27125, bit_slice.27119, id=27367, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27149: bits[1] = nor(bit_slice.27138, bit_slice.27127, id=27149, pos=[(0,1585,22), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27148: bits[1] = nor(bit_slice.27138, not.27139, id=27148, pos=[(0,1585,22), (0,1590,64), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27135: bits[1] = nor(bit_slice.27125, not.27126, id=27135, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) or.27368: bits[1] = or(carry_bit, bit_slice.27115, id=27368, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27132: bits[1] = nor(bit_slice.27123, not.27124, id=27132, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27120: bits[1] = nor(carry_bit, not.27117, id=27120, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) or.27366: bits[1] = or(bit_slice.27151, bit_slice.27140, id=27366, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27173: bits[1] = nor(bit_slice.27163, bit_slice.27153, id=27173, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27161: bits[1] = nor(bit_slice.27151, bit_slice.27140, id=27161, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) not.27164: bits[1] = not(bit_slice.27153, id=27164, 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), (3,162,51)]) not.27618: bits[1] = not(bit_slice.27140, id=27618, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) and.27176: bits[1] = and(nor.27121, nor.27133, id=27176, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27136: bits[1] = nor(bit_slice.27125, bit_slice.27119, id=27136, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27188: bits[1] = nor(or.27367, nor.27149, id=27188, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27363: bits[2] = concat(literal.27064, nor.27148, id=27363, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27628: bits[2] = concat(literal.27052, nor.27135, id=27628, pos=[(0,1585,22), (0,1590,34), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27175: bits[1] = nor(or.27368, nor.27133, id=27175, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27497: bits[2] = concat(literal.27064, nor.27132, id=27497, pos=[(0,1535,24), (0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27629: bits[2] = concat(literal.27052, nor.27120, id=27629, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27202: bits[1] = nor(or.27366, nor.27173, id=27202, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) and.27203: bits[1] = and(nor.27161, nor.27173, id=27203, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27172: bits[1] = nor(bit_slice.27163, not.27164, id=27172, pos=[(0,1585,22), (0,1590,64), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27619: bits[1] = nor(bit_slice.27151, not.27618, id=27619, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) not.27205: bits[1] = not(and.27176, id=27205, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) and.27189: bits[1] = and(nor.27136, nor.27149, id=27189, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) priority_sel.27356: bits[2] = priority_sel(nor.27188, cases=[concat.27363], default=concat.27628, id=27356, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) priority_sel.27417: bits[2] = priority_sel(nor.27175, cases=[concat.27497], default=concat.27629, id=27417, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27207: bits[2] = concat(nor.27202, and.27203, id=27207, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27503: bits[2] = concat(literal.27064, nor.27172, id=27503, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27446: bits[2] = concat(nor.27161, nor.27619, id=27446, pos=[(0,1585,22), (0,1590,34), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) nor.27211: bits[1] = nor(not.27205, and.27189, id=27211, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27500: bits[3] = concat(literal.27064, priority_sel.27356, id=27500, pos=[(0,1535,24), (0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27507: bits[3] = concat(literal.27052, priority_sel.27417, id=27507, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) priority_sel.27450: bits[2] = priority_sel(concat.27207, cases=[literal.27327, concat.27503], default=concat.27446, id=27450, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) priority_sel.27423: bits[3] = priority_sel(nor.27211, cases=[concat.27500], default=concat.27507, id=27423, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) and.27212: bits[1] = and(and.27176, and.27189, id=27212, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27505: bits[4] = concat(literal.27064, and.27203, priority_sel.27450, id=27505, pos=[(0,1600,22), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27508: bits[4] = concat(literal.27052, priority_sel.27423, id=27508, pos=[(0,1595,22), (0,1600,34), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) concat.27225: bits[13] = concat(literal.27052, xbs_fraction, id=27225, pos=[(3,162,51)]) leading_zeroes: bits[4] = priority_sel(and.27212, cases=[concat.27505], default=concat.27508, id=27226, pos=[(0,1600,22), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) cancel_fraction: bits[13] = shll(concat.27225, leading_zeroes, id=27227, pos=[(2,3144,26), (3,162,51)]) bit_slice.27228: bits[10] = bit_slice(xbs_fraction, start=2, width=10, id=27228, pos=[(2,3053,20), (2,3137,36), (3,162,51)]) or.27229: bits[1] = or(bit_slice.27163, bit_slice.27153, id=27229, pos=[(2,3053,40), (2,3137,36), (3,162,51)]) cancel_fraction__1: bits[11] = bit_slice(cancel_fraction, start=1, width=11, id=27230, pos=[(3,162,51)]) carry_fraction__1: bits[11] = concat(bit_slice.27228, or.27229, id=27231, pos=[(2,3053,20), (2,3137,36), (3,162,51)]) shifted_fraction: bits[11] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=27232, pos=[(2,3146,27), (3,162,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=27233, pos=[(2,3158,39), (3,162,51)]) fraction_shift__3: bits[3] = literal(value=4, id=27335, pos=[(0,1534,24), (0,1590,22), (0,1595,34), (0,1600,64), (0,1639,30), (0,1702,13), (2,3141,34), (3,162,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=27234, pos=[(2,3159,41), (3,162,51)]) literal.27235: bits[2] = literal(value=3, id=27235, pos=[(2,3160,68), (3,162,51)]) ugt.27236: bits[1] = ugt(normal_chunk, fraction_shift__3, id=27236, pos=[(2,3160,23), (3,162,51)]) eq.27237: bits[1] = eq(half_way_chunk, literal.27235, id=27237, pos=[(2,3160,50), (3,162,51)]) bit_slice.27550: bits[8] = bit_slice(shifted_fraction, start=3, width=8, id=27550) do_round_up: bits[1] = or(ugt.27236, eq.27237, id=27240, pos=[(2,3160,23), (3,162,51)]) concat.27551: bits[9] = concat(literal.27052, bit_slice.27550, id=27551) concat.27630: bits[9] = concat(literal.27063, do_round_up, id=27630) add.27519: bits[9] = add(concat.27551, concat.27630, id=27519) literal.27243: bits[4] = literal(value=0, id=27243, pos=[(3,162,51)]) rounding_carry: bits[1] = bit_slice(add.27519, start=8, width=1, id=27542, pos=[(2,3168,41), (3,162,51)]) literal.27602: bits[10] = literal(value=0, id=27602, pos=[(2,3121,39), (3,162,51)]) bit_slice.27626: bits[1] = bit_slice(shrl.27094, start=1, width=1, id=27626, pos=[(2,3121,27), (3,162,51)]) bit_slice.27627: bits[1] = bit_slice(shrl.27094, start=2, width=1, id=27627, pos=[(2,3121,27), (3,162,51)]) concat.27245: bits[9] = concat(literal.27052, x_bexp, id=27245, pos=[(3,162,51)]) literal.27246: bits[9] = literal(value=1, id=27246, pos=[(2,3180,24), (3,162,51)]) concat.27562: bits[5] = concat(literal.27243, rounding_carry, id=27562, pos=[(3,162,51)]) concat.27248: bits[5] = concat(literal.27052, leading_zeroes, id=27248, pos=[(3,162,51)]) eq.27578: bits[1] = eq(add.27511, literal.27602, id=27578, pos=[(2,3121,27), (3,162,51)]) nor.27615: bits[1] = nor(bit_slice.27626, bit_slice.27627, id=27615, pos=[(2,3121,27), (3,162,51)]) nor.27616: bits[1] = nor(bit_slice.27099, sticky, id=27616, pos=[(2,3121,27), (3,162,51)]) add.27249: bits[9] = add(concat.27245, literal.27246, id=27249, pos=[(2,3179,26), (3,162,51)]) sub.27250: bits[5] = sub(concat.27562, concat.27248, id=27250, pos=[(2,3179,26), (3,162,51)]) fraction_is_zero: bits[1] = and(eq.27578, nor.27615, nor.27616, id=27614, pos=[(2,3121,27), (3,162,51)]) wide_exponent_associative_element: bits[10] = concat(literal.27052, add.27249, id=27252, pos=[(2,3179,26), (3,162,51)]) wide_exponent_associative_element__1: bits[10] = sign_ext(sub.27250, new_bit_count=10, id=27253, pos=[(2,3179,26), (3,162,51)]) not.27429: bits[1] = not(fraction_is_zero, id=27429, pos=[(2,3181,24), (3,162,51)]) wide_exponent: bits[10] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=27255, pos=[(2,3179,26), (3,162,51)]) sign_ext.27430: bits[10] = sign_ext(not.27429, new_bit_count=10, id=27430, pos=[(2,3181,24), (3,162,51)]) wide_exponent__1: bits[10] = and(wide_exponent, sign_ext.27430, id=27431, pos=[(2,3181,24), (3,162,51)]) bit_slice.27263: bits[1] = bit_slice(wide_exponent__1, start=9, width=1, id=27263, pos=[(2,3184,27), (3,162,51)]) not.27432: bits[1] = not(bit_slice.27263, id=27432, pos=[(2,3184,24), (3,162,51)]) bit_slice.27264: bits[9] = bit_slice(wide_exponent__1, start=0, width=9, id=27264, pos=[(3,162,51)]) sign_ext.27433: bits[9] = sign_ext(not.27432, new_bit_count=9, id=27433, pos=[(2,3184,24), (3,162,51)]) MAX_EXPONENT: bits[8] = literal(value=255, id=27257, pos=[(2,96,29), (2,3209,29), (3,162,51)]) wide_exponent__2: bits[9] = and(bit_slice.27264, sign_ext.27433, id=27434, pos=[(2,3184,24), (3,162,51)]) eq.27259: bits[1] = eq(x_bexp, MAX_EXPONENT, id=27259, pos=[(2,96,6), (2,3209,29), (3,162,51)]) eq.27260: bits[1] = eq(x_fraction, literal.27073, id=27260, pos=[(2,96,44), (2,3209,29), (3,162,51)]) eq.27261: bits[1] = eq(y_bexp, MAX_EXPONENT, id=27261, pos=[(2,96,6), (2,3210,29), (3,162,51)]) eq.27262: bits[1] = eq(y_fraction, literal.27073, id=27262, pos=[(2,96,44), (2,3210,29), (3,162,51)]) bit_slice.27276: bits[8] = bit_slice(wide_exponent__2, start=1, width=8, id=27276, pos=[(2,3194,11), (3,162,51)]) not.27266: bits[1] = not(eq.27259, id=27266, pos=[(2,3209,29), (3,162,51)]) not.27267: bits[1] = not(eq.27260, id=27267, pos=[(2,3209,29), (3,162,51)]) not.27268: bits[1] = not(eq.27261, id=27268, pos=[(2,3210,29), (3,162,51)]) not.27269: bits[1] = not(eq.27262, id=27269, pos=[(2,3210,29), (3,162,51)]) and.27283: bits[1] = and(eq.27259, eq.27260, id=27283, pos=[(2,96,6), (2,3209,29), (3,162,51)]) and.27284: bits[1] = and(eq.27261, eq.27262, id=27284, pos=[(2,96,6), (2,3210,29), (3,162,51)]) bit_slice.27285: bits[8] = bit_slice(wide_exponent__2, start=0, width=8, id=27285, pos=[(2,3202,11), (3,162,51)]) or_reduce.27286: bits[1] = or_reduce(bit_slice.27276, id=27286, pos=[(2,3194,11), (3,162,51)]) bit_slice.27287: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=27287, pos=[(2,3194,11), (3,162,51)]) nor.27271: bits[1] = nor(not.27266, not.27267, x_sign, id=27271, pos=[(2,3209,29), (3,162,51)]) nor.27272: bits[1] = nor(not.27268, not.27269, y_sign, id=27272, pos=[(2,3210,29), (3,162,51)]) and.27273: bits[1] = and(eq.27259, eq.27260, x_sign, id=27273, pos=[(2,3215,29), (3,162,51)]) and.27274: bits[1] = and(eq.27261, eq.27262, y_sign, id=27274, pos=[(2,3216,29), (3,162,51)]) fraction_shift__2: bits[3] = literal(value=3, id=27277, pos=[(2,3174,8), (3,162,51)]) is_operand_inf: bits[1] = or(and.27283, and.27284, id=27295, pos=[(2,3205,31), (3,162,51)]) bit_slice.27296: bits[1] = bit_slice(wide_exponent__2, start=8, width=1, id=27296, pos=[(2,3202,11), (3,162,51)]) and_reduce.27297: bits[1] = and_reduce(bit_slice.27285, id=27297, pos=[(2,3202,11), (3,162,51)]) nor.27298: bits[1] = nor(or_reduce.27286, bit_slice.27287, id=27298, pos=[(2,3194,11), (3,162,51)]) has_pos_inf: bits[1] = or(nor.27271, nor.27272, id=27280, pos=[(2,3209,29), (3,162,51)]) has_neg_inf: bits[1] = or(and.27273, and.27274, id=27281, pos=[(2,3215,29), (3,162,51)]) rounded_fraction: bits[12] = concat(add.27519, normal_chunk, id=27565) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=27288, pos=[(2,3174,8), (3,162,51)]) or.27303: bits[1] = or(is_operand_inf, bit_slice.27296, and_reduce.27297, nor.27298, id=27303, pos=[(2,3207,26), (3,162,51)]) nor.27330: bits[1] = nor(not.27266, eq.27260, id=27330, pos=[(2,71,6), (2,3217,30), (3,162,51)]) nor.27332: bits[1] = nor(not.27268, eq.27262, id=27332, pos=[(2,71,6), (2,3217,64), (3,162,51)]) and.27291: bits[1] = and(has_pos_inf, has_neg_inf, id=27291, pos=[(2,3218,25), (3,162,51)]) concat.27563: bits[2] = concat(bit_slice.27540, fraction_is_zero, id=27563, pos=[(3,162,51)]) and.27293: bits[1] = and(x_sign, y_sign, id=27293, pos=[(2,3123,22), (3,162,51)]) not.27294: bits[1] = not(y_sign, id=27294, pos=[(2,3210,59), (3,162,51)]) shrl.27299: bits[12] = shrl(rounded_fraction, fraction_shift__1, id=27299, pos=[(2,3175,27), (3,162,51)]) not.27435: bits[1] = not(or.27303, id=27435, pos=[(2,3207,26), (3,162,51)]) is_result_nan: bits[1] = or(nor.27330, nor.27332, and.27291, id=27300, pos=[(2,3217,30), (3,162,51)]) result_sign: bits[1] = priority_sel(concat.27563, cases=[and.27293, not.27294], default=y_sign, id=27301, pos=[(3,162,51)]) not.27302: bits[1] = not(has_pos_inf, id=27302, pos=[(2,3211,42), (3,162,51)]) result_fraction: bits[7] = bit_slice(shrl.27299, start=0, width=7, id=27304, pos=[(3,162,51)]) sign_ext.27436: bits[7] = sign_ext(not.27435, new_bit_count=7, id=27436, pos=[(2,3207,26), (3,162,51)]) not.27305: bits[1] = not(is_result_nan, id=27305, pos=[(2,3222,22), (3,162,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.27302], id=27306, pos=[(2,3211,22), (3,162,51)]) or.27307: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.27296, and_reduce.27297, id=27307, pos=[(2,3220,26), (3,162,51)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.27436, id=27437, pos=[(2,3207,26), (3,162,51)]) FRACTION_HIGH_BIT: bits[7] = literal(value=64, id=27309, pos=[(2,3219,30), (3,162,51)]) result_sign__2: bits[1] = and(not.27305, result_sign__1, id=27310, pos=[(2,3222,22), (3,162,51)]) result_exponent__2: bits[8] = sel(or.27307, cases=[bit_slice.27285, MAX_EXPONENT], id=27311, pos=[(2,3220,26), (3,162,51)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=27312, pos=[(2,3221,26), (3,162,51)]) ret tuple.27313: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=27313, pos=[(2,3225,33), (3,162,51)]) }