xref: /llvm-project/mlir/test/Dialect/SPIRV/IR/barrier-ops.mlir (revision 2d628330482e49d36744cb8f3fb5047cfeae6c56)
1// RUN: mlir-opt -split-input-file -verify-diagnostics %s | FileCheck %s
2
3//===----------------------------------------------------------------------===//
4// spirv.ControlBarrier
5//===----------------------------------------------------------------------===//
6
7func.func @control_barrier_0() -> () {
8  // CHECK: spirv.ControlBarrier <Workgroup>, <Device>, <Acquire|UniformMemory>
9  spirv.ControlBarrier <Workgroup>, <Device>, <Acquire|UniformMemory>
10  return
11}
12
13// -----
14
15func.func @control_barrier_1() -> () {
16  // expected-error @+2 {{to be one of}}
17  // expected-error @+1 {{failed to parse SPIRV_ScopeAttr}}
18  spirv.ControlBarrier <Something>, <Device>, <Acquire|UniformMemory>
19  return
20}
21
22
23// -----
24
25//===----------------------------------------------------------------------===//
26// spirv.MemoryBarrier
27//===----------------------------------------------------------------------===//
28
29func.func @memory_barrier_0() -> () {
30  // CHECK: spirv.MemoryBarrier <Device>, <Acquire|UniformMemory>
31  spirv.MemoryBarrier <Device>, <Acquire|UniformMemory>
32  return
33}
34
35// -----
36
37func.func @memory_barrier_1() -> () {
38  // CHECK: spirv.MemoryBarrier <Workgroup>, <Acquire>
39  spirv.MemoryBarrier <Workgroup>, <Acquire>
40  return
41}
42
43// -----
44
45func.func @memory_barrier_2() -> () {
46 // expected-error @+1 {{expected at most one of these four memory constraints to be set: `Acquire`, `Release`,`AcquireRelease` or `SequentiallyConsistent`}}
47  spirv.MemoryBarrier <Device>, <Acquire|Release>
48  return
49}
50
51