; RUN: llc < %s | FileCheck %s ; Don't try to emit a direct call through a TLS global. ; This fixes PR22103 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @a = external thread_local global i64 ; Function Attrs: nounwind define void @_Z1fv() { ; CHECK-NOT: callq *$a ; CHECK: movq %fs:0, [[RAX:%r..]] ; CHECK-NEXT: addq a@GOTTPOFF(%rip), [[RAX]] ; CHECK-NEXT: callq *[[RAX]] entry: call void bitcast (i64* @a to void ()*)() ret void }