package float32 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/float32.x" top fn __float32__to_int32(x: (bits[1], bits[8], bits[23]) id=135) -> bits[32] { x_bexp__2: bits[8] = tuple_index(x, index=1, id=341, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) literal.342: bits[8] = literal(value=129, id=342, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) exp: bits[8] = add(x_bexp__2, literal.342, id=343, pos=[(1,266,6), (1,2642,31), (1,2698,29), (2,105,48)]) sign_ext.344: bits[9] = sign_ext(exp, new_bit_count=9, id=344, pos=[(1,2698,29), (2,105,48)]) literal.345: bits[9] = literal(value=489, id=345, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) add.346: bits[9] = add(sign_ext.344, literal.345, id=346, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) literal.351: bits[9] = literal(value=0, id=351, pos=[(1,2667,18), (1,2698,29), (2,105,48)]) sgt.357: bits[1] = sgt(add.346, 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[23] = tuple_index(x, index=2, id=348, pos=[(1,2646,21), (1,2698,29), (2,105,48)]) neg.391: bits[9] = neg(add.346, id=391, pos=[(1,2664,29), (1,2698,29), (2,105,48)]) literal.355: bits[8] = literal(value=255, id=355, pos=[(1,96,29), (1,2651,37), (1,2698,29), (2,105,48)]) literal.356: bits[23] = literal(value=0, id=356, pos=[(1,96,57), (1,2651,37), (1,2698,29), (2,105,48)]) literal.347: bits[9] = literal(value=1, id=347, pos=[(1,2698,29), (2,105,48)]) effective_exp: bits[32] = sign_ext(add.346, 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[24] = 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,96,6), (1,2651,37), (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[32] = 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[8] = literal(value=0, id=359, pos=[(1,2666,13), (1,2698,29), (2,105,48)]) shrl.360: bits[24] = 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=7, width=1, id=370, pos=[(1,2656,14), (1,2698,29), (2,105,48)]) literal.363: bits[8] = literal(value=127, 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[32] = shll(fraction, and.397, id=395) concat.366: bits[32] = 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[8] = literal(value=31, 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[32] = sel(bit_slice.364, cases=[shll.395, concat.366], id=372, pos=[(1,2665,8), (1,2698,29), (2,105,48)]) literal.373: bits[32] = 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[32] = sel(eq.371, cases=[sel.372, literal.373], id=377, pos=[(1,2658,11), (1,2698,29), (2,105,48)]) sign_ext.399: bits[32] = sign_ext(not.398, new_bit_count=32, 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[32] = literal(value=2147483647, id=380, pos=[(1,2636,20), (1,2698,29), (2,105,48)]) INT_MIN: bits[32] = literal(value=2147483648, 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[32] = and(sel.377, sign_ext.399, id=400, pos=[(1,2654,11), (1,2698,29), (2,105,48)]) sel.384: bits[32] = sel(x_sign__1, cases=[INT_MAX, INT_MIN], id=384, pos=[(1,2653,8), (1,2698,29), (2,105,48)]) result: bits[32] = sel(or.382, cases=[and.400, sel.384], id=385, pos=[(1,2651,17), (1,2698,29), (2,105,48)]) neg.386: bits[32] = neg(result, id=386, pos=[(1,2679,50), (1,2698,29), (2,105,48)]) ret result__2: bits[32] = sel(x_sign__1, cases=[result, neg.386], id=387, pos=[(1,2679,21), (1,2698,29), (2,105,48)]) }