xref: /llvm-project/llvm/test/CodeGen/SPIRV/linkage/LinkOnceODRFun.ll (revision 3ae63430aae52b260ce7ea99e5d586c77963b94a)
1*3ae63430SVyacheslav Levytskyy; RUN: llc -O0 -mtriple=spirv32-unknown-unknown --spirv-ext=+SPV_KHR_linkonce_odr %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV-EXT
2*3ae63430SVyacheslav Levytskyy; TODO: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown --spirv-ext=+SPV_KHR_linkonce_odr %s -o - -filetype=obj | spirv-val %}
3*3ae63430SVyacheslav Levytskyy
4*3ae63430SVyacheslav Levytskyy; CHECK-SPIRV-EXT: Capability Linkage
5*3ae63430SVyacheslav Levytskyy; CHECK-SPIRV-EXT: Extension "SPV_KHR_linkonce_odr"
6*3ae63430SVyacheslav Levytskyy; CHECK-SPIRV-EXT-DAG: OpDecorate %[[#]] LinkageAttributes "square" LinkOnceODR
7*3ae63430SVyacheslav Levytskyy
8*3ae63430SVyacheslav Levytskyydefine spir_kernel void @k() {
9*3ae63430SVyacheslav Levytskyyentry:
10*3ae63430SVyacheslav Levytskyy  %call = call spir_func i32 @square(i32 2)
11*3ae63430SVyacheslav Levytskyy  ret void
12*3ae63430SVyacheslav Levytskyy}
13*3ae63430SVyacheslav Levytskyy
14*3ae63430SVyacheslav Levytskyydefine linkonce_odr dso_local spir_func i32 @square(i32 %in) {
15*3ae63430SVyacheslav Levytskyyentry:
16*3ae63430SVyacheslav Levytskyy  ret i32 %in
17*3ae63430SVyacheslav Levytskyy}
18