30 lines · plain
1// RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip %s | FileCheck %s2 3// RUN: %if spirv-tools %{ rm -rf %t %}4// RUN: %if spirv-tools %{ mkdir %t %}5// RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --split-input-file --spirv-save-validation-files-with-prefix=%t/module %s %}6// RUN: %if spirv-tools %{ spirv-val %t %}7 8spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader, Linkage], []> {9 spirv.func @memory_barrier_0() -> () "None" {10 // CHECK: spirv.MemoryBarrier <Device>, <Release|UniformMemory>11 spirv.MemoryBarrier <Device>, <Release|UniformMemory>12 spirv.Return13 }14 spirv.func @memory_barrier_1() -> () "None" {15 // CHECK: spirv.MemoryBarrier <Subgroup>, <AcquireRelease|SubgroupMemory>16 spirv.MemoryBarrier <Subgroup>, <AcquireRelease|SubgroupMemory>17 spirv.Return18 }19 spirv.func @control_barrier_0() -> () "None" {20 // CHECK: spirv.ControlBarrier <Device>, <Workgroup>, <Release|UniformMemory>21 spirv.ControlBarrier <Device>, <Workgroup>, <Release|UniformMemory>22 spirv.Return23 }24 spirv.func @control_barrier_1() -> () "None" {25 // CHECK: spirv.ControlBarrier <Workgroup>, <Invocation>, <AcquireRelease|UniformMemory>26 spirv.ControlBarrier <Workgroup>, <Invocation>, <AcquireRelease|UniformMemory>27 spirv.Return28 }29}30