[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / X86 / pie.ll
blobf557765cf910345a47a5123781a2e5eb329c6a3e
1 ; RUN: llc < %s -O0 -mcpu=generic -mtriple=i686-linux-gnu -relocation-model=pic | FileCheck %s 
2 ; RUN: llc < %s -O0 -mcpu=generic -mtriple=i686-linux-gnu -fast-isel -relocation-model=pic | FileCheck %s 
3 ; RUN: llc < %s -O0 -mcpu=generic -mtriple=x86_64-linux-gnu -relocation-model=pic | FileCheck %s 
4 ; RUN: llc < %s -O0 -mcpu=generic -mtriple=x86_64-linux-gnu -fast-isel -relocation-model=pic | FileCheck %s 
6 ; CHECK-LABEL:  bar:
7 ; CHECK:  call{{l|q}}  foo{{$}}
8 ; CHECK:  call{{l|q}}  weak_odr_foo{{$}}
9 ; CHECK:  call{{l|q}}  weak_foo{{$}}
10 ; CHECK:  call{{l|q}}  internal_foo{{$}}
11 ; CHECK:  call{{l|q}}  ext_baz@PLT
13 define weak dso_local void @weak_foo() {
14   ret void
17 define weak_odr dso_local void @weak_odr_foo() {
18   ret void
21 define internal void @internal_foo() {
22   ret void
25 declare i32 @ext_baz()
27 define dso_local void @foo() {
28   ret void
31 define dso_local void @bar() {
32 entry:
33   call void @foo()
34   call void @weak_odr_foo()
35   call void @weak_foo()
36   call void @internal_foo()
37   call i32 @ext_baz()
38   ret void
41 ; -fpie for local global data tests should be added here
43 !llvm.module.flags = !{!0, !1}
44 !0 = !{i32 1, !"PIC Level", i32 1}
45 !1 = !{i32 1, !"PIE Level", i32 1}