xref: /llvm-project/llvm/test/CodeGen/Mips/dllimport.ll (revision 26b87aad9e2d34d53df67522dc5aea5f7c54a458)
1; RUN: llc -mtriple mipsel-windows < %s | FileCheck %s
2
3@Var1 = external dllimport global i32
4@Var2 = available_externally dllimport unnamed_addr constant i32 1
5
6declare dllimport void @fun()
7
8define available_externally dllimport void @inline1() {
9	ret void
10}
11
12define available_externally dllimport void @inline2() alwaysinline {
13	ret void
14}
15
16declare void @dummy(...)
17
18define void @use() nounwind {
19; CHECK:     lui $1, %hi(__imp_fun)
20; CHECK:     addiu $1, $1, %lo(__imp_fun)
21; CHECK:     lw $25, 0($1)
22; CHECK:     jalr $25
23  call void @fun()
24
25; CHECK:     lui $1, %hi(__imp_inline1)
26; CHECK:     addiu $1, $1, %lo(__imp_inline1)
27; CHECK:     lw $25, 0($1)
28; CHECK:     jalr $25
29  call void @inline1()
30
31; CHECK:     lui $1, %hi(__imp_inline2)
32; CHECK:     addiu $1, $1, %lo(__imp_inline2)
33; CHECK:     lw $25, 0($1)
34; CHECK:     jalr $25
35  call void @inline2()
36
37; CHECK:     lui $1, %hi(__imp_Var2)
38; CHECK:     addiu $1, $1, %lo(__imp_Var2)
39; CHECK:     lw $1, 0($1)
40; CHECK:     lw $5, 0($1)
41; CHECK:     lui $1, %hi(__imp_Var1)
42; CHECK:     addiu $1, $1, %lo(__imp_Var1)
43; CHECK:     lw $1, 0($1)
44; CHECK:     lw $4, 0($1)
45  %1 = load i32, ptr @Var1
46  %2 = load i32, ptr @Var2
47  call void(...) @dummy(i32 %1, i32 %2)
48
49  ret void
50}
51
52; CHECK: fp:
53; CHECK-NEXT: .long fun
54@fp = constant ptr @fun
55
56