// RUN: mlir-translate -no-implicit-module -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 [0])>, Input> spirv.GlobalVariable @var0 bind(0, 1) : !spirv.ptr [0])>, Input> // CHECK: !spirv.ptr [4])> [4])>, Input> spirv.GlobalVariable @var1 bind(0, 2) : !spirv.ptr [4])> [4])>, Input> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @var2 : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr [0])>, stride=512> [0]), Block>, StorageBuffer> spirv.GlobalVariable @var3 : !spirv.ptr [0])>, stride=512> [0]), Block>, StorageBuffer> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @var4 : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @var5 : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @var6 : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr> [0, ColMajor, MatrixStride=16]), Block>, StorageBuffer> spirv.GlobalVariable @var7 : !spirv.ptr> [0, ColMajor, MatrixStride=16]), Block>, StorageBuffer> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @empty : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr, StorageBuffer> spirv.GlobalVariable @id_empty : !spirv.ptr, StorageBuffer> // CHECK: !spirv.ptr [0])>, Input> spirv.GlobalVariable @id_var0 : !spirv.ptr [0])>, Input> // CHECK: !spirv.ptr, StorageBuffer> [0]), Block>, StorageBuffer> spirv.GlobalVariable @recursive_simple : !spirv.ptr, StorageBuffer> [0]), Block>, StorageBuffer> // CHECK: !spirv.ptr, Uniform> [0]), Block>, Uniform> [0]), Block>, Uniform> spirv.GlobalVariable @recursive_2 : !spirv.ptr, Uniform> [0]), Block>, Uniform> [0]), Block>, Uniform> // CHECK: !spirv.ptr, Uniform> [0], !spirv.ptr, Uniform> [8]), Block>, Uniform> [0]), Block>, Uniform> spirv.GlobalVariable @recursive_3 : !spirv.ptr, Uniform> [0], !spirv.ptr, Uniform> [8]), Block>, Uniform> [0]), Block>, Uniform> // CHECK: spirv.GlobalVariable @block : !spirv.ptr [BuiltIn=0], f32 [BuiltIn=1]), Block>, Output> spirv.GlobalVariable @block : !spirv.ptr [BuiltIn=0], f32 [BuiltIn=1]), Block>, Output> // CHECK: !spirv.ptr [0])>, Input>, // CHECK-SAME: !spirv.ptr [0])>, Output> spirv.func @kernel(%arg0: !spirv.ptr [0])>, Input>, %arg1: !spirv.ptr [0])>, Output>) -> () "None" { spirv.Return } }