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)