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