Back to PBT run

input.mlir

dataflow.thread private @t_0 domain(#dataflow.thread_domain<dense>)() ctrl (%thread_ctrl: none) iv (%coord_0: index) {
  dataflow.thread.yield %thread_ctrl : none
}

dataflow.thread private @t_1 domain(#dataflow.thread_domain<dense>)(%arg_0: i64) ctrl (%thread_ctrl: none) iv (%coord_0: index) {
  dataflow.thread.yield %thread_ctrl : none
}

dataflow.thread private @t_2 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg_0: i64) ctrl (%thread_ctrl: none) {
  dataflow.thread.yield %thread_ctrl : none
}

func.func @host(%m_ref: memref<?xf32>) {
  %c_i32 = arith.constant 1 : i32
  %c_f32 = arith.constant 1.000000e+00 : f32
  %c_i64 = arith.constant 1 : i64
  %c_idx = arith.constant 4 : index
  %token_0 = dataflow.thread.launch @t_0() grid(%c_idx) : () -> !dataflow.thread_token
  %token_1 = dataflow.thread.launch @t_1(%c_i64) grid(%c_idx) : (i64) -> !dataflow.thread_token
  %token_2 = dataflow.thread.launch @t_2(%c_i64) : (i64) -> !dataflow.thread_token
  dataflow.thread.wait %token_2 : !dataflow.thread_token
  return
}