aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td2
-rw-r--r--mlir/test/Dialect/OpenMP/ops.mlir10
-rw-r--r--mlir/test/Target/openmp-llvm.mlir12
3 files changed, 16 insertions, 8 deletions
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index ae0a5f3..4fa30d0 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -124,7 +124,7 @@ def FlushOp : OpenMP_Op<"flush"> {
let arguments = (ins Variadic<AnyType>:$varList);
- let assemblyFormat = "attr-dict ($varList^ `:` type($varList))?";
+ let assemblyFormat = [{ ( `(` $varList^ `:` type($varList) `)` )? attr-dict}];
}
//===----------------------------------------------------------------------===//
diff --git a/mlir/test/Dialect/OpenMP/ops.mlir b/mlir/test/Dialect/OpenMP/ops.mlir
index cfcfe0d..c74f55b 100644
--- a/mlir/test/Dialect/OpenMP/ops.mlir
+++ b/mlir/test/Dialect/OpenMP/ops.mlir
@@ -29,19 +29,19 @@ func @omp_taskyield() -> () {
}
// CHECK-LABEL: func @omp_flush
-// CHECK-SAME: %[[ARG0:.*]]: !llvm.i32
+// CHECK-SAME: ([[ARG0:%.*]]: !llvm.i32) {
func @omp_flush(%arg0 : !llvm.i32) -> () {
// Test without data var
// CHECK: omp.flush
omp.flush
// Test with one data var
- // CHECK: omp.flush %[[ARG0]] : !llvm.i32
- "omp.flush"(%arg0) : (!llvm.i32) -> ()
+ // CHECK: omp.flush([[ARG0]] : !llvm.i32)
+ omp.flush(%arg0 : !llvm.i32)
// Test with two data var
- // CHECK: omp.flush %[[ARG0]], %[[ARG0]] : !llvm.i32, !llvm.i32
- "omp.flush"(%arg0, %arg0): (!llvm.i32, !llvm.i32) -> ()
+ // CHECK: omp.flush([[ARG0]], [[ARG0]] : !llvm.i32, !llvm.i32)
+ omp.flush(%arg0, %arg0: !llvm.i32, !llvm.i32)
return
}
diff --git a/mlir/test/Target/openmp-llvm.mlir b/mlir/test/Target/openmp-llvm.mlir
index 1cfae35..518fa6f 100644
--- a/mlir/test/Target/openmp-llvm.mlir
+++ b/mlir/test/Target/openmp-llvm.mlir
@@ -24,10 +24,18 @@ llvm.func @test_flush_construct(%arg0: !llvm.i32) {
omp.flush
// CHECK: call void @__kmpc_flush(%struct.ident_t* @{{[0-9]+}}
- omp.flush %arg0 : !llvm.i32
+ omp.flush (%arg0 : !llvm.i32)
// CHECK: call void @__kmpc_flush(%struct.ident_t* @{{[0-9]+}}
- omp.flush %arg0, %arg0 : !llvm.i32, !llvm.i32
+ omp.flush (%arg0, %arg0 : !llvm.i32, !llvm.i32)
+
+ %0 = llvm.mlir.constant(1 : i64) : !llvm.i64
+ // CHECK: alloca {{.*}} align 4
+ %1 = llvm.alloca %0 x !llvm.i32 {in_type = i32, name = "a"} : (!llvm.i64) -> !llvm.ptr<i32>
+ // CHECK: call void @__kmpc_flush(%struct.ident_t* @{{[0-9]+}}
+ omp.flush
+ // CHECK: load i32, i32*
+ %2 = llvm.load %1 : !llvm.ptr<i32>
// CHECK-NEXT: ret void
llvm.return