package float64 file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 2 "/inputs/subtree/xls/dslx/stdlib/float64.x" top fn __float64__to_int64(x: (bits[1], bits[11], bits[52]) id=135) -> bits[64] { x_bexp__2: bits[11] = tuple_index(x, index=1, id=341, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) literal.342: bits[11] = literal(value=1025, id=342, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) exp: bits[11] = add(x_bexp__2, literal.342, id=343, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) bit_slice.408: bits[9] = bit_slice(exp, start=2, width=9, id=408, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) sign_ext.409: bits[10] = sign_ext(bit_slice.408, new_bit_count=10, id=409, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) literal.406: bits[10] = literal(value=1011, id=406, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) add.403: bits[10] = add(sign_ext.409, literal.406, id=403, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) bit_slice.407: bits[2] = bit_slice(exp, start=0, width=2, id=407, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) concat.405: bits[12] = concat(add.403, bit_slice.407, id=405, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) literal.351: bits[12] = literal(value=0, id=351, pos=[(1,2667,18), (1,2698,29), (2,105,48)]) sgt.357: bits[1] = sgt(concat.405, literal.351, id=357, pos=[(1,2667,18), (1,2698,29), (2,105,48)]) literal.349: bits[1] = literal(value=1, id=349, pos=[(1,2646,21), (1,2698,29), (2,105,48)]) x_fraction__2: bits[52] = tuple_index(x, index=2, id=348, pos=[(1,2646,21), (1,2698,29), (2,105,48)]) neg.391: bits[12] = neg(concat.405, id=391, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) literal.355: bits[11] = literal(value=2047, id=355, pos=[(1,71,29), (1,2654,20), (1,2698,29), (2,105,48)]) literal.356: bits[52] = literal(value=0, id=356, pos=[(1,71,57), (1,2654,20), (1,2698,29), (2,105,48)]) literal.347: bits[12] = literal(value=1, id=347, pos=[(1,2698,29), (2,105,48)]) effective_exp: bits[32] = sign_ext(concat.405, new_bit_count=32, id=350, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) sign_ext.396: bits[32] = sign_ext(sgt.357, new_bit_count=32, id=396) fraction_shift_bits: bits[53] = concat(literal.349, x_fraction__2, id=353, pos=[(1,2646,21), (1,2698,29), (2,105,48)]) sign_ext.392: bits[32] = sign_ext(neg.391, new_bit_count=32, id=392, pos=[(1,2666,26), (1,2698,29), (2,105,48)]) eq.361: bits[1] = eq(x_bexp__2, literal.355, id=361, pos=[(1,71,6), (1,2654,20), (1,2698,29), (2,105,48)]) ne.362: bits[1] = ne(x_fraction__2, literal.356, id=362, pos=[(1,71,44), (1,2654,20), (1,2698,29), (2,105,48)]) fraction: bits[64] = concat(literal.347, x_fraction__2, id=352, pos=[(1,2698,29), (2,105,48)]) and.397: bits[32] = and(effective_exp, sign_ext.396, id=397) literal.359: bits[11] = literal(value=0, id=359, pos=[(1,2666,13), (1,2698,29), (2,105,48)]) shrl.360: bits[53] = shrl(fraction_shift_bits, sign_ext.392, id=360, pos=[(1,2666,13), (1,2698,29), (2,105,48)]) and.369: bits[1] = and(eq.361, ne.362, id=369, pos=[(1,71,6), (1,2654,20), (1,2698,29), (2,105,48)]) bit_slice.370: bits[1] = bit_slice(exp, start=10, width=1, id=370, pos=[(1,2656,14), (1,2698,29), (2,105,48)]) literal.363: bits[11] = literal(value=1023, id=363, pos=[(1,2658,14), (1,2698,29), (2,105,48)]) bit_slice.364: bits[1] = bit_slice(effective_exp, start=31, width=1, id=364, pos=[(1,2665,11), (1,2698,29), (2,105,48)]) shll.395: bits[64] = shll(fraction, and.397, id=395) concat.366: bits[64] = concat(literal.359, shrl.360, id=366, pos=[(1,2666,13), (1,2698,29), (2,105,48)]) or.376: bits[1] = or(and.369, bit_slice.370, id=376, pos=[(1,2654,11), (1,2698,29), (2,105,48)]) literal.367: bits[11] = literal(value=63, id=367, pos=[(1,2650,18), (1,2698,29), (2,105,48)]) not.389: bits[1] = not(eq.361, id=389, pos=[(1,96,6), (1,2651,37), (1,2698,29), (2,105,48)]) eq.371: bits[1] = eq(x_bexp__2, literal.363, id=371, pos=[(1,2658,14), (1,2698,29), (2,105,48)]) sel.372: bits[64] = sel(bit_slice.364, cases=[shll.395, concat.366], id=372, pos=[(1,2665,8), (1,2698,29), (2,105,48)]) literal.373: bits[64] = literal(value=1, id=373, pos=[(1,2659,8), (1,2698,29), (2,105,48)]) not.398: bits[1] = not(or.376, id=398, pos=[(1,2654,11), (1,2698,29), (2,105,48)]) exp_oob: bits[1] = sge(exp, literal.367, id=374, pos=[(1,2650,18), (1,2698,29), (2,105,48)]) nor.390: bits[1] = nor(not.389, ne.362, id=390, pos=[(1,96,6), (1,2651,37), (1,2698,29), (2,105,48)]) sel.377: bits[64] = sel(eq.371, cases=[sel.372, literal.373], id=377, pos=[(1,2658,11), (1,2698,29), (2,105,48)]) sign_ext.399: bits[64] = sign_ext(not.398, new_bit_count=64, id=399, pos=[(1,2654,11), (1,2698,29), (2,105,48)]) x_sign__1: bits[1] = tuple_index(x, index=0, id=379, pos=[(1,2653,12), (1,2698,29), (2,105,48)]) INT_MAX: bits[64] = literal(value=9223372036854775807, id=380, pos=[(1,2636,20), (1,2698,29), (2,105,48)]) INT_MIN: bits[64] = literal(value=9223372036854775808, id=381, pos=[(1,2631,20), (1,2698,29), (2,105,48)]) or.382: bits[1] = or(exp_oob, nor.390, id=382, pos=[(1,2651,20), (1,2698,29), (2,105,48)]) and.400: bits[64] = and(sel.377, sign_ext.399, id=400, pos=[(1,2654,11), (1,2698,29), (2,105,48)]) sel.384: bits[64] = sel(x_sign__1, cases=[INT_MAX, INT_MIN], id=384, pos=[(1,2653,8), (1,2698,29), (2,105,48)]) result: bits[64] = sel(or.382, cases=[and.400, sel.384], id=385, pos=[(1,2651,17), (1,2698,29), (2,105,48)]) neg.386: bits[64] = neg(result, id=386, pos=[(1,2679,50), (1,2698,29), (2,105,48)]) ret result__2: bits[64] = sel(x_sign__1, cases=[result, neg.386], id=387, pos=[(1,2679,21), (1,2698,29), (2,105,48)]) }