1; RUN: llc < %s -emulated-tls -march=x86 -mtriple=x86_64-linux-android -relocation-model=pic | FileCheck  %s
2; RUN: llc < %s -emulated-tls -march=x86-64 -mtriple=x86_64-linux-android -relocation-model=pic | FileCheck  %s
3
4; Make sure that some symboles are not emitted in emulated TLS model.
5
6@external_x = external thread_local global i32
7@external_y = thread_local global i32 7
8@internal_y = internal thread_local global i32 9
9@internal_y0 = internal thread_local global i32 0
10
11define i32* @get_external_x() {
12entry:
13  ret i32* @external_x
14}
15
16define i32* @get_external_y() {
17entry:
18  ret i32* @external_y
19}
20
21define i32* @get_internal_y() {
22entry:
23  ret i32* @internal_y
24}
25
26define i32* @get_internal_y0() {
27entry:
28  ret i32* @internal_y0
29}
30
31; no direct access to emulated TLS variables.
32; no definition of emulated TLS variables.
33; no initializer for external TLS variables, __emutls_t.external_x
34; no initializer for 0-initialized TLS variables, __emutls_t.internal_y0
35; not global linkage for __emutls_t.external_y
36
37; CHECK-NOT: external_x@TLS
38; CHECK-NOT: external_y@TLS
39; CHECK-NOT: internal_y@TLS
40; CHECK-NOT: .size external_x
41; CHECK-NOT: .size external_y
42; CHECK-NOT: .size internal_y
43; CHECK-NOT: .size internal_y0
44; CHECK-NOT: __emutls_v.external_x:
45; CHECK-NOT: __emutls_t.external_x:
46; CHECK-NOT: __emutls_t.internal_y0:
47; CHECK-NOT: global __emutls_t.external_y
48; CHECK-NOT: global __emutls_v.internal_y
49; CHECK-NOT: global __emutls_v.internal_y0
50
51; CHECK:     __emutls_t.external_y
52
53; CHECK-NOT: external_x@TLS
54; CHECK-NOT: external_y@TLS
55; CHECK-NOT: internal_y@TLS
56; CHECK-NOT: .size external_x
57; CHECK-NOT: .size external_y
58; CHECK-NOT: .size internal_y
59; CHECK-NOT: .size internal_y0
60; CHECK-NOT: __emutls_v.external_x:
61; CHECK-NOT: __emutls_t.external_x:
62; CHECK-NOT: __emutls_t.internal_y0:
63; CHECK-NOT: global __emutls_t.external_y
64; CHECK-NOT: global __emutls_v.internal_y
65; CHECK-NOT: global __emutls_v.internal_y0
66