xref: /llvm-project/llvm/test/CodeGen/SPIRV/pointers/two-bitcast-or-param-users.ll (revision 67d3ef74b31e1517d4f679e754cc2b3041c95901)
1*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
20a443f13SVyacheslav Levytskyy; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
343222bd3SMichal Paszkowski
443222bd3SMichal Paszkowski; CHECK-DAG: %[[#INT:]] = OpTypeInt 32
543222bd3SMichal Paszkowski; CHECK-DAG: %[[#GLOBAL_PTR_INT:]] = OpTypePointer CrossWorkgroup %[[#INT]]
643222bd3SMichal Paszkowski
743222bd3SMichal Paszkowskidefine i32 @foo(i32 %a, ptr addrspace(1) %p) {
843222bd3SMichal Paszkowski  store i32 %a, i32 addrspace(1)* %p
943222bd3SMichal Paszkowski  %b = load i32, i32 addrspace(1)* %p
1043222bd3SMichal Paszkowski  ret i32 %b
1143222bd3SMichal Paszkowski}
1243222bd3SMichal Paszkowski
1343222bd3SMichal Paszkowski; CHECK: %[[#A:]] = OpFunctionParameter %[[#INT]]
1443222bd3SMichal Paszkowski; CHECK: %[[#CorP:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#GLOBAL_PTR_INT]]{{.*}}
1543222bd3SMichal Paszkowski; CHECK: OpStore %[[#CorP]] %[[#A]]
1643222bd3SMichal Paszkowski; CHECK: %[[#B:]] = OpLoad %[[#INT]] %[[#CorP]]
17