fn fork_join<1>() -> u64 f_ctrl1 = fork(start, #0) f_ctrl2 = fork(f_ctrl1, #0) j_ctrl2 = join(f_ctrl2) j_ctrl1 = join(j_ctrl2) zero = constant(u64, 0) x1 = thread_id(f_ctrl1) x1_d = add(x1, x1) x2 = thread_id(f_ctrl2) x2_d = add(x2, x2) data2 = reduce(j_ctrl2, zero, sum2) sum2 = add(data2, x2_d) extra = add(data2, x1_d) data1 = reduce(j_ctrl1, zero, sum1) sum1 = add(data1, extra) r = return(j_ctrl1, data1)