Skip to content
Snippets Groups Projects
fork_join.hir 440 B
Newer Older
  • Learn to ignore specific revisions
  • rarbore2's avatar
    rarbore2 committed
    fn fork_join<1>() -> u64
    
    rarbore2's avatar
    rarbore2 committed
      f_ctrl1 = fork(start, #0)
      f_ctrl2 = fork(f_ctrl1, #0)
      j_ctrl2 = join(f_ctrl2)
      j_ctrl1 = join(j_ctrl2)
    
    rarbore2's avatar
    rarbore2 committed
      zero = constant(u64, 0)
    
    rarbore2's avatar
    rarbore2 committed
      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)