[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / PowerPC / emutls_generic.ll
blob9a73a715f02e18b921cad3245685819d4c9367d9
1 ; RUN: llc < %s -emulated-tls -mtriple=powerpc64-unknown-linux-gnu -relocation-model=pic \
2 ; RUN:     | FileCheck %s
3 ; RUN: llc < %s -emulated-tls -mtriple=powerpc-unknown-linux-gnu -relocation-model=pic \
4 ; RUN:     | FileCheck %s
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
11 ; NoEMU-NOT: __emutls
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 i32* @get_external_x() {
20 entry:
21   ret i32* @external_x
24 define i8* @get_external_y() {
25 entry:
26   ret i8* @external_y
29 define i64* @get_internal_y() {
30 entry:
31   ret i64* @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