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