xref: /llvm-project/llvm/test/Assembler/ifunc-program-addrspace.ll (revision 0d527e56a5ee3fd0435e6f99a10692e5115f36b7)
1; RUN: llvm-as < %s | llvm-dis | FileCheck %s
2
3target datalayout = "P1"
4
5; CHECK: @ifunc_as0 = ifunc void (), ptr @resolver_as0
6@ifunc_as0 = ifunc void (), ptr @resolver_as0
7
8; CHECK: @ifunc_as1 = ifunc void (), ptr addrspace(1) @resolver_as1
9@ifunc_as1 = ifunc void (), ptr addrspace(1) @resolver_as1
10
11; CHECK: define ptr @resolver_as0() addrspace(0) {
12define ptr @resolver_as0() addrspace(0) {
13  ret ptr null
14}
15
16; CHECK: define ptr @resolver_as1() addrspace(1) {
17define ptr @resolver_as1() addrspace(1) {
18  ret ptr null
19}
20
21; CHECK: define void @call_ifunc_as0() addrspace(1) {
22; CHECK-NEXT: call addrspace(0) void @ifunc_as0()
23define void @call_ifunc_as0() addrspace(1) {
24  call addrspace(0) void @ifunc_as0()
25  ret void
26}
27
28; CHECK: define void @call_ifunc_as1() addrspace(1) {
29; CHECK-NEXT: call addrspace(1) void @ifunc_as1()
30define void @call_ifunc_as1() addrspace(1) {
31  call addrspace(1) void @ifunc_as1()
32  ret void
33}
34