[flang] Accept polymorphic component element in storage_size
[llvm-project.git] / mlir / test / Target / SPIRV / global-variable.mlir
blob48bd80559dd67be60ceeeaea95c6652bc5ea5758
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>
15 // -----
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>
24 // -----
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
34     spirv.Return
35   }