xref: /llvm-project/llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll (revision 83c1d003118a2cb8136fe49e2ec43958c93d9d6b)
167d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
2b0d03cccSVyacheslav Levytskyy; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
39e02e8f1SVyacheslav Levytskyy
4*83c1d003SVyacheslav Levytskyy; CHECK-DAG: %[[TyInt64:.*]] = OpTypeInt 64 0
5*83c1d003SVyacheslav Levytskyy; CHECK-DAG: %[[TyInt64Ptr:.*]] = OpTypePointer {{[a-zA-Z]+}} %[[TyInt64]]
6*83c1d003SVyacheslav Levytskyy; CHECK-DAG: %[[TyStruct:.*]] = OpTypeStruct %[[TyInt64Ptr]] %[[TyInt64Ptr]]
7*83c1d003SVyacheslav Levytskyy; CHECK-DAG: %[[ConstStruct:.*]] = OpConstantComposite %[[TyStruct]] %[[ConstField:.*]] %[[ConstField]]
8*83c1d003SVyacheslav Levytskyy; CHECK-DAG: %[[TyStructPtr:.*]] = OpTypePointer {{[a-zA-Z]+}} %[[TyStruct]]
9*83c1d003SVyacheslav Levytskyy; CHECK-DAG: OpVariable %[[TyStructPtr]] {{[a-zA-Z]+}} %[[ConstStruct]]
109e02e8f1SVyacheslav Levytskyy
11b7ac8fddSVyacheslav Levytskyy@a = addrspace(1) constant i64 42
129e02e8f1SVyacheslav Levytskyy@struct = addrspace(1) global {ptr addrspace(1), ptr addrspace(1)} { ptr addrspace(1) @a, ptr addrspace(1) @a }
139e02e8f1SVyacheslav Levytskyy
149e02e8f1SVyacheslav Levytskyydefine spir_kernel void @foo() {
159e02e8f1SVyacheslav Levytskyy  ret void
169e02e8f1SVyacheslav Levytskyy}
17