59 lines · plain
1; RUN: llc < %s -relocation-model=pic -mtriple=x86_64-pc-linux | FileCheck %s2; RUN: llc < %s -relocation-model=pic -mtriple=i386-pc-linux | FileCheck --check-prefix=I386 %s3 4@foo1 = extern_weak hidden global i32, align 45define ptr @bar1() {6 ret ptr @foo17}8; CHECK: bar1:9; CHECK: movq foo1@GOTPCREL(%rip), %rax10; I386: bar1:11; I386: movl foo1@GOT(%eax), %eax12 13@foo2 = external hidden global i32, align 414define ptr @bar2() {15 ret ptr @foo216}17; CHECK: bar2:18; CHECK: leaq foo2(%rip), %rax19; I386: bar2:20; I386: leal foo2@GOTOFF(%eax), %eax21 22declare extern_weak hidden void @foo3()23define void @bar3() {24 call void @foo3()25 ret void26}27; CHECK: bar3:28; CHECK: callq foo329; I386: bar3:30; I386: calll foo331 32declare external hidden void @foo4()33define void @bar4() {34 call void @foo4()35 ret void36}37; CHECK: bar4:38; CHECK: callq foo439; I386: bar4:40; I386: calll foo441 42declare extern_weak hidden i32 @foo5()43define ptr @bar5() {44 ret ptr @foo545}46; CHECK: bar5:47; CHECK: movq foo5@GOTPCREL(%rip), %rax48; I386: bar5:49; I386: movl foo5@GOT(%eax), %eax50 51declare external hidden i32 @foo6()52define ptr @bar6() {53 ret ptr @foo654}55; CHECK: bar6:56; CHECK: leaq foo6(%rip), %rax57; I386: bar6:58; I386: leal foo6@GOTOFF(%eax), %eax59