Back to PBT run
input.mlir
dataflow.thread private @thread_0 domain(#dataflow.thread_domain<dense>)(%buf: memref<8xi32>, %arg0: index, %arg1: index) ctrl (%thread_ctrl: none) {
%value = arith.constant 7 : i32
scf.forall (%lane) in (8) {
memref.store %value, %buf[%lane] : memref<8xi32>
}
dataflow.thread.yield %thread_ctrl : none
}
func.func @host_0() {
%buf = memref.alloc() : memref<8xi32>
%h0 = arith.constant 2 : index
%h1 = arith.constant 2 : index
%token = dataflow.thread.launch @thread_0(%buf, %h0, %h1) : (memref<8xi32>, index, index) -> !dataflow.thread_token
return
}
dataflow.thread private @thread_1 domain(#dataflow.thread_domain<dense>)(%buf: memref<8xi32>, %arg0: i32, %arg1: i32) ctrl (%thread_ctrl: none) iv (%coord_0: index) {
%value = arith.constant 7 : i32
scf.forall (%lane) in (2) {
memref.store %value, %buf[%lane] : memref<8xi32>
}
dataflow.thread.yield
}
func.func @host_1() {
%buf = memref.alloc() : memref<8xi32>
%h0 = arith.constant 3 : i32
%h1 = arith.constant 3 : i32
%g0 = arith.constant 4 : index
%token = dataflow.thread.launch @thread_1(%buf, %h0, %h1) grid(%g0) : (memref<8xi32>, i32, i32) -> !dataflow.thread_token
return
}
dataflow.thread private @thread_2 domain(#dataflow.thread_domain<dense>)(%buf: memref<8xi32>, %arg0: f32) ctrl (%thread_ctrl: none) iv (%coord_0: index, %coord_1: index) {
%value = arith.constant 7 : i32
scf.forall (%lane) in (8) {
memref.store %value, %buf[%lane] : memref<8xi32>
}
dataflow.thread.yield %thread_ctrl : none
}
func.func @host_2() {
%buf = memref.alloc() : memref<8xi32>
%h0 = arith.constant 1.000000e+00 : f32
%g0 = arith.constant 4 : index
%g1 = arith.constant 4 : index
%token = dataflow.thread.launch @thread_2(%buf, %h0) grid(%g0, %g1) : (memref<8xi32>, f32) -> !dataflow.thread_token
return
}