Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / X86 / weak-undef.ll
blob56a30a80b9a7d47fd4c1b0c0372d0a7ea220c710
1 ; RUN: llc < %s -relocation-model=pic -mtriple=x86_64-pc-linux | FileCheck %s
2 ; RUN: llc < %s -relocation-model=pic -mtriple=i386-pc-linux | FileCheck --check-prefix=I386 %s
4 @foo1 = extern_weak hidden global i32, align 4
5 define ptr @bar1() {
6   ret ptr @foo1
8 ; CHECK: bar1:
9 ; CHECK: movq foo1@GOTPCREL(%rip), %rax
10 ; I386: bar1:
11 ; I386: movl foo1@GOT(%eax), %eax
13 @foo2 = external hidden global i32, align 4
14 define ptr @bar2() {
15   ret ptr @foo2
17 ; CHECK: bar2:
18 ; CHECK: leaq foo2(%rip), %rax
19 ; I386: bar2:
20 ; I386: leal foo2@GOTOFF(%eax), %eax
22 declare extern_weak hidden void @foo3()
23 define void @bar3() {
24   call void @foo3()
25   ret void
27 ; CHECK: bar3:
28 ; CHECK: callq foo3
29 ; I386: bar3:
30 ; I386: calll foo3
32 declare external hidden void @foo4()
33 define void @bar4() {
34   call void @foo4()
35   ret void
37 ; CHECK: bar4:
38 ; CHECK: callq foo4
39 ; I386: bar4:
40 ; I386: calll foo4
42 declare extern_weak hidden i32 @foo5()
43 define ptr @bar5() {
44   ret ptr @foo5
46 ; CHECK: bar5:
47 ; CHECK: movq foo5@GOTPCREL(%rip), %rax
48 ; I386: bar5:
49 ; I386: movl foo5@GOT(%eax), %eax
51 declare external hidden i32 @foo6()
52 define ptr @bar6() {
53   ret ptr @foo6
55 ; CHECK: bar6:
56 ; CHECK: leaq foo6(%rip), %rax
57 ; I386: bar6:
58 ; I386: leal foo6@GOTOFF(%eax), %eax