// RUN: mlir-translate -no-implicit-module -split-input-file -test-spirv-roundtrip %s | FileCheck %s // RUN: %if spirv-tools %{ rm -rf %t %} // RUN: %if spirv-tools %{ mkdir %t %} // RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --split-input-file --spirv-save-validation-files-with-prefix=%t/module %s %} // RUN: %if spirv-tools %{ spirv-val %t %} spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @var0 bind(0, 1) : !spirv.ptr, UniformConstant> // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @var1 : !spirv.ptr, UniformConstant> // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @var2 : !spirv.ptr, UniformConstant> } // ----- // 2D + MultiSampled + NoSampler storage image — validates StorageImageMultisample. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_2d_ms_storage bind(0, 0) : !spirv.ptr, UniformConstant> } // ----- // 2D + MultiSampled + Arrayed + NoSampler — validates StorageImageMultisample + ImageMSArray. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_2d_ms_arrayed bind(0, 0) : !spirv.ptr, UniformConstant> } // ----- // Cube + Arrayed sampled image — validates ImageCubeArray. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_cube_arrayed bind(0, 0) : !spirv.ptr, UniformConstant> } // ----- // 1D storage image — validates Image1D. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_1d_storage bind(0, 0) : !spirv.ptr, UniformConstant> } // ----- // Buffer storage image — validates ImageBuffer. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_buffer_storage bind(0, 0) : !spirv.ptr, UniformConstant> } // ----- // 64-bit integer sampled type — validates Int64ImageEXT + SPV_EXT_shader_image_int64. spirv.module Logical GLSL450 requires #spirv.vce { // CHECK: !spirv.ptr, UniformConstant> spirv.GlobalVariable @img_2d_i64 bind(0, 0) : !spirv.ptr, UniformConstant> }