1 // RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip -split-input-file %s | FileCheck %s
3 // CHECK: spirv.GlobalVariable @var0 bind(1, 0) : !spirv.ptr<f32, Input>
4 // CHECK-NEXT: spirv.GlobalVariable @var1 bind(0, 1) : !spirv.ptr<f32, Output>
5 // CHECK-NEXT: spirv.GlobalVariable @var2 built_in("GlobalInvocationId") : !spirv.ptr<vector<3xi32>, Input>
6 // CHECK-NEXT: spirv.GlobalVariable @var3 built_in("GlobalInvocationId") : !spirv.ptr<vector<3xi32>, Input>
8 spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
9 spirv.GlobalVariable @var0 bind(1, 0) : !spirv.ptr<f32, Input>
10 spirv.GlobalVariable @var1 bind(0, 1) : !spirv.ptr<f32, Output>
11 spirv.GlobalVariable @var2 {built_in = "GlobalInvocationId"} : !spirv.ptr<vector<3xi32>, Input>
12 spirv.GlobalVariable @var3 built_in("GlobalInvocationId") : !spirv.ptr<vector<3xi32>, Input>
17 spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
18 // CHECK: spirv.GlobalVariable @var1 : !spirv.ptr<f32, Input>
19 // CHECK-NEXT: spirv.GlobalVariable @var2 initializer(@var1) bind(1, 0) : !spirv.ptr<f32, Input>
20 spirv.GlobalVariable @var1 : !spirv.ptr<f32, Input>
21 spirv.GlobalVariable @var2 initializer(@var1) bind(1, 0) : !spirv.ptr<f32, Input>
26 spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> {
27 spirv.GlobalVariable @globalInvocationID built_in("GlobalInvocationId") : !spirv.ptr<vector<3xi32>, Input>
28 spirv.func @foo() "None" {
29 // CHECK: %[[ADDR:.*]] = spirv.mlir.addressof @globalInvocationID : !spirv.ptr<vector<3xi32>, Input>
30 %0 = spirv.mlir.addressof @globalInvocationID : !spirv.ptr<vector<3xi32>, Input>
31 %1 = spirv.Constant 0: i32
32 // CHECK: spirv.AccessChain %[[ADDR]]
33 %2 = spirv.AccessChain %0[%1] : !spirv.ptr<vector<3xi32>, Input>, i32