]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/MC/Mips/elf-tls.ll
Vendor import of llvm RELEASE_34/dot1-final tag r208032 (effectively, 3.4.1 release):
[FreeBSD/FreeBSD.git] / test / MC / Mips / elf-tls.ll
1 ; RUN: llc -filetype=obj -mtriple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s
2
3 ; Check that the appropriate relocations were created.
4
5 ; CHECK: Relocations [
6 ; CHECK:   Section (2) .rel.text {
7 ; CHECK:     R_MIPS_TLS_LDM
8 ; CHECK:     R_MIPS_TLS_DTPREL_HI16
9 ; CHECK:     R_MIPS_TLS_DTPREL_LO16
10 ; CHECK:   }
11 ; CHECK: ]
12
13 @t1 = thread_local global i32 0, align 4
14
15 define i32 @f1() nounwind {
16 entry:
17   %tmp = load i32* @t1, align 4
18   ret i32 %tmp
19
20 }
21
22
23 @t2 = external thread_local global i32
24
25 define i32 @f2() nounwind {
26 entry:
27   %tmp = load i32* @t2, align 4
28   ret i32 %tmp
29
30 }
31
32 @f3.i = internal thread_local unnamed_addr global i32 1, align 4
33
34 define i32 @f3() nounwind {
35 entry:
36   %0 = load i32* @f3.i, align 4
37   %inc = add nsw i32 %0, 1
38   store i32 %inc, i32* @f3.i, align 4
39   ret i32 %inc
40 }