package acm_random file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/acm_random.x" top fn __acm_random__rng_next64(s: (bits[32]) id=24) -> ((bits[32]), bits[64]) { s_seed__1: bits[32] = tuple_index(s, index=0, id=107, pos=[(1,36,20), (1,46,29)]) literal.108: bits[15] = literal(value=16807, id=108, pos=[(1,35,14), (1,46,29)]) umul.109: bits[47] = umul(s_seed__1, literal.108, id=109, pos=[(1,36,20), (1,46,29)]) literal.147: bits[16] = literal(value=0, id=147, pos=[(1,36,20), (1,46,29)]) bit_slice.163: bits[16] = bit_slice(umul.109, start=31, width=16, id=163, pos=[(1,37,21), (1,46,29)]) smul_105_TrailingBits_: bits[1] = literal(value=0, id=157, pos=[(1,48,24)]) bit_slice.173: bits[31] = bit_slice(umul.109, start=0, width=31, id=173, pos=[(1,37,43), (1,46,29)]) concat.164: bits[32] = concat(literal.147, bit_slice.163, id=164, pos=[(1,37,21), (1,46,29)]) concat.179: bits[32] = concat(smul_105_TrailingBits_, bit_slice.173, id=179, pos=[(1,37,43), (1,46,29)]) new_seed: bits[32] = add(concat.164, concat.179, id=117, pos=[(1,37,21), (1,46,29)]) umul.129: bits[47] = umul(new_seed, literal.108, id=129, pos=[(1,36,20), (1,47,29)]) bit_slice.170: bits[16] = bit_slice(umul.129, start=31, width=16, id=170, pos=[(1,37,21), (1,47,29)]) bit_slice.174: bits[31] = bit_slice(umul.129, start=0, width=31, id=174, pos=[(1,37,43), (1,47,29)]) concat.176: bits[33] = concat(smul_105_TrailingBits_, new_seed, id=176) literal.100: bits[33] = literal(value=8589934591, id=100, pos=[(1,48,24)]) concat.171: bits[32] = concat(literal.147, bit_slice.170, id=171, pos=[(1,37,21), (1,47,29)]) concat.180: bits[32] = concat(smul_105_TrailingBits_, bit_slice.174, id=180, pos=[(1,37,43), (1,47,29)]) add.77: bits[33] = add(concat.176, literal.100, id=77, pos=[(1,48,24)]) literal.188: bits[30] = literal(value=0, id=188, pos=[(1,48,24)]) new_seed__2: bits[32] = add(concat.171, concat.180, id=137, pos=[(1,37,21), (1,47,29)]) concat.190: bits[63] = concat(add.77, literal.188, id=190, pos=[(1,48,24)]) sign_ext.182: bits[63] = sign_ext(add.77, new_bit_count=63, id=182, pos=[(1,48,24)]) literal.63: bits[32] = literal(value=0, id=63) bit_slice.198: bits[31] = bit_slice(new_seed__2, start=1, width=31, id=198, pos=[(1,48,24)]) smul_105_NarrowedMult_: bits[63] = sub(concat.190, sign_ext.182, id=187, pos=[(1,48,24)]) concat.199: bits[63] = concat(literal.63, bit_slice.198, id=199, pos=[(1,48,24)]) add.194: bits[63] = add(smul_105_NarrowedMult_, concat.199, id=194, pos=[(1,48,24)]) bit_slice.200: bits[1] = bit_slice(new_seed__2, start=0, width=1, id=200, pos=[(1,48,24)]) s__2: (bits[32]) = tuple(new_seed__2, id=145, pos=[(1,39,11), (1,47,29)]) result: bits[64] = concat(add.194, bit_slice.200, id=202, pos=[(1,48,24)]) ret tuple.43: ((bits[32]), bits[64]) = tuple(s__2, result, id=43, pos=[(1,49,4)]) }