Back to PBT run

test.mlir

// RUN: loom-raise-opt --loom-lower-forall-to-thread %s | FileCheck %s

dataflow.thread private @thread_0 domain(#dataflow.thread_domain<dense>)(%buf: memref<8xi32>) ctrl (%thread_ctrl: none) iv (%coord_0: index, %coord_1: index) {
  scf.forall (%lane) in (8) {
  }
  dataflow.thread.yield %thread_ctrl : none
}
func.func @host_0() {
  %buf = memref.alloc() : memref<8xi32>
  %g0 = arith.constant 4 : index
  %g1 = arith.constant 4 : index
  %token = dataflow.thread.launch @thread_0(%buf) grid(%g0, %g1) : (memref<8xi32>) -> !dataflow.thread_token
  return
}

// CHECK: module {
// CHECK-NEXT:   dataflow.thread private @thread_0 domain(#dataflow.thread_domain<dense>)(%arg0: memref<8xi32>) ctrl (%arg1: none) iv (%arg2: index, %arg3: index) {
// CHECK-NEXT:     scf.forall (%arg4) in (8) {
// CHECK-NEXT:     }
// CHECK-NEXT:     dataflow.thread.yield %arg1 : none
// CHECK-NEXT:   }
// CHECK-NEXT:   func.func @host_0() {
// CHECK-NEXT:     %alloc = memref.alloc() : memref<8xi32>
// CHECK-NEXT:     %c4 = arith.constant 4 : index
// CHECK-NEXT:     %c4_0 = arith.constant 4 : index
// CHECK-NEXT:     %0 = dataflow.thread.launch @thread_0(%alloc) grid(%c4, %c4_0) : (memref<8xi32>) -> !dataflow.thread_token
// CHECK-NEXT:     return
// CHECK-NEXT:   }
// CHECK-NEXT: }
// CHECK-EMPTY: