blob: d362714add85632e392e716701b8bfff6008ced0 [file] [edit]
// RUN: rm -rf %t && split-file %s %t
// RUN: not mlir-translate --mlir-to-llvmir %t/init.mlir 2>&1 | FileCheck %s --check-prefix=INIT
// RUN: not mlir-translate --mlir-to-llvmir %t/use.mlir 2>&1 | FileCheck %s --check-prefix=USE
// RUN: not mlir-translate --mlir-to-llvmir %t/destroy.mlir 2>&1 | FileCheck %s --check-prefix=DESTROY
// The depend clause on interop operations is not yet handled by the
// translation to LLVM IR; each action op must emit a clean diagnostic.
//--- init.mlir
// INIT: error: not yet implemented: Unhandled clause depend in omp.interop.init operation
llvm.func @test_interop_init_depend(%interop: !llvm.ptr, %dep: !llvm.ptr) {
omp.interop.init %interop : !llvm.ptr interop_types([#omp<interop_type(targetsync)>]) depend(taskdependinout -> %dep : !llvm.ptr)
llvm.return
}
//--- use.mlir
// USE: error: not yet implemented: Unhandled clause depend in omp.interop.use operation
llvm.func @test_interop_use_depend(%interop: !llvm.ptr, %dep: !llvm.ptr) {
omp.interop.use %interop : !llvm.ptr depend(taskdependinout -> %dep : !llvm.ptr)
llvm.return
}
//--- destroy.mlir
// DESTROY: error: not yet implemented: Unhandled clause depend in omp.interop.destroy operation
llvm.func @test_interop_destroy_depend(%interop: !llvm.ptr, %dep: !llvm.ptr) {
omp.interop.destroy %interop : !llvm.ptr depend(taskdependinout -> %dep : !llvm.ptr)
llvm.return
}