xref: /llvm-project/llvm/test/CodeGen/SPIRV/opencl/vstore2.ll (revision 43222bd3091db5403e3320d23a241a534c1eefec)
1; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
2; This test only intends to check the vstoren builtin name resolution.
3; The calls to the OpenCL builtins are not valid and will not pass SPIR-V validation.
4
5; CHECK-DAG: %[[#IMPORT:]] = OpExtInstImport "OpenCL.std"
6
7; CHECK-DAG: %[[#VOID:]] = OpTypeVoid
8; CHECK-DAG: %[[#INT8:]] = OpTypeInt 8 0
9; CHECK-DAG: %[[#INT64:]] = OpTypeInt 64 0
10; CHECK-DAG: %[[#VINT8:]] = OpTypeVector %[[#INT8]] 2
11; CHECK-DAG: %[[#PTRINT8:]] = OpTypePointer CrossWorkgroup %[[#INT8]]
12
13; CHECK: %[[#DATA:]] = OpFunctionParameter %[[#VINT8]]
14; CHECK: %[[#OFFSET:]] = OpFunctionParameter %[[#INT64]]
15; CHECK: %[[#ADDRESS:]] = OpFunctionParameter %[[#PTRINT8]]
16
17define spir_kernel void @test_fn(<2 x i8> %data, i64 %offset, ptr addrspace(1) %address) {
18; CHECK: %[[#]] = OpExtInst %[[#VOID]] %[[#IMPORT]] vstoren %[[#DATA]] %[[#OFFSET]] %[[#ADDRESS]]
19  call spir_func void @_Z7vstore2Dv2_cmPU3AS1c(<2 x i8> %data, i64 %offset, ptr addrspace(1) %address)
20  ret void
21}
22
23declare spir_func void @_Z7vstore2Dv2_cmPU3AS1c(<2 x i8>, i64, ptr addrspace(1))
24