1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=armv7-pc-linux-gnueabi -relocation-model=pic < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@foo = global i32 42 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32* @get_foo() { 6*9880d681SAndroid Build Coastguard Worker ret i32* @foo 7*9880d681SAndroid Build Coastguard Worker} 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; Test that we only use one load. Even that is only needed because there 10*9880d681SAndroid Build Coastguard Worker; doesn't seem to be pc relative relocations for movw movt. 11*9880d681SAndroid Build Coastguard Worker; CHECK: ldr r0, .LCPI0_0 12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .L{{.*}}: 13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: add r0, pc, r0 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: bx lr 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!0} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker!0 = !{i32 1, !"PIE Level", i32 2} 19