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,47 @@
+// RUN: loom-raise-opt --loom-lower-forall-to-thread %s | FileCheck %s
+
+dataflow.thread private @t_0 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg_0: i32, %arg_1: f32) ctrl (%thread_ctrl: none) {
+  dataflow.thread.yield %thread_ctrl : none
+}
+
+dataflow.thread private @t_1 domain(#dataflow.thread_domain<dense>)() ctrl (%thread_ctrl: none) iv (%coord_0: index, %coord_1: index) {
+  dataflow.thread.yield
+}
+
+dataflow.thread private @t_2 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg_0: index) 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_idx = arith.constant 4 : index
+  %token_0 = dataflow.thread.launch @t_0(%c_i32, %c_f32) : (i32, f32) -> !dataflow.thread_token
+  %token_1 = dataflow.thread.launch @t_1() grid(%c_idx, %c_idx) : () -> !dataflow.thread_token
+  dataflow.thread.wait %token_1 : !dataflow.thread_token
+  %token_2 = dataflow.thread.launch @t_2(%c_idx) : (index) -> !dataflow.thread_token
+  return
+}
+
+// CHECK: module {
+// CHECK-NEXT:   dataflow.thread private @t_0 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg0: i32, %arg1: f32) ctrl (%arg2: none) {
+// CHECK-NEXT:     dataflow.thread.yield %arg2 : none
+// CHECK-NEXT:   }
+// CHECK-NEXT:   dataflow.thread private @t_1 domain(#dataflow.thread_domain<dense>)() ctrl (%arg0: none) iv (%arg1: index, %arg2: index) {
+// CHECK-NEXT:     dataflow.thread.yield
+// CHECK-NEXT:   }
+// CHECK-NEXT:   dataflow.thread private @t_2 domain(#dataflow.thread_domain<dynamic_work, work_item_arg = 0>)(%arg0: index) ctrl (%arg1: none) {
+// CHECK-NEXT:     dataflow.thread.yield %arg1 : none
+// CHECK-NEXT:   }
+// CHECK-NEXT:   func.func @host(%arg0: memref<?xf32>) {
+// CHECK-NEXT:     %c1_i32 = arith.constant 1 : i32
+// CHECK-NEXT:     %cst = arith.constant 1.000000e+00 : f32
+// CHECK-NEXT:     %c4 = arith.constant 4 : index
+// CHECK-NEXT:     %0 = dataflow.thread.launch @t_0(%c1_i32, %cst) : (i32, f32) -> !dataflow.thread_token
+// CHECK-NEXT:     %1 = dataflow.thread.launch @t_1() grid(%c4, %c4) : () -> !dataflow.thread_token
+// CHECK-NEXT:     dataflow.thread.wait %1 : !dataflow.thread_token
+// CHECK-NEXT:     %2 = dataflow.thread.launch @t_2(%c4) : (index) -> !dataflow.thread_token
+// CHECK-NEXT:     return
+// CHECK-NEXT:   }
+// CHECK-NEXT: }
+// CHECK-EMPTY: