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=853, y: (bits[1], bits[5], bits[10]) id=854) -> (bits[1], bits[5], bits[10]) { y_bexp__2: bits[5] = tuple_index(y, index=1, id=29908, pos=[(2,3238,65), (3,118,51)]) literal.29912: bits[1] = literal(value=0, id=29912, pos=[(2,3239,7), (3,118,51)]) x_bexp__2: bits[5] = tuple_index(x, index=1, id=29913, pos=[(2,3087,59), (2,3239,7), (3,118,51)]) y__1_bexpnot__1: bits[5] = not(y_bexp__2, id=29914, pos=[(1,90,15), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) x_bexp_extended__2: bits[6] = concat(literal.29912, x_bexp__2, id=29915, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) y__1_bexpnot_extended__1: bits[6] = concat(literal.29912, y__1_bexpnot__1, id=29916, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) full_result: bits[6] = add(x_bexp_extended__2, y__1_bexpnot_extended__1, id=29917, pos=[(0,1119,45), (1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=5, width=1, id=29918, pos=[(0,1121,49), (1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) y_fraction__2: bits[10] = tuple_index(y, index=2, id=29909, pos=[(2,3238,83), (3,118,51)]) tuple_index.29921: bits[10] = tuple_index(x, index=2, id=29921, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) x_bexp__3: bits[5] = sel(overflow_detected, cases=[y_bexp__2, x_bexp__2], id=30194, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) literal.29923: bits[5] = literal(value=0, id=29923, pos=[(2,3095,34), (2,3239,7), (3,118,51)]) y_bexp__3: bits[5] = sel(overflow_detected, cases=[x_bexp__2, y_bexp__2], id=30192, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) literal.29924: bits[1] = literal(value=1, id=29924, pos=[(2,3091,22), (2,3239,7), (3,118,51)]) x_fraction__1: bits[10] = sel(overflow_detected, cases=[y_fraction__2, tuple_index.29921], id=30195, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) ne.30442: bits[1] = ne(x_bexp__3, literal.29923, id=30442, pos=[(2,3095,21), (2,3239,7), (3,118,51)]) y_fraction__3: bits[10] = sel(overflow_detected, cases=[tuple_index.29921, y_fraction__2], id=30193, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) ne.30441: bits[1] = ne(y_bexp__3, literal.29923, id=30441, pos=[(2,3096,21), (2,3239,7), (3,118,51)]) nc: bits[1] = not(overflow_detected, id=29919, pos=[(1,92,19), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) fraction_x: bits[11] = concat(literal.29924, x_fraction__1, id=29945, pos=[(2,3091,22), (2,3239,7), (3,118,51)]) sign_ext.30310: bits[11] = sign_ext(ne.30442, new_bit_count=11, id=30310, pos=[(2,3095,21), (2,3239,7), (3,118,51)]) fraction_y: bits[11] = concat(literal.29924, y_fraction__3, id=29927, pos=[(2,3092,22), (2,3239,7), (3,118,51)]) sign_ext.30313: bits[11] = sign_ext(ne.30441, new_bit_count=11, id=30313, pos=[(2,3096,21), (2,3239,7), (3,118,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=29932, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) x_bexpor_mask__1: bits[5] = sign_ext(nc, new_bit_count=5, id=29933, pos=[(1,94,32), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) literal.29934: bits[4] = literal(value=0, id=29934, pos=[(2,3239,7), (3,118,51)]) y_sign__2: bits[1] = tuple_index(y, index=0, id=29906, pos=[(2,3238,51), (3,118,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.30310, id=30311, pos=[(2,3095,21), (2,3239,7), (3,118,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.30313, id=30314, pos=[(2,3096,21), (2,3239,7), (3,118,51)]) xddend_x__2_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=30319, pos=[(2,3106,19), (2,3239,7), (3,118,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask__1, id=29936, pos=[(1,95,18), (2,3005,44), (2,3087,57), (2,3239,7), (3,118,51)]) concat.29937: bits[5] = concat(literal.29934, overflow_detected, id=29937, pos=[(2,3006,68), (2,3087,57), (2,3239,7), (3,118,51)]) tuple_index.29955: bits[1] = tuple_index(x, index=0, id=29955, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) not.29907: bits[1] = not(y_sign__2, id=29907, pos=[(2,3238,49), (3,118,51)]) wide_x_squeezed: bits[12] = concat(literal.29912, fraction_x__1, id=30412, pos=[(2,3099,17), (2,3239,7), (3,118,51)]) wide_y_shift_bits: bits[14] = concat(fraction_y__1, xddend_x__2_squeezed_const_lsb_bits, id=29949, pos=[(2,3112,31), (2,3239,7), (3,118,51)]) shift: bits[5] = add(result, concat.29937, id=29943, pos=[(1,54,7), (2,3006,68), (2,3087,57), (2,3239,7), (3,118,51)]) literal.29942: bits[15] = literal(value=32767, id=29942, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) xor.29960: bits[1] = xor(tuple_index.29955, not.29907, id=29960, pos=[(2,3106,23), (2,3239,7), (3,118,51)]) neg.29957: bits[12] = neg(wide_x_squeezed, id=29957, pos=[(2,3106,41), (2,3239,7), (3,118,51)]) shrl.29953: bits[14] = shrl(wide_y_shift_bits, shift, id=29953, pos=[(2,3112,31), (2,3239,7), (3,118,51)]) not.30485: bits[10] = not(y_fraction__3, id=30485, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) shll.29947: bits[15] = shll(literal.29942, shift, id=29947, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) xddend_x__2_squeezed: bits[12] = sel(xor.29960, cases=[wide_x_squeezed, neg.29957], id=30317, pos=[(2,3106,19), (2,3239,7), (3,118,51)]) literal.30209: bits[2] = literal(value=0, id=30209, pos=[(2,3239,7), (3,118,51)]) bit_slice.30477: bits[11] = bit_slice(shrl.29953, start=3, width=11, id=30477, pos=[(2,3116,20), (2,3239,7), (3,118,51)]) concat.30488: bits[11] = concat(literal.29912, not.30485, id=30488, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) not.30445: bits[11] = not(sign_ext.30313, id=30445, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) bit_slice.29951: bits[11] = bit_slice(shll.29947, start=3, width=11, id=29951, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) sign_ext.30463: bits[13] = sign_ext(xddend_x__2_squeezed, new_bit_count=13, id=30463, pos=[(2,3116,20), (2,3239,7), (3,118,51)]) concat.30465: bits[13] = concat(literal.30209, bit_slice.30477, id=30465, pos=[(2,3116,20), (2,3239,7), (3,118,51)]) nor.30446: bits[11] = nor(concat.30488, not.30445, bit_slice.29951, id=30446, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) literal.29928: bits[11] = literal(value=0, id=29928, pos=[(2,3095,49), (2,3239,7), (3,118,51)]) add.30430: bits[13] = add(sign_ext.30463, concat.30465, id=30430, pos=[(2,3116,20), (2,3239,7), (3,118,51)]) bit_slice.29958: bits[1] = bit_slice(shrl.29953, start=0, width=1, id=29958, pos=[(2,3049,40), (2,3112,30), (2,3239,7), (3,118,51)]) sticky: bits[1] = ne(nor.30446, literal.29928, id=29959, pos=[(0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,118,51)]) bit_slice.30456: bits[12] = bit_slice(add.30430, start=0, width=12, id=30456, pos=[(2,3126,9), (2,3239,7), (3,118,51)]) bit_slice.30478: bits[2] = bit_slice(shrl.29953, start=1, width=2, id=30478, pos=[(2,3116,20), (2,3239,7), (3,118,51)]) or.29964: bits[1] = or(bit_slice.29958, sticky, id=29964, pos=[(2,3049,40), (2,3112,30), (2,3239,7), (3,118,51)]) concat.30483: bits[15] = concat(bit_slice.30456, bit_slice.30478, or.29964, id=30483, pos=[(2,3126,9), (2,3239,7), (3,118,51)]) bit_slice.30458: bits[1] = bit_slice(add.30430, start=12, width=1, id=30458, pos=[(2,3118,47), (2,3239,7), (3,118,51)]) neg.29972: bits[15] = neg(concat.30483, id=29972, pos=[(2,3126,46), (2,3239,7), (3,118,51)]) xbs_fraction__1: bits[15] = sel(bit_slice.30458, cases=[concat.30483, neg.29972], id=29973, pos=[(2,3126,9), (2,3239,7), (3,118,51)]) bit_slice.30034: bits[1] = bit_slice(xbs_fraction__1, start=1, width=1, id=30034, pos=[(0,1590,70), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.30012: bits[1] = bit_slice(xbs_fraction__1, start=3, width=1, id=30012, pos=[(0,1590,70), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29999: bits[1] = bit_slice(xbs_fraction__1, start=5, width=1, id=29999, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29986: bits[1] = bit_slice(xbs_fraction__1, start=7, width=1, id=29986, pos=[(0,1590,70), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29978: bits[1] = bit_slice(xbs_fraction__1, start=9, width=1, id=29978, pos=[(0,1590,70), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29977: bits[1] = bit_slice(xbs_fraction__1, start=11, width=1, id=29977, pos=[(0,1590,70), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29974: bits[1] = bit_slice(xbs_fraction__1, start=13, width=1, id=29974, pos=[(0,1590,70), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.30058: bits[1] = bit_slice(xbs_fraction__1, start=0, width=1, id=30058, pos=[(2,3133,65), (2,3239,7), (3,118,51)]) bit_slice.30044: bits[1] = bit_slice(xbs_fraction__1, start=2, width=1, id=30044, pos=[(0,1590,40), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) not.30045: bits[1] = not(bit_slice.30034, id=30045, 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), (2,3239,7), (3,118,51)]) bit_slice.30010: bits[1] = bit_slice(xbs_fraction__1, start=6, width=1, id=30010, pos=[(0,1590,40), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.30022: bits[1] = bit_slice(xbs_fraction__1, start=4, width=1, id=30022, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) not.30023: bits[1] = not(bit_slice.30012, id=30023, 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), (2,3239,7), (3,118,51)]) not.30538: bits[1] = not(bit_slice.29999, id=30538, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction__1, start=14, width=1, id=29975, pos=[(2,3131,32), (2,3239,7), (3,118,51)]) bit_slice.29982: bits[1] = bit_slice(xbs_fraction__1, start=12, width=1, id=29982, pos=[(0,1590,40), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29984: bits[1] = bit_slice(xbs_fraction__1, start=10, width=1, id=29984, pos=[(0,1590,40), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) bit_slice.29997: bits[1] = bit_slice(xbs_fraction__1, start=8, width=1, id=29997, pos=[(0,1590,40), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) not.29998: bits[1] = not(bit_slice.29986, id=29998, 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), (2,3239,7), (3,118,51)]) not.29985: bits[1] = not(bit_slice.29978, id=29985, 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), (2,3239,7), (3,118,51)]) not.29983: bits[1] = not(bit_slice.29977, id=29983, 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), (2,3239,7), (3,118,51)]) not.29976: bits[1] = not(bit_slice.29974, id=29976, 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), (2,3239,7), (3,118,51)]) not.30069: bits[1] = not(bit_slice.30058, id=30069, 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), (2,3239,7), (3,118,51)]) nor.30055: bits[1] = nor(bit_slice.30044, not.30045, id=30055, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) or.30270: bits[1] = or(bit_slice.30010, bit_slice.29999, id=30270, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30032: bits[1] = nor(bit_slice.30022, bit_slice.30012, id=30032, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30031: bits[1] = nor(bit_slice.30022, not.30023, id=30031, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30020: bits[1] = nor(bit_slice.30010, bit_slice.29999, id=30020, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30539: bits[1] = nor(bit_slice.30010, not.30538, id=30539, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29980: bits[1] = nor(carry_bit, bit_slice.29974, id=29980, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29992: bits[1] = nor(bit_slice.29982, bit_slice.29977, id=29992, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) or.30271: bits[1] = or(bit_slice.29984, bit_slice.29978, id=30271, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30008: bits[1] = nor(bit_slice.29997, bit_slice.29986, id=30008, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30007: bits[1] = nor(bit_slice.29997, not.29998, id=30007, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29994: bits[1] = nor(bit_slice.29984, not.29985, id=29994, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) or.30272: bits[1] = or(carry_bit, bit_slice.29974, id=30272, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29991: bits[1] = nor(bit_slice.29982, not.29983, id=29991, pos=[(0,1590,22), (0,1595,64), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29979: bits[1] = nor(carry_bit, not.29976, id=29979, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30056: bits[1] = nor(bit_slice.30044, bit_slice.30034, id=30056, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30227: bits[2] = concat(literal.29924, not.30069, id=30227, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30549: bits[2] = concat(literal.29912, nor.30055, id=30549, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30072: bits[1] = nor(or.30270, nor.30032, id=30072, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30415: bits[2] = concat(literal.29924, nor.30031, id=30415, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30364: bits[2] = concat(nor.30020, nor.30539, id=30364, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) and.30036: bits[1] = and(nor.29980, nor.29992, id=30036, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.29995: bits[1] = nor(bit_slice.29984, bit_slice.29978, id=29995, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30050: bits[1] = nor(or.30271, nor.30008, id=30050, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30267: bits[2] = concat(literal.29924, nor.30007, id=30267, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30550: bits[2] = concat(literal.29912, nor.29994, id=30550, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30035: bits[1] = nor(or.30272, nor.29992, id=30035, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30418: bits[2] = concat(literal.29924, nor.29991, id=30418, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30551: bits[2] = concat(literal.29912, nor.29979, id=30551, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30089: bits[2] = priority_sel(nor.30056, cases=[concat.30227], default=concat.30549, id=30089, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30329: bits[2] = priority_sel(nor.30072, cases=[concat.30415], default=concat.30364, id=30329, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) not.30077: bits[1] = not(and.30036, id=30077, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) and.30051: bits[1] = and(nor.29995, nor.30008, id=30051, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30258: bits[2] = priority_sel(nor.30050, cases=[concat.30267], default=concat.30550, id=30258, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30335: bits[2] = priority_sel(nor.30035, cases=[concat.30418], default=concat.30551, id=30335, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) and.30073: bits[1] = and(nor.30020, nor.30032, id=30073, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30095: bits[3] = concat(literal.29924, priority_sel.30089, id=30095, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30425: bits[3] = concat(literal.29912, priority_sel.30329, id=30425, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) nor.30085: bits[1] = nor(not.30077, and.30051, id=30085, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30421: bits[3] = concat(literal.29924, priority_sel.30258, id=30421, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30426: bits[3] = concat(literal.29912, priority_sel.30335, id=30426, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30097: bits[3] = priority_sel(and.30073, cases=[concat.30095], default=concat.30425, id=30097, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) priority_sel.30341: bits[3] = priority_sel(nor.30085, cases=[concat.30421], default=concat.30426, id=30341, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) and.30086: bits[1] = and(and.30036, and.30051, id=30086, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30099: bits[4] = concat(literal.29924, priority_sel.30097, id=30099, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30427: bits[4] = concat(literal.29912, priority_sel.30341, id=30427, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) concat.30100: bits[16] = concat(literal.29912, xbs_fraction__1, id=30100, pos=[(2,3239,7), (3,118,51)]) leading_zeroes: bits[4] = priority_sel(and.30086, cases=[concat.30099], default=concat.30427, id=30101, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,118,51)]) cancel_fraction: bits[16] = shll(concat.30100, leading_zeroes, id=30102, pos=[(2,3140,26), (2,3239,7), (3,118,51)]) bit_slice.30103: bits[13] = bit_slice(xbs_fraction__1, start=2, width=13, id=30103, pos=[(2,3049,20), (2,3133,36), (2,3239,7), (3,118,51)]) or.30104: bits[1] = or(bit_slice.30034, bit_slice.30058, id=30104, pos=[(2,3049,40), (2,3133,36), (2,3239,7), (3,118,51)]) cancel_fraction__1: bits[14] = bit_slice(cancel_fraction, start=1, width=14, id=30105, pos=[(2,3239,7), (3,118,51)]) carry_fraction__1: bits[14] = concat(bit_slice.30103, or.30104, id=30106, pos=[(2,3049,20), (2,3133,36), (2,3239,7), (3,118,51)]) shifted_fraction: bits[14] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=30107, pos=[(2,3142,27), (2,3239,7), (3,118,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=30108, pos=[(2,3154,39), (2,3239,7), (3,118,51)]) fraction_shift__3: bits[3] = literal(value=4, id=30109, pos=[(2,3170,8), (2,3239,7), (3,118,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=30110, pos=[(2,3155,41), (2,3239,7), (3,118,51)]) literal.30111: bits[2] = literal(value=3, id=30111, pos=[(2,3156,68), (2,3239,7), (3,118,51)]) ugt.30112: bits[1] = ugt(normal_chunk, fraction_shift__3, id=30112, pos=[(2,3156,23), (2,3239,7), (3,118,51)]) eq.30113: bits[1] = eq(half_way_chunk, literal.30111, id=30113, pos=[(2,3156,50), (2,3239,7), (3,118,51)]) bit_slice.30468: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=30468) do_round_up: bits[1] = or(ugt.30112, eq.30113, id=30116, pos=[(2,3156,23), (2,3239,7), (3,118,51)]) concat.30469: bits[12] = concat(literal.29912, bit_slice.30468, id=30469) concat.30552: bits[12] = concat(literal.29928, do_round_up, id=30552) add.30438: bits[12] = add(concat.30469, concat.30552, id=30438) rounding_carry: bits[1] = bit_slice(add.30438, start=11, width=1, id=30460, pos=[(2,3164,41), (2,3239,7), (3,118,51)]) literal.30523: bits[13] = literal(value=0, id=30523, pos=[(2,3117,39), (2,3239,7), (3,118,51)]) bit_slice.30547: bits[1] = bit_slice(shrl.29953, start=1, width=1, id=30547, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) bit_slice.30548: bits[1] = bit_slice(shrl.29953, start=2, width=1, id=30548, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) concat.30120: bits[6] = concat(literal.29912, x_bexp__3, id=30120, pos=[(2,3239,7), (3,118,51)]) literal.30121: bits[6] = literal(value=1, id=30121, pos=[(2,3176,24), (2,3239,7), (3,118,51)]) concat.30479: bits[5] = concat(literal.29934, rounding_carry, id=30479, pos=[(2,3239,7), (3,118,51)]) concat.30123: bits[5] = concat(literal.29912, leading_zeroes, id=30123, pos=[(2,3239,7), (3,118,51)]) eq.30495: bits[1] = eq(add.30430, literal.30523, id=30495, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) nor.30534: bits[1] = nor(bit_slice.30547, bit_slice.30548, id=30534, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) nor.30535: bits[1] = nor(bit_slice.29958, sticky, id=30535, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) add.30124: bits[6] = add(concat.30120, literal.30121, id=30124, pos=[(2,3175,26), (2,3239,7), (3,118,51)]) sub.30125: bits[5] = sub(concat.30479, concat.30123, id=30125, pos=[(2,3175,26), (2,3239,7), (3,118,51)]) fraction_is_zero: bits[1] = and(eq.30495, nor.30534, nor.30535, id=30533, pos=[(2,3117,27), (2,3239,7), (3,118,51)]) wide_exponent_associative_element: bits[7] = concat(literal.29912, add.30124, id=30127, pos=[(2,3175,26), (2,3239,7), (3,118,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.30125, new_bit_count=7, id=30128, pos=[(2,3175,26), (2,3239,7), (3,118,51)]) not.30347: bits[1] = not(fraction_is_zero, id=30347, pos=[(2,3177,24), (2,3239,7), (3,118,51)]) wide_exponent: bits[7] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=30130, pos=[(2,3175,26), (2,3239,7), (3,118,51)]) sign_ext.30348: bits[7] = sign_ext(not.30347, new_bit_count=7, id=30348, pos=[(2,3177,24), (2,3239,7), (3,118,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.30348, id=30349, pos=[(2,3177,24), (2,3239,7), (3,118,51)]) bit_slice.30139: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=30139, pos=[(2,3180,27), (2,3239,7), (3,118,51)]) not.30350: bits[1] = not(bit_slice.30139, id=30350, pos=[(2,3180,24), (2,3239,7), (3,118,51)]) bit_slice.30140: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=30140, pos=[(2,3239,7), (3,118,51)]) sign_ext.30351: bits[6] = sign_ext(not.30350, new_bit_count=6, id=30351, pos=[(2,3180,24), (2,3239,7), (3,118,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=30132, pos=[(2,3193,39), (2,3239,7), (3,118,51)]) literal.30133: bits[10] = literal(value=0, id=30133, pos=[(2,3190,44), (2,3239,7), (3,118,51)]) wide_exponent__2: bits[6] = and(bit_slice.30140, sign_ext.30351, id=30352, pos=[(2,3180,24), (2,3239,7), (3,118,51)]) eq.30135: bits[1] = eq(x_bexp__3, MAX_EXPONENT, id=30135, pos=[(2,71,6), (2,3213,30), (2,3239,7), (3,118,51)]) eq.30136: bits[1] = eq(x_fraction__1, literal.30133, id=30136, pos=[(2,96,44), (2,3201,31), (2,3239,7), (3,118,51)]) eq.30137: bits[1] = eq(y_bexp__3, MAX_EXPONENT, id=30137, pos=[(2,71,6), (2,3213,64), (2,3239,7), (3,118,51)]) eq.30138: bits[1] = eq(y_fraction__3, literal.30133, id=30138, pos=[(2,96,44), (2,3201,65), (2,3239,7), (3,118,51)]) bit_slice.30154: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=30154, pos=[(2,3190,11), (2,3239,7), (3,118,51)]) not.30142: bits[1] = not(eq.30135, id=30142, pos=[(2,3205,29), (2,3239,7), (3,118,51)]) not.30143: bits[1] = not(eq.30136, id=30143, pos=[(2,3205,29), (2,3239,7), (3,118,51)]) x_sign__1: bits[1] = sel(overflow_detected, cases=[not.29907, tuple_index.29955], id=30198, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) not.30145: bits[1] = not(eq.30137, id=30145, pos=[(2,3206,29), (2,3239,7), (3,118,51)]) not.30146: bits[1] = not(eq.30138, id=30146, pos=[(2,3206,29), (2,3239,7), (3,118,51)]) y_sign__3: bits[1] = sel(overflow_detected, cases=[tuple_index.29955, not.29907], id=30199, pos=[(2,3088,17), (2,3239,7), (3,118,51)]) and.30161: bits[1] = and(eq.30135, eq.30136, id=30161, pos=[(2,96,6), (2,3201,31), (2,3239,7), (3,118,51)]) and.30162: bits[1] = and(eq.30137, eq.30138, id=30162, pos=[(2,96,6), (2,3201,65), (2,3239,7), (3,118,51)]) bit_slice.30163: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=30163, pos=[(2,3239,7), (3,118,51)]) or_reduce.30164: bits[1] = or_reduce(bit_slice.30154, id=30164, pos=[(2,3190,11), (2,3239,7), (3,118,51)]) bit_slice.30165: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=30165, pos=[(2,3190,11), (2,3239,7), (3,118,51)]) nor.30149: bits[1] = nor(not.30142, not.30143, x_sign__1, id=30149, pos=[(2,3205,29), (2,3239,7), (3,118,51)]) nor.30150: bits[1] = nor(not.30145, not.30146, y_sign__3, id=30150, pos=[(2,3206,29), (2,3239,7), (3,118,51)]) and.30151: bits[1] = and(eq.30135, eq.30136, x_sign__1, id=30151, pos=[(2,3211,29), (2,3239,7), (3,118,51)]) and.30152: bits[1] = and(eq.30137, eq.30138, y_sign__3, id=30152, pos=[(2,3212,29), (2,3239,7), (3,118,51)]) fraction_shift__2: bits[3] = literal(value=3, id=30155, pos=[(2,3170,8), (2,3239,7), (3,118,51)]) is_operand_inf: bits[1] = or(and.30161, and.30162, id=30173, pos=[(2,3201,31), (2,3239,7), (3,118,51)]) bit_slice.30174: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=30174, pos=[(2,3196,11), (2,3239,7), (3,118,51)]) and_reduce.30175: bits[1] = and_reduce(bit_slice.30163, id=30175, pos=[(2,3196,11), (2,3239,7), (3,118,51)]) nor.30176: bits[1] = nor(or_reduce.30164, bit_slice.30165, id=30176, pos=[(2,3190,11), (2,3239,7), (3,118,51)]) has_pos_inf: bits[1] = or(nor.30149, nor.30150, id=30158, pos=[(2,3205,29), (2,3239,7), (3,118,51)]) has_neg_inf: bits[1] = or(and.30151, and.30152, id=30159, pos=[(2,3211,29), (2,3239,7), (3,118,51)]) not.30221: bits[1] = not(tuple_index.29955, id=30221, pos=[(2,3119,22), (2,3239,7), (3,118,51)]) rounded_fraction: bits[15] = concat(add.30438, normal_chunk, id=30482) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=30166, pos=[(2,3170,8), (2,3239,7), (3,118,51)]) or.30181: bits[1] = or(is_operand_inf, bit_slice.30174, and_reduce.30175, nor.30176, id=30181, pos=[(2,3203,26), (2,3239,7), (3,118,51)]) nor.30218: bits[1] = nor(not.30142, eq.30136, id=30218, pos=[(2,71,6), (2,3213,30), (2,3239,7), (3,118,51)]) nor.30220: bits[1] = nor(not.30145, eq.30138, id=30220, pos=[(2,71,6), (2,3213,64), (2,3239,7), (3,118,51)]) and.30169: bits[1] = and(has_pos_inf, has_neg_inf, id=30169, pos=[(2,3214,25), (2,3239,7), (3,118,51)]) concat.30480: bits[2] = concat(bit_slice.30458, fraction_is_zero, id=30480, pos=[(2,3239,7), (3,118,51)]) nor.30222: bits[1] = nor(not.30221, y_sign__2, id=30222, pos=[(2,3119,22), (2,3239,7), (3,118,51)]) not.30172: bits[1] = not(y_sign__3, id=30172, pos=[(2,3120,25), (2,3239,7), (3,118,51)]) shrl.30177: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=30177, pos=[(2,3171,27), (2,3239,7), (3,118,51)]) not.30353: bits[1] = not(or.30181, id=30353, pos=[(2,3203,26), (2,3239,7), (3,118,51)]) is_result_nan: bits[1] = or(nor.30218, nor.30220, and.30169, id=30178, pos=[(2,3213,30), (2,3239,7), (3,118,51)]) result_sign: bits[1] = priority_sel(concat.30480, cases=[nor.30222, not.30172], default=y_sign__3, id=30179, pos=[(2,3239,7), (3,118,51)]) not.30180: bits[1] = not(has_pos_inf, id=30180, pos=[(2,3207,42), (2,3239,7), (3,118,51)]) result_fraction: bits[10] = bit_slice(shrl.30177, start=0, width=10, id=30182, pos=[(2,3239,7), (3,118,51)]) sign_ext.30354: bits[10] = sign_ext(not.30353, new_bit_count=10, id=30354, pos=[(2,3203,26), (2,3239,7), (3,118,51)]) not.30183: bits[1] = not(is_result_nan, id=30183, pos=[(2,3218,22), (2,3239,7), (3,118,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.30180], id=30184, pos=[(2,3207,22), (2,3239,7), (3,118,51)]) or.30185: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.30174, and_reduce.30175, id=30185, pos=[(2,3216,26), (2,3239,7), (3,118,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.30354, id=30355, pos=[(2,3203,26), (2,3239,7), (3,118,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=30187, pos=[(2,3215,30), (2,3239,7), (3,118,51)]) result_sign__2: bits[1] = and(not.30183, result_sign__1, id=30188, pos=[(2,3218,22), (2,3239,7), (3,118,51)]) result_exponent__2: bits[5] = sel(or.30185, cases=[bit_slice.30163, MAX_EXPONENT], id=30189, pos=[(2,3216,26), (2,3239,7), (3,118,51)]) result_fraction__4: bits[10] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=30190, pos=[(2,3217,26), (2,3239,7), (3,118,51)]) ret tuple.30191: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=30191, pos=[(2,3221,33), (2,3239,7), (3,118,51)]) }