1 ; RUN: llc < %s -emulated-tls -mtriple=powerpc64-unknown-linux-gnu -relocation-model=pic \
3 ; RUN: llc < %s -emulated-tls -mtriple=powerpc-unknown-linux-gnu -relocation-model=pic \
6 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -relocation-model=pic \
7 ; RUN: | FileCheck -check-prefix=NoEMU %s
8 ; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -relocation-model=pic \
9 ; RUN: | FileCheck -check-prefix=NoEMU %s
13 ; Make sure that TLS symbols are emitted in expected order.
15 @external_x = external thread_local global i32, align 8
16 @external_y = thread_local global i8 7, align 2
17 @internal_y = internal thread_local global i64 9, align 16
19 define ptr @get_external_x() {
24 define ptr @get_external_y() {
29 define ptr @get_internal_y() {
34 ; CHECK-LABEL: get_external_x:
35 ; CHECK-NOT: _tls_get_address
36 ; CHECK: __emutls_get_address
37 ; CHECK-LABEL: get_external_y:
38 ; CHECK: __emutls_get_address
39 ; CHECK-NOT: _tls_get_address
40 ; CHECK-LABEL: get_internal_y:
41 ; CHECK-NOT: __emutls_t.external_x:
42 ; CHECK-NOT: __emutls_v.external_x:
43 ; CHECK-LABEL: __emutls_v.external_y:
44 ; CHECK-LABEL: __emutls_t.external_y:
45 ; CHECK: __emutls_t.external_y
46 ; CHECK-LABEL: __emutls_v.internal_y:
47 ; CHECK-LABEL: __emutls_t.internal_y:
48 ; CHECK: __emutls_t.internal_y