Back to PBT run

test.patch

diff --git a/test/raise/spectriad-mlir-stage-12-v1.mlir b/test/raise/spectriad-mlir-stage-12-v1.mlir
new file mode 100644
--- /dev/null
+++ b/test/raise/spectriad-mlir-stage-12-v1.mlir
@@ -0,0 +1,39 @@
+// RUN: loom-raise-opt --loom-lower-forall-to-thread --mlir-print-op-generic %s | FileCheck %s
+
+dataflow.thread private @t_0 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg_0: index, %arg_1: memref<?xf32>, %arg_2: i32) ctrl (%thread_ctrl: none) {
+  dataflow.thread.yield
+}
+
+dataflow.thread private @t_1 domain(#dataflow.thread_domain<dense>)() ctrl (%thread_ctrl: none) iv (%coord_0: index, %coord_1: index) {
+  dataflow.thread.yield %thread_ctrl : none
+}
+
+func.func @host(%m_ref: memref<?xf32>) {
+  %c_i32 = arith.constant 1 : i32
+  %c_idx = arith.constant 4 : index
+  %token_0 = dataflow.thread.launch @t_0(%c_idx, %m_ref, %c_i32) : (index, memref<?xf32>, i32) -> !dataflow.thread_token
+  dataflow.thread.wait %token_0 : !dataflow.thread_token
+  %token_1 = dataflow.thread.launch @t_1() grid(%c_idx, %c_idx) : () -> !dataflow.thread_token
+  return
+}
+
+// CHECK: "builtin.module"() ({
+// CHECK-NEXT:   "dataflow.thread"() <{domain = #dataflow.thread_domain<dynamic_work, work_item_arg = 0>, function_type = (index, memref<?xf32>, i32) -> (), sym_name = "t_0", sym_visibility = "private"}> ({
+// CHECK-NEXT:   ^bb0(%arg4: index, %arg5: memref<?xf32>, %arg6: i32, %arg7: none):
+// CHECK-NEXT:     "dataflow.thread.yield"() : () -> ()
+// CHECK-NEXT:   }) : () -> ()
+// CHECK-NEXT:   "dataflow.thread"() <{domain = #dataflow.thread_domain<dense>, function_type = () -> (), sym_name = "t_1", sym_visibility = "private"}> ({
+// CHECK-NEXT:   ^bb0(%arg1: none, %arg2: index, %arg3: index):
+// CHECK-NEXT:     "dataflow.thread.yield"(%arg1) : (none) -> ()
+// CHECK-NEXT:   }) : () -> ()
+// CHECK-NEXT:   "func.func"() <{function_type = (memref<?xf32>) -> (), sym_name = "host"}> ({
+// CHECK-NEXT:   ^bb0(%arg0: memref<?xf32>):
+// CHECK-NEXT:     %0 = "arith.constant"() <{value = 1 : i32}> : () -> i32
+// CHECK-NEXT:     %1 = "arith.constant"() <{value = 4 : index}> : () -> index
+// CHECK-NEXT:     %2 = "dataflow.thread.launch"(%1, %arg0, %0) <{callee = @t_0, operandSegmentSizes = array<i32: 3, 0, 0>}> : (index, memref<?xf32>, i32) -> !dataflow.thread_token
+// CHECK-NEXT:     "dataflow.thread.wait"(%2) : (!dataflow.thread_token) -> ()
+// CHECK-NEXT:     %3 = "dataflow.thread.launch"(%1, %1) <{callee = @t_1, operandSegmentSizes = array<i32: 0, 2, 0>}> : (index, index) -> !dataflow.thread_token
+// CHECK-NEXT:     "func.return"() : () -> ()
+// CHECK-NEXT:   }) : () -> ()
+// CHECK-NEXT: }) : () -> ()
+// CHECK-EMPTY: