1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; Don't try to emit a direct call through a TLS global. 3*9880d681SAndroid Build Coastguard Worker; This fixes PR22103 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 6*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-linux-gnu" 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker@a = external thread_local global i64 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 11*9880d681SAndroid Build Coastguard Workerdefine void @_Z1fv() { 12*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: callq *$a 13*9880d681SAndroid Build Coastguard Worker; CHECK: movq %fs:0, [[RAX:%r..]] 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: addq a@GOTTPOFF(%rip), [[RAX]] 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: callq *[[RAX]] 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker call void bitcast (i64* @a to void ()*)() 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20