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__sub(x: (bits[1], bits[8], bits[7]) id=853, y: (bits[1], bits[8], bits[7]) id=854) -> (bits[1], bits[8], bits[7]) { y_bexp__2: bits[8] = tuple_index(y, index=1, id=29844, pos=[(2,3238,65), (3,164,51)]) literal.29848: bits[1] = literal(value=0, id=29848, pos=[(2,3239,7), (3,164,51)]) x_bexp__2: bits[8] = tuple_index(x, index=1, id=29849, pos=[(2,3087,59), (2,3239,7), (3,164,51)]) y__1_bexpnot__1: bits[8] = not(y_bexp__2, id=29850, pos=[(1,90,15), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) x_bexp_extended__2: bits[9] = concat(literal.29848, x_bexp__2, id=29851, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) y__1_bexpnot_extended__1: bits[9] = concat(literal.29848, y__1_bexpnot__1, id=29852, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) full_result: bits[9] = add(x_bexp_extended__2, y__1_bexpnot_extended__1, id=29853, pos=[(0,1119,45), (1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) overflow_detected: bits[1] = bit_slice(full_result, start=8, width=1, id=29854, pos=[(0,1121,49), (1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) y_fraction__2: bits[7] = tuple_index(y, index=2, id=29845, pos=[(2,3238,83), (3,164,51)]) tuple_index.29857: bits[7] = tuple_index(x, index=2, id=29857, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) x_bexp__3: bits[8] = sel(overflow_detected, cases=[y_bexp__2, x_bexp__2], id=30112, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) literal.29859: bits[8] = literal(value=0, id=29859, pos=[(2,3095,34), (2,3239,7), (3,164,51)]) y_bexp__3: bits[8] = sel(overflow_detected, cases=[x_bexp__2, y_bexp__2], id=30110, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) literal.29860: bits[1] = literal(value=1, id=29860, pos=[(2,3091,22), (2,3239,7), (3,164,51)]) x_fraction__1: bits[7] = sel(overflow_detected, cases=[y_fraction__2, tuple_index.29857], id=30113, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) ne.30323: bits[1] = ne(x_bexp__3, literal.29859, id=30323, pos=[(2,3095,21), (2,3239,7), (3,164,51)]) y_fraction__3: bits[7] = sel(overflow_detected, cases=[tuple_index.29857, y_fraction__2], id=30111, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) ne.30322: bits[1] = ne(y_bexp__3, literal.29859, id=30322, pos=[(2,3096,21), (2,3239,7), (3,164,51)]) nc: bits[1] = not(overflow_detected, id=29855, pos=[(1,92,19), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) fraction_x: bits[8] = concat(literal.29860, x_fraction__1, id=29880, pos=[(2,3091,22), (2,3239,7), (3,164,51)]) sign_ext.30200: bits[8] = sign_ext(ne.30323, new_bit_count=8, id=30200, pos=[(2,3095,21), (2,3239,7), (3,164,51)]) fraction_y: bits[8] = concat(literal.29860, y_fraction__3, id=29863, pos=[(2,3092,22), (2,3239,7), (3,164,51)]) sign_ext.30203: bits[8] = sign_ext(ne.30322, new_bit_count=8, id=30203, pos=[(2,3096,21), (2,3239,7), (3,164,51)]) narrowed_result: bits[8] = bit_slice(full_result, start=0, width=8, id=29867, pos=[(1,91,63), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) x_bexpor_mask__1: bits[8] = sign_ext(nc, new_bit_count=8, id=29868, pos=[(1,94,32), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) literal.29869: bits[7] = literal(value=0, id=29869, pos=[(2,3190,44), (2,3239,7), (3,164,51)]) y_sign__2: bits[1] = tuple_index(y, index=0, id=29842, pos=[(2,3238,51), (3,164,51)]) fraction_x__1: bits[8] = and(fraction_x, sign_ext.30200, id=30201, pos=[(2,3095,21), (2,3239,7), (3,164,51)]) fraction_y__1: bits[8] = and(fraction_y, sign_ext.30203, id=30204, pos=[(2,3096,21), (2,3239,7), (3,164,51)]) xddend_x__2_squeezed_const_lsb_bits: bits[3] = literal(value=0, id=30209, pos=[(2,3106,19), (2,3239,7), (3,164,51)]) result: bits[8] = xor(narrowed_result, x_bexpor_mask__1, id=29871, pos=[(1,95,18), (2,3005,44), (2,3087,57), (2,3239,7), (3,164,51)]) concat.29872: bits[8] = concat(literal.29869, overflow_detected, id=29872, pos=[(2,3006,68), (2,3087,57), (2,3239,7), (3,164,51)]) tuple_index.29890: bits[1] = tuple_index(x, index=0, id=29890, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) not.29843: bits[1] = not(y_sign__2, id=29843, pos=[(2,3238,49), (3,164,51)]) wide_x_squeezed: bits[9] = concat(literal.29848, fraction_x__1, id=30294, pos=[(2,3099,17), (2,3239,7), (3,164,51)]) wide_y_shift_bits: bits[11] = concat(fraction_y__1, xddend_x__2_squeezed_const_lsb_bits, id=29884, pos=[(2,3112,31), (2,3239,7), (3,164,51)]) shift: bits[8] = add(result, concat.29872, id=29878, pos=[(1,54,7), (2,3006,68), (2,3087,57), (2,3239,7), (3,164,51)]) literal.29877: bits[12] = literal(value=4095, id=29877, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) xor.29895: bits[1] = xor(tuple_index.29890, not.29843, id=29895, pos=[(2,3106,23), (2,3239,7), (3,164,51)]) neg.29892: bits[9] = neg(wide_x_squeezed, id=29892, pos=[(2,3106,41), (2,3239,7), (3,164,51)]) shrl.29888: bits[11] = shrl(wide_y_shift_bits, shift, id=29888, pos=[(2,3112,31), (2,3239,7), (3,164,51)]) not.30368: bits[7] = not(y_fraction__3, id=30368, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) shll.29882: bits[12] = shll(literal.29877, shift, id=29882, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) xddend_x__2_squeezed: bits[9] = sel(xor.29895, cases=[wide_x_squeezed, neg.29892], id=30207, pos=[(2,3106,19), (2,3239,7), (3,164,51)]) literal.30123: bits[2] = literal(value=0, id=30123, pos=[(2,3239,7), (3,164,51)]) bit_slice.30360: bits[8] = bit_slice(shrl.29888, start=3, width=8, id=30360, pos=[(2,3116,20), (2,3239,7), (3,164,51)]) concat.30371: bits[8] = concat(literal.29848, not.30368, id=30371, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) not.30326: bits[8] = not(sign_ext.30203, id=30326, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) bit_slice.29886: bits[8] = bit_slice(shll.29882, start=3, width=8, id=29886, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) sign_ext.30345: bits[10] = sign_ext(xddend_x__2_squeezed, new_bit_count=10, id=30345, pos=[(2,3116,20), (2,3239,7), (3,164,51)]) concat.30347: bits[10] = concat(literal.30123, bit_slice.30360, id=30347, pos=[(2,3116,20), (2,3239,7), (3,164,51)]) nor.30327: bits[8] = nor(concat.30371, not.30326, bit_slice.29886, id=30327, pos=[(0,1411,4), (0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) add.30311: bits[10] = add(sign_ext.30345, concat.30347, id=30311, pos=[(2,3116,20), (2,3239,7), (3,164,51)]) bit_slice.29893: bits[1] = bit_slice(shrl.29888, start=0, width=1, id=29893, pos=[(2,3049,40), (2,3112,30), (2,3239,7), (3,164,51)]) sticky: bits[1] = ne(nor.30327, literal.29859, id=29894, pos=[(0,1501,17), (0,1528,22), (2,3111,35), (2,3239,7), (3,164,51)]) bit_slice.30338: bits[9] = bit_slice(add.30311, start=0, width=9, id=30338, pos=[(2,3126,9), (2,3239,7), (3,164,51)]) bit_slice.30361: bits[2] = bit_slice(shrl.29888, start=1, width=2, id=30361, pos=[(2,3116,20), (2,3239,7), (3,164,51)]) or.29899: bits[1] = or(bit_slice.29893, sticky, id=29899, pos=[(2,3049,40), (2,3112,30), (2,3239,7), (3,164,51)]) concat.30366: bits[12] = concat(bit_slice.30338, bit_slice.30361, or.29899, id=30366, pos=[(2,3126,9), (2,3239,7), (3,164,51)]) bit_slice.30340: bits[1] = bit_slice(add.30311, start=9, width=1, id=30340, pos=[(2,3118,47), (2,3239,7), (3,164,51)]) neg.29907: bits[12] = neg(concat.30366, id=29907, pos=[(2,3126,46), (2,3239,7), (3,164,51)]) xbs_fraction__1: bits[12] = sel(bit_slice.30340, cases=[concat.30366, neg.29907], id=29908, pos=[(2,3126,9), (2,3239,7), (3,164,51)]) bit_slice.29921: bits[1] = bit_slice(xbs_fraction__1, start=4, width=1, id=29921, 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,164,51)]) bit_slice.29913: bits[1] = bit_slice(xbs_fraction__1, start=6, width=1, id=29913, 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,164,51)]) bit_slice.29912: bits[1] = bit_slice(xbs_fraction__1, start=8, width=1, id=29912, 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,164,51)]) bit_slice.29909: bits[1] = bit_slice(xbs_fraction__1, start=10, width=1, id=29909, 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,164,51)]) carry_bit: bits[1] = bit_slice(xbs_fraction__1, start=11, width=1, id=29910, pos=[(2,3131,32), (2,3239,7), (3,164,51)]) bit_slice.29917: bits[1] = bit_slice(xbs_fraction__1, start=9, width=1, id=29917, 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,164,51)]) bit_slice.29919: bits[1] = bit_slice(xbs_fraction__1, start=7, width=1, id=29919, 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,164,51)]) bit_slice.29932: bits[1] = bit_slice(xbs_fraction__1, start=5, width=1, id=29932, 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,164,51)]) not.29933: bits[1] = not(bit_slice.29921, id=29933, 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,164,51)]) not.29920: bits[1] = not(bit_slice.29913, id=29920, 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,164,51)]) not.29918: bits[1] = not(bit_slice.29912, id=29918, 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,164,51)]) not.29911: bits[1] = not(bit_slice.29909, id=29911, 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,164,51)]) bit_slice.29945: bits[1] = bit_slice(xbs_fraction__1, start=3, width=1, id=29945, 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,164,51)]) bit_slice.29934: bits[1] = bit_slice(xbs_fraction__1, start=2, width=1, id=29934, 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,164,51)]) bit_slice.29957: bits[1] = bit_slice(xbs_fraction__1, start=1, width=1, id=29957, 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,164,51)]) bit_slice.29947: bits[1] = bit_slice(xbs_fraction__1, start=0, width=1, id=29947, pos=[(2,3133,65), (2,3239,7), (3,164,51)]) nor.29915: bits[1] = nor(carry_bit, bit_slice.29909, id=29915, 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,164,51)]) nor.29927: bits[1] = nor(bit_slice.29917, bit_slice.29912, id=29927, 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,164,51)]) or.30167: bits[1] = or(bit_slice.29919, bit_slice.29913, id=30167, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) nor.29943: bits[1] = nor(bit_slice.29932, bit_slice.29921, id=29943, 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,164,51)]) nor.29942: bits[1] = nor(bit_slice.29932, not.29933, id=29942, 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,164,51)]) nor.29929: bits[1] = nor(bit_slice.29919, not.29920, id=29929, 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,164,51)]) or.30168: bits[1] = or(carry_bit, bit_slice.29909, id=30168, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) nor.29926: bits[1] = nor(bit_slice.29917, not.29918, id=29926, 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,164,51)]) nor.29914: bits[1] = nor(carry_bit, not.29911, id=29914, 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,164,51)]) or.30166: bits[1] = or(bit_slice.29945, bit_slice.29934, id=30166, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) nor.29967: bits[1] = nor(bit_slice.29957, bit_slice.29947, id=29967, 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,164,51)]) nor.29955: bits[1] = nor(bit_slice.29945, bit_slice.29934, id=29955, 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,164,51)]) not.29958: bits[1] = not(bit_slice.29947, id=29958, 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,164,51)]) not.30418: bits[1] = not(bit_slice.29934, id=30418, 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,164,51)]) and.29970: bits[1] = and(nor.29915, nor.29927, id=29970, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) nor.29930: bits[1] = nor(bit_slice.29919, bit_slice.29913, id=29930, 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,164,51)]) nor.29982: bits[1] = nor(or.30167, nor.29943, id=29982, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30163: bits[2] = concat(literal.29860, nor.29942, id=30163, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30428: bits[2] = concat(literal.29848, nor.29929, id=30428, 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,164,51)]) nor.29969: bits[1] = nor(or.30168, nor.29927, id=29969, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30297: bits[2] = concat(literal.29860, nor.29926, id=30297, 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,164,51)]) concat.30429: bits[2] = concat(literal.29848, nor.29914, id=30429, 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,164,51)]) nor.29996: bits[1] = nor(or.30166, nor.29967, id=29996, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) and.29997: bits[1] = and(nor.29955, nor.29967, id=29997, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) nor.29966: bits[1] = nor(bit_slice.29957, not.29958, id=29966, 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,164,51)]) nor.30419: bits[1] = nor(bit_slice.29945, not.30418, id=30419, 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,164,51)]) not.29999: bits[1] = not(and.29970, id=29999, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) and.29983: bits[1] = and(nor.29930, nor.29943, id=29983, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) priority_sel.30156: bits[2] = priority_sel(nor.29982, cases=[concat.30163], default=concat.30428, id=30156, pos=[(0,1595,22), (0,1600,64), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) priority_sel.30217: bits[2] = priority_sel(nor.29969, cases=[concat.30297], default=concat.30429, id=30217, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30001: bits[2] = concat(nor.29996, and.29997, id=30001, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30303: bits[2] = concat(literal.29860, nor.29966, id=30303, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30246: bits[2] = concat(nor.29955, nor.30419, id=30246, 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,164,51)]) nor.30005: bits[1] = nor(not.29999, and.29983, id=30005, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30300: bits[3] = concat(literal.29860, priority_sel.30156, id=30300, pos=[(0,1540,24), (0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30307: bits[3] = concat(literal.29848, priority_sel.30217, id=30307, pos=[(0,1595,22), (0,1600,34), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) priority_sel.30250: bits[2] = priority_sel(concat.30001, cases=[literal.30123, concat.30303], default=concat.30246, id=30250, pos=[(0,1595,22), (0,1600,34), (0,1605,64), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) priority_sel.30223: bits[3] = priority_sel(nor.30005, cases=[concat.30300], default=concat.30307, id=30223, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) and.30006: bits[1] = and(and.29970, and.29983, id=30006, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30305: bits[4] = concat(literal.29860, and.29997, priority_sel.30250, id=30305, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30308: bits[4] = concat(literal.29848, priority_sel.30223, id=30308, pos=[(0,1600,22), (0,1605,34), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) concat.30019: bits[13] = concat(literal.29848, xbs_fraction__1, id=30019, pos=[(2,3239,7), (3,164,51)]) leading_zeroes: bits[4] = priority_sel(and.30006, cases=[concat.30305], default=concat.30308, id=30020, pos=[(0,1605,22), (0,1644,30), (0,1707,13), (2,3137,34), (2,3239,7), (3,164,51)]) cancel_fraction: bits[13] = shll(concat.30019, leading_zeroes, id=30021, pos=[(2,3140,26), (2,3239,7), (3,164,51)]) bit_slice.30022: bits[10] = bit_slice(xbs_fraction__1, start=2, width=10, id=30022, pos=[(2,3049,20), (2,3133,36), (2,3239,7), (3,164,51)]) or.30023: bits[1] = or(bit_slice.29957, bit_slice.29947, id=30023, pos=[(2,3049,40), (2,3133,36), (2,3239,7), (3,164,51)]) cancel_fraction__1: bits[11] = bit_slice(cancel_fraction, start=1, width=11, id=30024, pos=[(2,3239,7), (3,164,51)]) carry_fraction__1: bits[11] = concat(bit_slice.30022, or.30023, id=30025, pos=[(2,3049,20), (2,3133,36), (2,3239,7), (3,164,51)]) shifted_fraction: bits[11] = sel(carry_bit, cases=[cancel_fraction__1, carry_fraction__1], id=30026, pos=[(2,3142,27), (2,3239,7), (3,164,51)]) normal_chunk: bits[3] = bit_slice(shifted_fraction, start=0, width=3, id=30027, pos=[(2,3154,39), (2,3239,7), (3,164,51)]) fraction_shift__3: bits[3] = literal(value=4, id=30014, pos=[(2,3170,8), (2,3239,7), (3,164,51)]) half_way_chunk: bits[2] = bit_slice(shifted_fraction, start=2, width=2, id=30028, pos=[(2,3155,41), (2,3239,7), (3,164,51)]) literal.30029: bits[2] = literal(value=3, id=30029, pos=[(2,3156,68), (2,3239,7), (3,164,51)]) ugt.30030: bits[1] = ugt(normal_chunk, fraction_shift__3, id=30030, pos=[(2,3156,23), (2,3239,7), (3,164,51)]) eq.30031: bits[1] = eq(half_way_chunk, literal.30029, id=30031, pos=[(2,3156,50), (2,3239,7), (3,164,51)]) bit_slice.30350: bits[8] = bit_slice(shifted_fraction, start=3, width=8, id=30350) do_round_up: bits[1] = or(ugt.30030, eq.30031, id=30034, pos=[(2,3156,23), (2,3239,7), (3,164,51)]) concat.30351: bits[9] = concat(literal.29848, bit_slice.30350, id=30351) concat.30430: bits[9] = concat(literal.29859, do_round_up, id=30430) add.30319: bits[9] = add(concat.30351, concat.30430, id=30319) literal.30037: bits[4] = literal(value=0, id=30037, pos=[(2,3239,7), (3,164,51)]) rounding_carry: bits[1] = bit_slice(add.30319, start=8, width=1, id=30342, pos=[(2,3164,41), (2,3239,7), (3,164,51)]) literal.30402: bits[10] = literal(value=0, id=30402, pos=[(2,3117,39), (2,3239,7), (3,164,51)]) bit_slice.30426: bits[1] = bit_slice(shrl.29888, start=1, width=1, id=30426, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) bit_slice.30427: bits[1] = bit_slice(shrl.29888, start=2, width=1, id=30427, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) concat.30039: bits[9] = concat(literal.29848, x_bexp__3, id=30039, pos=[(2,3239,7), (3,164,51)]) literal.30040: bits[9] = literal(value=1, id=30040, pos=[(2,3176,24), (2,3239,7), (3,164,51)]) concat.30362: bits[5] = concat(literal.30037, rounding_carry, id=30362, pos=[(2,3239,7), (3,164,51)]) concat.30042: bits[5] = concat(literal.29848, leading_zeroes, id=30042, pos=[(2,3239,7), (3,164,51)]) eq.30378: bits[1] = eq(add.30311, literal.30402, id=30378, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) nor.30415: bits[1] = nor(bit_slice.30426, bit_slice.30427, id=30415, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) nor.30416: bits[1] = nor(bit_slice.29893, sticky, id=30416, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) add.30043: bits[9] = add(concat.30039, literal.30040, id=30043, pos=[(2,3175,26), (2,3239,7), (3,164,51)]) sub.30044: bits[5] = sub(concat.30362, concat.30042, id=30044, pos=[(2,3175,26), (2,3239,7), (3,164,51)]) fraction_is_zero: bits[1] = and(eq.30378, nor.30415, nor.30416, id=30414, pos=[(2,3117,27), (2,3239,7), (3,164,51)]) wide_exponent_associative_element: bits[10] = concat(literal.29848, add.30043, id=30046, pos=[(2,3175,26), (2,3239,7), (3,164,51)]) wide_exponent_associative_element__1: bits[10] = sign_ext(sub.30044, new_bit_count=10, id=30047, pos=[(2,3175,26), (2,3239,7), (3,164,51)]) not.30229: bits[1] = not(fraction_is_zero, id=30229, pos=[(2,3177,24), (2,3239,7), (3,164,51)]) wide_exponent: bits[10] = add(wide_exponent_associative_element, wide_exponent_associative_element__1, id=30049, pos=[(2,3175,26), (2,3239,7), (3,164,51)]) sign_ext.30230: bits[10] = sign_ext(not.30229, new_bit_count=10, id=30230, pos=[(2,3177,24), (2,3239,7), (3,164,51)]) wide_exponent__1: bits[10] = and(wide_exponent, sign_ext.30230, id=30231, pos=[(2,3177,24), (2,3239,7), (3,164,51)]) bit_slice.30057: bits[1] = bit_slice(wide_exponent__1, start=9, width=1, id=30057, pos=[(2,3180,27), (2,3239,7), (3,164,51)]) not.30232: bits[1] = not(bit_slice.30057, id=30232, pos=[(2,3180,24), (2,3239,7), (3,164,51)]) bit_slice.30058: bits[9] = bit_slice(wide_exponent__1, start=0, width=9, id=30058, pos=[(2,3239,7), (3,164,51)]) sign_ext.30233: bits[9] = sign_ext(not.30232, new_bit_count=9, id=30233, pos=[(2,3180,24), (2,3239,7), (3,164,51)]) MAX_EXPONENT: bits[8] = literal(value=255, id=30051, pos=[(2,3193,39), (2,3239,7), (3,164,51)]) wide_exponent__2: bits[9] = and(bit_slice.30058, sign_ext.30233, id=30234, pos=[(2,3180,24), (2,3239,7), (3,164,51)]) eq.30053: bits[1] = eq(x_bexp__3, MAX_EXPONENT, id=30053, pos=[(2,71,6), (2,3213,30), (2,3239,7), (3,164,51)]) eq.30054: bits[1] = eq(x_fraction__1, literal.29869, id=30054, pos=[(2,96,44), (2,3201,31), (2,3239,7), (3,164,51)]) eq.30055: bits[1] = eq(y_bexp__3, MAX_EXPONENT, id=30055, pos=[(2,71,6), (2,3213,64), (2,3239,7), (3,164,51)]) eq.30056: bits[1] = eq(y_fraction__3, literal.29869, id=30056, pos=[(2,96,44), (2,3201,65), (2,3239,7), (3,164,51)]) bit_slice.30072: bits[8] = bit_slice(wide_exponent__2, start=1, width=8, id=30072, pos=[(2,3190,11), (2,3239,7), (3,164,51)]) not.30060: bits[1] = not(eq.30053, id=30060, pos=[(2,3205,29), (2,3239,7), (3,164,51)]) not.30061: bits[1] = not(eq.30054, id=30061, pos=[(2,3205,29), (2,3239,7), (3,164,51)]) x_sign__1: bits[1] = sel(overflow_detected, cases=[not.29843, tuple_index.29890], id=30116, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) not.30063: bits[1] = not(eq.30055, id=30063, pos=[(2,3206,29), (2,3239,7), (3,164,51)]) not.30064: bits[1] = not(eq.30056, id=30064, pos=[(2,3206,29), (2,3239,7), (3,164,51)]) y_sign__3: bits[1] = sel(overflow_detected, cases=[tuple_index.29890, not.29843], id=30117, pos=[(2,3088,17), (2,3239,7), (3,164,51)]) and.30079: bits[1] = and(eq.30053, eq.30054, id=30079, pos=[(2,96,6), (2,3201,31), (2,3239,7), (3,164,51)]) and.30080: bits[1] = and(eq.30055, eq.30056, id=30080, pos=[(2,96,6), (2,3201,65), (2,3239,7), (3,164,51)]) bit_slice.30081: bits[8] = bit_slice(wide_exponent__2, start=0, width=8, id=30081, pos=[(2,3239,7), (3,164,51)]) or_reduce.30082: bits[1] = or_reduce(bit_slice.30072, id=30082, pos=[(2,3190,11), (2,3239,7), (3,164,51)]) bit_slice.30083: bits[1] = bit_slice(wide_exponent__2, start=0, width=1, id=30083, pos=[(2,3190,11), (2,3239,7), (3,164,51)]) nor.30067: bits[1] = nor(not.30060, not.30061, x_sign__1, id=30067, pos=[(2,3205,29), (2,3239,7), (3,164,51)]) nor.30068: bits[1] = nor(not.30063, not.30064, y_sign__3, id=30068, pos=[(2,3206,29), (2,3239,7), (3,164,51)]) and.30069: bits[1] = and(eq.30053, eq.30054, x_sign__1, id=30069, pos=[(2,3211,29), (2,3239,7), (3,164,51)]) and.30070: bits[1] = and(eq.30055, eq.30056, y_sign__3, id=30070, pos=[(2,3212,29), (2,3239,7), (3,164,51)]) fraction_shift__2: bits[3] = literal(value=3, id=30073, pos=[(2,3170,8), (2,3239,7), (3,164,51)]) is_operand_inf: bits[1] = or(and.30079, and.30080, id=30091, pos=[(2,3201,31), (2,3239,7), (3,164,51)]) bit_slice.30092: bits[1] = bit_slice(wide_exponent__2, start=8, width=1, id=30092, pos=[(2,3196,11), (2,3239,7), (3,164,51)]) and_reduce.30093: bits[1] = and_reduce(bit_slice.30081, id=30093, pos=[(2,3196,11), (2,3239,7), (3,164,51)]) nor.30094: bits[1] = nor(or_reduce.30082, bit_slice.30083, id=30094, pos=[(2,3190,11), (2,3239,7), (3,164,51)]) has_pos_inf: bits[1] = or(nor.30067, nor.30068, id=30076, pos=[(2,3205,29), (2,3239,7), (3,164,51)]) has_neg_inf: bits[1] = or(and.30069, and.30070, id=30077, pos=[(2,3211,29), (2,3239,7), (3,164,51)]) not.30129: bits[1] = not(tuple_index.29890, id=30129, pos=[(2,3119,22), (2,3239,7), (3,164,51)]) rounded_fraction: bits[12] = concat(add.30319, normal_chunk, id=30365) fraction_shift__1: bits[3] = sel(rounding_carry, cases=[fraction_shift__2, fraction_shift__3], id=30084, pos=[(2,3170,8), (2,3239,7), (3,164,51)]) or.30099: bits[1] = or(is_operand_inf, bit_slice.30092, and_reduce.30093, nor.30094, id=30099, pos=[(2,3203,26), (2,3239,7), (3,164,51)]) nor.30126: bits[1] = nor(not.30060, eq.30054, id=30126, pos=[(2,71,6), (2,3213,30), (2,3239,7), (3,164,51)]) nor.30128: bits[1] = nor(not.30063, eq.30056, id=30128, pos=[(2,71,6), (2,3213,64), (2,3239,7), (3,164,51)]) and.30087: bits[1] = and(has_pos_inf, has_neg_inf, id=30087, pos=[(2,3214,25), (2,3239,7), (3,164,51)]) concat.30363: bits[2] = concat(bit_slice.30340, fraction_is_zero, id=30363, pos=[(2,3239,7), (3,164,51)]) nor.30130: bits[1] = nor(not.30129, y_sign__2, id=30130, pos=[(2,3119,22), (2,3239,7), (3,164,51)]) not.30090: bits[1] = not(y_sign__3, id=30090, pos=[(2,3120,25), (2,3239,7), (3,164,51)]) shrl.30095: bits[12] = shrl(rounded_fraction, fraction_shift__1, id=30095, pos=[(2,3171,27), (2,3239,7), (3,164,51)]) not.30235: bits[1] = not(or.30099, id=30235, pos=[(2,3203,26), (2,3239,7), (3,164,51)]) is_result_nan: bits[1] = or(nor.30126, nor.30128, and.30087, id=30096, pos=[(2,3213,30), (2,3239,7), (3,164,51)]) result_sign: bits[1] = priority_sel(concat.30363, cases=[nor.30130, not.30090], default=y_sign__3, id=30097, pos=[(2,3239,7), (3,164,51)]) not.30098: bits[1] = not(has_pos_inf, id=30098, pos=[(2,3207,42), (2,3239,7), (3,164,51)]) result_fraction: bits[7] = bit_slice(shrl.30095, start=0, width=7, id=30100, pos=[(2,3239,7), (3,164,51)]) sign_ext.30236: bits[7] = sign_ext(not.30235, new_bit_count=7, id=30236, pos=[(2,3203,26), (2,3239,7), (3,164,51)]) not.30101: bits[1] = not(is_result_nan, id=30101, pos=[(2,3218,22), (2,3239,7), (3,164,51)]) result_sign__1: bits[1] = sel(is_operand_inf, cases=[result_sign, not.30098], id=30102, pos=[(2,3207,22), (2,3239,7), (3,164,51)]) or.30103: bits[1] = or(is_result_nan, is_operand_inf, bit_slice.30092, and_reduce.30093, id=30103, pos=[(2,3216,26), (2,3239,7), (3,164,51)]) result_fraction__3: bits[7] = and(result_fraction, sign_ext.30236, id=30237, pos=[(2,3203,26), (2,3239,7), (3,164,51)]) FRACTION_HIGH_BIT: bits[7] = literal(value=64, id=30105, pos=[(2,3215,30), (2,3239,7), (3,164,51)]) result_sign__2: bits[1] = and(not.30101, result_sign__1, id=30106, pos=[(2,3218,22), (2,3239,7), (3,164,51)]) result_exponent__2: bits[8] = sel(or.30103, cases=[bit_slice.30081, MAX_EXPONENT], id=30107, pos=[(2,3216,26), (2,3239,7), (3,164,51)]) result_fraction__4: bits[7] = sel(is_result_nan, cases=[result_fraction__3, FRACTION_HIGH_BIT], id=30108, pos=[(2,3217,26), (2,3239,7), (3,164,51)]) ret tuple.30109: (bits[1], bits[8], bits[7]) = tuple(result_sign__2, result_exponent__2, result_fraction__4, id=30109, pos=[(2,3221,33), (2,3239,7), (3,164,51)]) }