xref: /llvm-project/llvm/test/CodeGen/SPIRV/pointers/getelementptr-addressspace.ll (revision 67d3ef74b31e1517d4f679e754cc2b3041c95901)
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
3
4; CHECK:  %[[#INT8:]] = OpTypeInt 8 0
5; CHECK:  %[[#PTR1:]] = OpTypePointer CrossWorkgroup %[[#INT8]]
6; CHECK:  %[[#PTR2:]] = OpTypePointer UniformConstant %[[#INT8]]
7; CHECK:  %[[#]] = OpInBoundsPtrAccessChain %[[#PTR1]] %[[#]] %[[#]]
8; CHECK:  %[[#]] = OpInBoundsPtrAccessChain %[[#PTR2]] %[[#]] %[[#]]
9
10define spir_kernel void @foo(ptr addrspace(1) %a, ptr addrspace(2) %b) {
11entry:
12  %c = getelementptr inbounds i8, ptr addrspace(1) %a, i32 1
13  %d = getelementptr inbounds i8, ptr addrspace(2) %b, i32 2
14  ret void
15}
16