xref: /llvm-project/llvm/test/tools/llvm-extract/delete-ifunc.ll (revision 2544d91956f9b7b955f13dc2ffb12da30c5f7f87)
1; RUN: llvm-extract -func foo -S %s | FileCheck %s
2
3; llvm-extract should not copy ifuncs into the new module, so make sure they
4; are turned into declarations.
5
6; CHECK: define void @foo() {
7; CHECK: call void @ifunc()
8define void @foo() {
9  call void @ifunc()
10  ret void
11}
12
13define void @ifunc_impl() {
14  ret void
15}
16
17; CHECK: declare void @ifunc()
18@ifunc = ifunc void (), ptr @ifunc_resolver
19
20define internal ptr @ifunc_resolver() {
21  ret ptr @ifunc_impl
22}
23