32 lines · plain
1; RUN: llc -verify-machineinstrs -relocation-model=pic < %s | FileCheck %s2 3target triple = "powerpc-unknown-linux-gnu"4 5; Test that LR is preserved when PPC32PICGOT clobbers it with a local "bl".6 7@TLS = external thread_local global i88 9; CHECK-LABEL: tls_addr:10; CHECK: mflr [[SAVED_REG:[0-9]+]]11 12; CHECK: bl [[JUMP:\.L[[:alnum:]_]+]]13; CHECK-NEXT: [[OFFSET:\.L[[:alnum:]_]+]]:14; CHECK-NEXT: .long _GLOBAL_OFFSET_TABLE_-[[OFFSET]]15; CHECK-NEXT: [[JUMP]]16; CHECK-NEXT: mflr {{[0-9]+}}17 18; CHECK: mtlr [[SAVED_REG]]19; CHECK-NEXT: blr20 21define ptr @tls_addr() unnamed_addr {22 %1 = call ptr @llvm.threadlocal.address.p0(ptr @TLS)23 ret ptr %124}25 26declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull)27 28!llvm.module.flags = !{!0, !1}29 30!0 = !{i32 8, !"PIC Level", i32 2}31!1 = !{i32 7, !"PIE Level", i32 2}32