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=29906, pos=[(2,3242,65), (3,118,51)]) literal.29910: bits[1] = literal(value=0, id=29910, 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=29911, pos=[(2,3091,59), (2,3243,7), (3,118,51)]) y__1_bexpnot__1: bits[5] = not(y_bexp__2, id=29912, pos=[(1,90,15), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) x_bexp_extended__2: bits[6] = concat(literal.29910, x_bexp__2, id=29913, 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.29910, y__1_bexpnot__1, id=29914, 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=29915, pos=[(0,1119,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=29916, pos=[(0,1121,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=29907, pos=[(2,3242,83), (3,118,51)]) tuple_index.29919: bits[10] = tuple_index(x, index=2, id=29919, 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=30192, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.29921: bits[5] = literal(value=0, id=29921, 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=30190, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) literal.29922: bits[1] = literal(value=1, id=29922, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) x_fraction__1: bits[10] = sel(overflow_detected, cases=[y_fraction__2, tuple_index.29919], id=30193, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.30438: bits[1] = ne(x_bexp__3, literal.29921, id=30438, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) y_fraction__3: bits[10] = sel(overflow_detected, cases=[tuple_index.29919, y_fraction__2], id=30191, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) ne.30437: bits[1] = ne(y_bexp__3, literal.29921, id=30437, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) nc: bits[1] = not(overflow_detected, id=29917, 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=29904, pos=[(2,3242,51), (3,118,51)]) fraction_x: bits[11] = concat(literal.29922, x_fraction__1, id=29943, pos=[(2,3095,22), (2,3243,7), (3,118,51)]) sign_ext.30306: bits[11] = sign_ext(ne.30438, new_bit_count=11, id=30306, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y: bits[11] = concat(literal.29922, y_fraction__3, id=29925, pos=[(2,3096,22), (2,3243,7), (3,118,51)]) sign_ext.30309: bits[11] = sign_ext(ne.30437, new_bit_count=11, id=30309, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) narrowed_result: bits[5] = bit_slice(full_result, start=0, width=5, id=29930, 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=29931, pos=[(1,94,32), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) literal.29932: bits[4] = literal(value=0, id=29932, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) not.29905: bits[1] = not(y_sign__2, id=29905, pos=[(2,3242,49), (3,118,51)]) tuple_index.29950: bits[1] = tuple_index(x, index=0, id=29950, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) fraction_x__1: bits[11] = and(fraction_x, sign_ext.30306, id=30307, pos=[(2,3099,21), (2,3243,7), (3,118,51)]) fraction_y__1: bits[11] = and(fraction_y, sign_ext.30309, id=30310, pos=[(2,3100,21), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=29928, pos=[(2,3104,17), (2,3243,7), (3,118,51)]) result: bits[5] = xor(narrowed_result, x_bexpor_mask__1, id=29934, pos=[(1,95,18), (2,3009,44), (2,3091,57), (2,3243,7), (3,118,51)]) concat.29935: bits[5] = concat(literal.29932, overflow_detected, id=29935, pos=[(2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) x_sign__1: bits[1] = sel(overflow_detected, cases=[not.29905, tuple_index.29950], id=30194, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) y_sign__3: bits[1] = sel(overflow_detected, cases=[tuple_index.29950, not.29905], id=30195, pos=[(2,3092,17), (2,3243,7), (3,118,51)]) wide_x_squeezed: bits[12] = concat(literal.29910, fraction_x__1, id=29952, 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=29947, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) shift: bits[5] = add(result, concat.29935, id=29941, pos=[(1,54,7), (2,3010,68), (2,3091,57), (2,3243,7), (3,118,51)]) literal.29940: bits[15] = literal(value=32767, id=29940, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) xor.29960: bits[1] = xor(x_sign__1, y_sign__3, id=29960, pos=[(2,3110,23), (2,3243,7), (3,118,51)]) neg.29957: bits[12] = neg(wide_x_squeezed, id=29957, pos=[(2,3110,41), (2,3243,7), (3,118,51)]) shrl.29953: bits[14] = shrl(wide_y_shift_bits, shift, id=29953, pos=[(2,3116,31), (2,3243,7), (3,118,51)]) not.30481: bits[10] = not(y_fraction__3, id=30481, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) shll.29945: bits[15] = shll(literal.29940, shift, id=29945, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) xddend_x__2_squeezed: bits[12] = sel(xor.29960, cases=[wide_x_squeezed, neg.29957], id=30313, pos=[(2,3110,19), (2,3243,7), (3,118,51)]) literal.30207: bits[2] = literal(value=0, id=30207, pos=[(2,3243,7), (3,118,51)]) bit_slice.30473: bits[11] = bit_slice(shrl.29953, start=3, width=11, id=30473, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.30484: bits[11] = concat(literal.29910, not.30481, id=30484, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) not.30441: bits[11] = not(sign_ext.30309, id=30441, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.29949: bits[11] = bit_slice(shll.29945, start=3, width=11, id=29949, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) sign_ext.30459: bits[13] = sign_ext(xddend_x__2_squeezed, new_bit_count=13, id=30459, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) concat.30461: bits[13] = concat(literal.30207, bit_slice.30473, id=30461, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) nor.30442: bits[11] = nor(concat.30484, not.30441, bit_slice.29949, id=30442, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) literal.29926: bits[11] = literal(value=0, id=29926, pos=[(2,3099,49), (2,3243,7), (3,118,51)]) add.30426: bits[13] = add(sign_ext.30459, concat.30461, id=30426, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.29958: bits[1] = bit_slice(shrl.29953, start=0, width=1, id=29958, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) sticky: bits[1] = ne(nor.30442, literal.29926, id=29959, pos=[(0,1501,17), (0,1528,22), (2,3115,35), (2,3243,7), (3,118,51)]) bit_slice.30452: bits[12] = bit_slice(add.30426, start=0, width=12, id=30452, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.30474: bits[2] = bit_slice(shrl.29953, start=1, width=2, id=30474, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) or.29964: bits[1] = or(bit_slice.29958, sticky, id=29964, pos=[(2,3053,40), (2,3116,30), (2,3243,7), (3,118,51)]) concat.30479: bits[15] = concat(bit_slice.30452, bit_slice.30474, or.29964, id=30479, pos=[(2,3120,20), (2,3243,7), (3,118,51)]) bit_slice.30454: bits[1] = bit_slice(add.30426, start=12, width=1, id=30454, pos=[(2,3130,12), (2,3243,7), (3,118,51)]) neg.29972: bits[15] = neg(concat.30479, id=29972, pos=[(2,3130,46), (2,3243,7), (3,118,51)]) xbs_fraction__1: bits[15] = sel(bit_slice.30454, cases=[concat.30479, neg.29972], id=29973, pos=[(2,3130,9), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) bit_slice.30058: bits[1] = bit_slice(xbs_fraction__1, start=0, width=1, id=30058, pos=[(0,1590,40), (0,1595,64), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) not.30534: bits[1] = not(bit_slice.29999, id=30534, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction__1, start=14, width=1, id=29975, pos=[(0,1590,40), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) not.30201: bits[1] = not(bit_slice.30058, id=30201, pos=[(0,1590,22), (0,1595,64), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) or.30266: bits[1] = or(bit_slice.30010, bit_slice.29999, id=30266, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) nor.30532: bits[1] = nor(bit_slice.30010, bit_slice.29999, id=30532, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.30535: bits[1] = nor(bit_slice.30010, not.30534, id=30535, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) or.30267: bits[1] = or(bit_slice.29984, bit_slice.29978, id=30267, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) or.30268: bits[1] = or(carry_bit, bit_slice.29974, id=30268, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) concat.30223: bits[2] = concat(literal.29922, not.30201, id=30223, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30545: bits[2] = concat(literal.29910, nor.30055, id=30545, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.30072: bits[1] = nor(or.30266, nor.30032, id=30072, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30411: bits[2] = concat(literal.29922, nor.30031, id=30411, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30360: bits[2] = concat(nor.30532, nor.30535, id=30360, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) nor.30050: bits[1] = nor(or.30267, nor.30008, id=30050, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30263: bits[2] = concat(literal.29922, nor.30007, id=30263, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30546: bits[2] = concat(literal.29910, nor.29994, id=30546, pos=[(0,1590,22), (0,1595,34), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) nor.30035: bits[1] = nor(or.30268, nor.29992, id=30035, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30414: bits[2] = concat(literal.29922, nor.29991, id=30414, pos=[(0,1540,24), (0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30547: bits[2] = concat(literal.29910, nor.29979, id=30547, pos=[(0,1590,22), (0,1595,34), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30089: bits[2] = priority_sel(nor.30056, cases=[concat.30223], default=concat.30545, id=30089, pos=[(0,1595,22), (0,1600,64), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30325: bits[2] = priority_sel(nor.30072, cases=[concat.30411], default=concat.30360, id=30325, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30254: bits[2] = priority_sel(nor.30050, cases=[concat.30263], default=concat.30546, id=30254, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30331: bits[2] = priority_sel(nor.30035, cases=[concat.30414], default=concat.30547, id=30331, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) and.30073: bits[1] = and(nor.30532, nor.30032, id=30073, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30095: bits[3] = concat(literal.29922, priority_sel.30089, id=30095, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30421: bits[3] = concat(literal.29910, priority_sel.30325, id=30421, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) concat.30417: bits[3] = concat(literal.29922, priority_sel.30254, id=30417, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30422: bits[3] = concat(literal.29910, priority_sel.30331, id=30422, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30097: bits[3] = priority_sel(and.30073, cases=[concat.30095], default=concat.30421, id=30097, pos=[(0,1600,22), (0,1605,64), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) priority_sel.30337: bits[3] = priority_sel(nor.30085, cases=[concat.30417], default=concat.30422, id=30337, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,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,3141,34), (2,3243,7), (3,118,51)]) concat.30099: bits[4] = concat(literal.29922, priority_sel.30097, id=30099, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30423: bits[4] = concat(literal.29910, priority_sel.30337, id=30423, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) concat.30100: bits[16] = concat(literal.29910, xbs_fraction__1, id=30100, pos=[(2,3243,7), (3,118,51)]) leading_zeroes: bits[4] = priority_sel(and.30086, cases=[concat.30099], default=concat.30423, id=30101, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3141,34), (2,3243,7), (3,118,51)]) cancel_fraction: bits[16] = shll(concat.30100, leading_zeroes, id=30102, pos=[(2,3144,26), (2,3243,7), (3,118,51)]) bit_slice.30103: bits[13] = bit_slice(xbs_fraction__1, start=2, width=13, id=30103, pos=[(2,3053,20), (2,3137,36), (2,3243,7), (3,118,51)]) or.30104: bits[1] = or(bit_slice.30034, bit_slice.30058, id=30104, 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=30105, pos=[(2,3243,7), (3,118,51)]) carry_fraction__1: bits[14] = concat(bit_slice.30103, or.30104, id=30106, 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=30107, pos=[(2,3146,27), (2,3243,7), (3,118,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=30108, pos=[(2,3158,39), (2,3243,7), (3,118,51)]) fraction_shift__3: bits[3] = literal(value=4, id=30109, pos=[(2,3160,38), (2,3243,7), (3,118,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=30110, pos=[(2,3159,41), (2,3243,7), (3,118,51)]) literal.30111: bits[2] = literal(value=3, id=30111, pos=[(2,3160,68), (2,3243,7), (3,118,51)]) ugt.30112: bits[1] = ugt(normal_chunk, fraction_shift__3, id=30112, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) eq.30113: bits[1] = eq(half_way_chunk, literal.30111, id=30113, pos=[(2,3160,50), (2,3243,7), (3,118,51)]) bit_slice.30464: bits[11] = bit_slice(shifted_fraction, start=3, width=11, id=30464) do_round_up: bits[1] = or(ugt.30112, eq.30113, id=30116, pos=[(2,3160,23), (2,3243,7), (3,118,51)]) concat.30465: bits[12] = concat(literal.29910, bit_slice.30464, id=30465) concat.30548: bits[12] = concat(literal.29926, do_round_up, id=30548) add.30434: bits[12] = add(concat.30465, concat.30548, id=30434) rounding_carry: bits[1] = bit_slice(add.30434, start=11, width=1, id=30456, pos=[(2,3168,41), (2,3243,7), (3,118,51)]) literal.30519: bits[13] = literal(value=0, id=30519, pos=[(2,3121,39), (2,3243,7), (3,118,51)]) bit_slice.30543: bits[1] = bit_slice(shrl.29953, start=1, width=1, id=30543, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) bit_slice.30544: bits[1] = bit_slice(shrl.29953, start=2, width=1, id=30544, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) concat.30120: bits[6] = concat(literal.29910, x_bexp__3, id=30120, pos=[(2,3243,7), (3,118,51)]) literal.30121: bits[6] = literal(value=1, id=30121, pos=[(2,3180,24), (2,3243,7), (3,118,51)]) concat.30475: bits[5] = concat(literal.29932, rounding_carry, id=30475, pos=[(2,3243,7), (3,118,51)]) concat.30123: bits[5] = concat(literal.29910, leading_zeroes, id=30123, pos=[(2,3243,7), (3,118,51)]) eq.30491: bits[1] = eq(add.30426, literal.30519, id=30491, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.30530: bits[1] = nor(bit_slice.30543, bit_slice.30544, id=30530, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) nor.30531: bits[1] = nor(bit_slice.29958, sticky, id=30531, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) add.30124: bits[6] = add(concat.30120, literal.30121, id=30124, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sub.30125: bits[5] = sub(concat.30475, concat.30123, id=30125, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) fraction_is_zero: bits[1] = and(eq.30491, nor.30530, nor.30531, id=30529, pos=[(2,3121,27), (2,3243,7), (3,118,51)]) wide_exponent_associative_element: bits[7] = concat(literal.29910, add.30124, id=30127, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) wide_exponent_associative_element__1: bits[7] = sign_ext(sub.30125, new_bit_count=7, id=30128, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) not.30343: bits[1] = not(fraction_is_zero, id=30343, 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=30130, pos=[(2,3179,26), (2,3243,7), (3,118,51)]) sign_ext.30344: bits[7] = sign_ext(not.30343, new_bit_count=7, id=30344, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) wide_exponent__1: bits[7] = and(wide_exponent, sign_ext.30344, id=30345, pos=[(2,3181,24), (2,3243,7), (3,118,51)]) bit_slice.30139: bits[1] = bit_slice(wide_exponent__1, start=6, width=1, id=30139, pos=[(2,3184,27), (2,3243,7), (3,118,51)]) not.30346: bits[1] = not(bit_slice.30139, id=30346, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) bit_slice.30140: bits[6] = bit_slice(wide_exponent__1, start=0, width=6, id=30140, pos=[(2,3243,7), (3,118,51)]) sign_ext.30347: bits[6] = sign_ext(not.30346, new_bit_count=6, id=30347, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) MAX_EXPONENT: bits[5] = literal(value=31, id=30132, pos=[(2,96,29), (2,3209,29), (2,3243,7), (3,118,51)]) literal.30133: bits[10] = literal(value=0, id=30133, pos=[(2,96,57), (2,3209,29), (2,3243,7), (3,118,51)]) wide_exponent__2: bits[6] = and(bit_slice.30140, sign_ext.30347, id=30348, pos=[(2,3184,24), (2,3243,7), (3,118,51)]) eq.30135: bits[1] = eq(x_bexp__3, MAX_EXPONENT, id=30135, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) eq.30136: bits[1] = eq(x_fraction__1, literal.30133, id=30136, pos=[(2,96,44), (2,3209,29), (2,3243,7), (3,118,51)]) eq.30137: bits[1] = eq(y_bexp__3, MAX_EXPONENT, id=30137, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) eq.30138: bits[1] = eq(y_fraction__3, literal.30133, id=30138, pos=[(2,96,44), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.30152: bits[5] = bit_slice(wide_exponent__2, start=1, width=5, id=30152, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) not.30142: bits[1] = not(eq.30135, id=30142, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.30143: bits[1] = not(eq.30136, id=30143, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) not.30144: bits[1] = not(eq.30137, id=30144, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) not.30145: bits[1] = not(eq.30138, id=30145, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.30159: bits[1] = and(eq.30135, eq.30136, id=30159, pos=[(2,96,6), (2,3209,29), (2,3243,7), (3,118,51)]) and.30160: bits[1] = and(eq.30137, eq.30138, id=30160, pos=[(2,96,6), (2,3210,29), (2,3243,7), (3,118,51)]) bit_slice.30161: bits[5] = bit_slice(wide_exponent__2, start=0, width=5, id=30161, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) or_reduce.30162: bits[1] = or_reduce(bit_slice.30152, id=30162, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) bit_slice.30163: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=30163, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) nor.30147: bits[1] = nor(not.30142, not.30143, x_sign__1, id=30147, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) nor.30148: bits[1] = nor(not.30144, not.30145, y_sign__3, id=30148, pos=[(2,3210,29), (2,3243,7), (3,118,51)]) and.30149: bits[1] = and(eq.30135, eq.30136, x_sign__1, id=30149, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) and.30150: bits[1] = and(eq.30137, eq.30138, y_sign__3, id=30150, pos=[(2,3216,29), (2,3243,7), (3,118,51)]) fraction_shift__2: bits[3] = literal(value=3, id=30153, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) is_operand_inf: bits[1] = or(and.30159, and.30160, id=30171, pos=[(2,3205,31), (2,3243,7), (3,118,51)]) bit_slice.30172: bits[1] = bit_slice(wide_exponent__2, start=5, width=1, id=30172, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) and_reduce.30173: bits[1] = and_reduce(bit_slice.30161, id=30173, pos=[(2,3202,11), (2,3243,7), (3,118,51)]) nor.30174: bits[1] = nor(or_reduce.30162, bit_slice.30163, id=30174, pos=[(2,3194,11), (2,3243,7), (3,118,51)]) has_pos_inf: bits[1] = or(nor.30147, nor.30148, id=30156, pos=[(2,3209,29), (2,3243,7), (3,118,51)]) has_neg_inf: bits[1] = or(and.30149, and.30150, id=30157, pos=[(2,3215,29), (2,3243,7), (3,118,51)]) rounded_fraction: bits[15] = concat(add.30434, normal_chunk, id=30478) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=30164, pos=[(2,3174,8), (2,3243,7), (3,118,51)]) or.30179: bits[1] = or(is_operand_inf, bit_slice.30172, and_reduce.30173, nor.30174, id=30179, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) nor.30216: bits[1] = nor(not.30142, eq.30136, id=30216, pos=[(2,71,6), (2,3217,30), (2,3243,7), (3,118,51)]) nor.30218: bits[1] = nor(not.30144, eq.30138, id=30218, pos=[(2,71,6), (2,3217,64), (2,3243,7), (3,118,51)]) and.30167: bits[1] = and(has_pos_inf, has_neg_inf, id=30167, pos=[(2,3218,25), (2,3243,7), (3,118,51)]) concat.30476: bits[2] = concat(bit_slice.30454, fraction_is_zero, id=30476, pos=[(2,3243,7), (3,118,51)]) and.30169: bits[1] = and(x_sign__1, y_sign__3, id=30169, pos=[(2,3123,22), (2,3243,7), (3,118,51)]) not.30170: bits[1] = not(y_sign__3, id=30170, pos=[(2,3210,59), (2,3243,7), (3,118,51)]) shrl.30175: bits[15] = shrl(rounded_fraction, fraction_shift__1, id=30175, pos=[(2,3175,27), (2,3243,7), (3,118,51)]) not.30349: bits[1] = not(or.30179, id=30349, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) is_result_nan: bits[1] = or(nor.30216, nor.30218, and.30167, id=30176, pos=[(2,3217,30), (2,3243,7), (3,118,51)]) result_sign: bits[1] = priority_sel(concat.30476, cases=[and.30169, not.30170], default=y_sign__3, id=30177, pos=[(2,3243,7), (3,118,51)]) not.30178: bits[1] = not(has_pos_inf, id=30178, pos=[(2,3211,42), (2,3243,7), (3,118,51)]) result_fraction: bits[10] = bit_slice(shrl.30175, start=0, width=10, id=30180, pos=[(2,3243,7), (3,118,51)]) sign_ext.30350: bits[10] = sign_ext(not.30349, new_bit_count=10, id=30350, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) not.30181: bits[1] = not(is_result_nan, id=30181, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.30178], id=30182, pos=[(2,3211,22), (2,3243,7), (3,118,51)]) or.30183: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.30172, and_reduce.30173, id=30183, pos=[(2,3220,26), (2,3243,7), (3,118,51)]) result_fraction__3: bits[10] = and(result_fraction, sign_ext.30350, id=30351, pos=[(2,3207,26), (2,3243,7), (3,118,51)]) FRACTION_HIGH_BIT: bits[10] = literal(value=512, id=30185, pos=[(2,3219,30), (2,3243,7), (3,118,51)]) result_sign__2: bits[1] = and(not.30181, result_sign__1, id=30186, pos=[(2,3222,22), (2,3243,7), (3,118,51)]) result_exponent__2: bits[5] = sel(or.30183, cases=[bit_slice.30161, MAX_EXPONENT], id=30187, 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=30188, pos=[(2,3221,26), (2,3243,7), (3,118,51)]) ret tuple.30189: (bits[1], bits[5], bits[10]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=30189, pos=[(2,3225,33), (2,3243,7), (3,118,51)]) }