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