diff options
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/X86/tls-pic.ll | 38 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/tls-pie.ll | 127 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/tls.ll | 246 | 
3 files changed, 221 insertions, 190 deletions
| diff --git a/llvm/test/CodeGen/X86/tls-pic.ll b/llvm/test/CodeGen/X86/tls-pic.ll index 805bc25c17b..ac0b43b2402 100644 --- a/llvm/test/CodeGen/X86/tls-pic.ll +++ b/llvm/test/CodeGen/X86/tls-pic.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -relocation-model=pic | FileCheck -check-prefix=X32 %s -; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -relocation-model=pic | FileCheck -check-prefix=X64 %s +; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -relocation-model=pic | FileCheck %s --check-prefix=X86 +; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -relocation-model=pic | FileCheck %s --check-prefix=X64  @i = thread_local global i32 15  @j = internal thread_local global i32 42 @@ -11,9 +11,9 @@ entry:  	ret i32 %tmp1  } -; X32-LABEL: f1: -; X32:   leal i@TLSGD(,%ebx), %eax -; X32:   calll ___tls_get_addr@PLT +; X86-LABEL: f1: +; X86:   leal i@TLSGD(,%ebx), %eax +; X86:   calll ___tls_get_addr@PLT  ; X64-LABEL: f1:  ; X64:   leaq i@TLSGD(%rip), %rdi @@ -27,9 +27,9 @@ entry:  	ret i32* @i  } -; X32-LABEL: f2: -; X32:   leal i@TLSGD(,%ebx), %eax -; X32:   calll ___tls_get_addr@PLT +; X86-LABEL: f2: +; X86:   leal i@TLSGD(,%ebx), %eax +; X86:   calll ___tls_get_addr@PLT  ; X64-LABEL: f2:  ; X64:   leaq i@TLSGD(%rip), %rdi @@ -43,9 +43,9 @@ entry:  	ret i32 %tmp1  } -; X32-LABEL: f3: -; X32:   leal	i@TLSGD(,%ebx), %eax -; X32:   calll ___tls_get_addr@PLT +; X86-LABEL: f3: +; X86:   leal	i@TLSGD(,%ebx), %eax +; X86:   calll ___tls_get_addr@PLT  ; X64-LABEL: f3:  ; X64:   leaq i@TLSGD(%rip), %rdi @@ -57,9 +57,9 @@ entry:  	ret i32* @i  } -; X32-LABEL: f4: -; X32:   leal	i@TLSGD(,%ebx), %eax -; X32:   calll ___tls_get_addr@PLT +; X86-LABEL: f4: +; X86:   leal	i@TLSGD(,%ebx), %eax +; X86:   calll ___tls_get_addr@PLT  ; X64-LABEL: f4:  ; X64:   leaq i@TLSGD(%rip), %rdi @@ -74,11 +74,11 @@ entry:  	ret i32 %add  } -; X32-LABEL:    f5: -; X32:      leal {{[jk]}}@TLSLDM(%ebx) -; X32: calll ___tls_get_addr@PLT -; X32: movl {{[jk]}}@DTPOFF(%e -; X32: addl {{[jk]}}@DTPOFF(%e +; X86-LABEL:    f5: +; X86:      leal {{[jk]}}@TLSLDM(%ebx) +; X86: calll ___tls_get_addr@PLT +; X86: movl {{[jk]}}@DTPOFF(%e +; X86: addl {{[jk]}}@DTPOFF(%e  ; X64-LABEL:    f5:  ; X64:      leaq {{[jk]}}@TLSLD(%rip), %rdi diff --git a/llvm/test/CodeGen/X86/tls-pie.ll b/llvm/test/CodeGen/X86/tls-pie.ll index 842a3bab664..7a7e40362bc 100644 --- a/llvm/test/CodeGen/X86/tls-pie.ll +++ b/llvm/test/CodeGen/X86/tls-pie.ll @@ -1,81 +1,112 @@ -; RUN: llc < %s -march=x86 -mcpu=generic -mtriple=i386-linux-gnu -relocation-model=pic \ -; RUN:   | FileCheck -check-prefix=X32 %s -; RUN: llc < %s -march=x86-64 -mcpu=generic -mtriple=x86_64-linux-gnu -relocation-model=pic \ -; RUN:   | FileCheck -check-prefix=X64 %s +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -march=x86 -mcpu=generic -mtriple=i386-linux-gnu -relocation-model=pic | FileCheck %s --check-prefix=X86 +; RUN: llc < %s -march=x86-64 -mcpu=generic -mtriple=x86_64-linux-gnux32 -relocation-model=pic | FileCheck %s --check-prefix=X32 +; RUN: llc < %s -march=x86-64 -mcpu=generic -mtriple=x86_64-linux-gnu -relocation-model=pic | FileCheck %s --check-prefix=X64  @i = thread_local global i32 15  @i2 = external thread_local global i32  define i32 @f1() { +; X86-LABEL: f1: +; X86:       # BB#0: # %entry +; X86-NEXT:    movl %gs:i@NTPOFF, %eax +; X86-NEXT:    retl +;  ; X32-LABEL: f1: -; X32:      movl %gs:i@NTPOFF, %eax -; X32-NEXT: ret +; X32:       # BB#0: # %entry +; X32-NEXT:    movl %fs:i@TPOFF, %eax +; X32-NEXT:    retq +;  ; X64-LABEL: f1: -; X64:      movl %fs:i@TPOFF, %eax -; X64-NEXT: ret - +; X64:       # BB#0: # %entry +; X64-NEXT:    movl %fs:i@TPOFF, %eax +; X64-NEXT:    retq  entry:  	%tmp1 = load i32, i32* @i  	ret i32 %tmp1  }  define i32* @f2() { +; X86-LABEL: f2: +; X86:       # BB#0: # %entry +; X86-NEXT:    movl %gs:0, %eax +; X86-NEXT:    leal i@NTPOFF(%eax), %eax +; X86-NEXT:    retl +;  ; X32-LABEL: f2: -; X32:      movl %gs:0, %eax -; X32-NEXT: leal i@NTPOFF(%eax), %eax -; X32-NEXT: ret +; X32:       # BB#0: # %entry +; X32-NEXT:    movl %fs:0, %eax +; X32-NEXT:    leal i@TPOFF(%rax), %eax +; X32-NEXT:    retq +;  ; X64-LABEL: f2: -; X64:      movq %fs:0, %rax -; X64-NEXT: leaq i@TPOFF(%rax), %rax -; X64-NEXT: ret - +; X64:       # BB#0: # %entry +; X64-NEXT:    movq %fs:0, %rax +; X64-NEXT:    leaq i@TPOFF(%rax), %rax +; X64-NEXT:    retq  entry:  	ret i32* @i  }  define i32 @f3() { +; X86-LABEL: f3: +; X86:       # BB#0: # %entry +; X86-NEXT:    calll .L2$pb +; X86-NEXT:  .Lcfi0: +; X86-NEXT:    .cfi_adjust_cfa_offset 4 +; X86-NEXT:  .L2$pb: +; X86-NEXT:    popl %eax +; X86-NEXT:  .Lcfi1: +; X86-NEXT:    .cfi_adjust_cfa_offset -4 +; X86-NEXT:  .Ltmp0: +; X86-NEXT:    addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L2$pb), %eax +; X86-NEXT:    movl i2@GOTNTPOFF(%eax), %eax +; X86-NEXT:    movl %gs:(%eax), %eax +; X86-NEXT:    retl +;  ; X32-LABEL: f3: -; X32:      calll .L{{[0-9]+}}$pb -; X32-NEXT: .Lcfi{{[0-9]+}}: -; X32-NEXT: .cfi_adjust_cfa_offset 4 -; X32-NEXT: .L{{[0-9]+}}$pb: -; X32-NEXT: popl %eax -; X32-NEXT: .Lcfi{{[0-9]+}}: -; X32-NEXT: .cfi_adjust_cfa_offset -4 -; X32-NEXT: .Ltmp{{[0-9]+}}: -; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %eax -; X32-NEXT: movl i2@GOTNTPOFF(%eax), %eax -; X32-NEXT: movl %gs:(%eax), %eax -; X32-NEXT: ret +; X32:       # BB#0: # %entry +; X32-NEXT:    movl i2@{{.*}}(%rip), %eax +; X32-NEXT:    movl %fs:(%eax), %eax +; X32-NEXT:    retq +;  ; X64-LABEL: f3: -; X64:      movq i2@GOTTPOFF(%rip), %rax -; X64-NEXT: movl %fs:(%rax), %eax -; X64-NEXT: ret - +; X64:       # BB#0: # %entry +; X64-NEXT:    movq i2@{{.*}}(%rip), %rax +; X64-NEXT:    movl %fs:(%rax), %eax +; X64-NEXT:    retq  entry:  	%tmp1 = load i32, i32* @i2  	ret i32 %tmp1  }  define i32* @f4() { +; X86-LABEL: f4: +; X86:       # BB#0: # %entry +; X86-NEXT:    calll .L3$pb +; X86-NEXT:  .Lcfi2: +; X86-NEXT:    .cfi_adjust_cfa_offset 4 +; X86-NEXT:  .L3$pb: +; X86-NEXT:    popl %ecx +; X86-NEXT:  .Lcfi3: +; X86-NEXT:    .cfi_adjust_cfa_offset -4 +; X86-NEXT:  .Ltmp1: +; X86-NEXT:    addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp1-.L3$pb), %ecx +; X86-NEXT:    movl %gs:0, %eax +; X86-NEXT:    addl i2@GOTNTPOFF(%ecx), %eax +; X86-NEXT:    retl +;  ; X32-LABEL: f4: -; X32:      calll .L{{[0-9]+}}$pb -; X32-NEXT: .Lcfi{{[0-9]+}}: -; X32-NEXT: .cfi_adjust_cfa_offset 4 -; X32-NEXT: .L{{[0-9]+}}$pb: -; X32-NEXT: popl %ecx -; X32-NEXT: .Lcfi{{[0-9]+}}: -; X32-NEXT: .cfi_adjust_cfa_offset -4 -; X32-NEXT: .Ltmp{{[0-9]+}}: -; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %ecx -; X32-NEXT: movl %gs:0, %eax -; X32-NEXT: addl i2@GOTNTPOFF(%ecx), %eax -; X32-NEXT: ret +; X32:       # BB#0: # %entry +; X32-NEXT:    movl %fs:0, %eax +; X32-NEXT:    addl i2@{{.*}}(%rip), %eax +; X32-NEXT:    retq +;  ; X64-LABEL: f4: -; X64:      movq %fs:0, %rax -; X64-NEXT: addq i2@GOTTPOFF(%rip), %rax -; X64-NEXT: ret - +; X64:       # BB#0: # %entry +; X64-NEXT:    movq %fs:0, %rax +; X64-NEXT:    addq i2@{{.*}}(%rip), %rax +; X64-NEXT:    retq  entry:  	ret i32* @i2  } diff --git a/llvm/test/CodeGen/X86/tls.ll b/llvm/test/CodeGen/X86/tls.ll index 85c51e618b2..d39716aab76 100644 --- a/llvm/test/CodeGen/X86/tls.ll +++ b/llvm/test/CodeGen/X86/tls.ll @@ -1,6 +1,6 @@ -; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu | FileCheck -check-prefix=X32_LINUX %s +; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu | FileCheck -check-prefix=X86_LINUX %s  ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu | FileCheck -check-prefix=X64_LINUX %s -; RUN: llc < %s -march=x86 -mtriple=x86-pc-win32 | FileCheck -check-prefix=X32_WIN %s +; RUN: llc < %s -march=x86 -mtriple=x86-pc-win32 | FileCheck -check-prefix=X86_WIN %s  ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-win32 | FileCheck -check-prefix=X64_WIN %s  ; RUN: llc < %s -march=x86 -mtriple=x86-pc-windows-gnu | FileCheck -check-prefix=MINGW32 %s  ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-pc-windows-gnu | FileCheck -check-prefix=X64_WIN %s @@ -16,18 +16,18 @@  @b2 = thread_local(localexec) global i8 0  define i32 @f1() { -; X32_LINUX-LABEL: f1: -; X32_LINUX:      movl %gs:i1@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f1: +; X86_LINUX:      movl %gs:i1@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f1:  ; X64_LINUX:      movl %fs:i1@TPOFF, %eax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f1: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movl _i1@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f1: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movl _i1@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f1:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -47,20 +47,20 @@ entry:  }  define i32* @f2() { -; X32_LINUX-LABEL: f2: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: leal i1@NTPOFF(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f2: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: leal i1@NTPOFF(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f2:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: leaq i1@TPOFF(%rax), %rax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f2: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: leal _i1@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f2: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: leal _i1@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f2:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -79,20 +79,20 @@ entry:  }  define i32 @f3() nounwind { -; X32_LINUX-LABEL: f3: -; X32_LINUX:      movl i2@INDNTPOFF, %eax -; X32_LINUX-NEXT: movl %gs:(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f3: +; X86_LINUX:      movl i2@INDNTPOFF, %eax +; X86_LINUX-NEXT: movl %gs:(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f3:  ; X64_LINUX:      movq i2@GOTTPOFF(%rip), %rax  ; X64_LINUX-NEXT: movl %fs:(%rax), %eax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f3: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movl _i2@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f3: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movl _i2@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f3:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -112,20 +112,20 @@ entry:  }  define i32* @f4() { -; X32_LINUX-LABEL: f4: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: addl i2@INDNTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f4: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: addl i2@INDNTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f4:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: addq i2@GOTTPOFF(%rip), %rax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f4: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: leal _i2@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f4: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: leal _i2@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f4:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -144,18 +144,18 @@ entry:  }  define i32 @f5() nounwind { -; X32_LINUX-LABEL: f5: -; X32_LINUX:      movl %gs:i3@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f5: +; X86_LINUX:      movl %gs:i3@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f5:  ; X64_LINUX:      movl %fs:i3@TPOFF, %eax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f5: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movl _i3@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f5: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movl _i3@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f5:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -175,20 +175,20 @@ entry:  }  define i32* @f6() { -; X32_LINUX-LABEL: f6: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: leal i3@NTPOFF(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f6: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: leal i3@NTPOFF(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f6:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: leaq i3@TPOFF(%rax), %rax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f6: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: leal _i3@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f6: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: leal _i3@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f6:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -207,9 +207,9 @@ entry:  }  define i32 @f7() { -; X32_LINUX-LABEL: f7: -; X32_LINUX:      movl %gs:i4@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f7: +; X86_LINUX:      movl %gs:i4@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f7:  ; X64_LINUX:      movl %fs:i4@TPOFF, %eax  ; X64_LINUX-NEXT: ret @@ -226,10 +226,10 @@ entry:  }  define i32* @f8() { -; X32_LINUX-LABEL: f8: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: leal i4@NTPOFF(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f8: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: leal i4@NTPOFF(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f8:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: leaq i4@TPOFF(%rax), %rax @@ -246,9 +246,9 @@ entry:  }  define i32 @f9() { -; X32_LINUX-LABEL: f9: -; X32_LINUX:      movl %gs:i5@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f9: +; X86_LINUX:      movl %gs:i5@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f9:  ; X64_LINUX:      movl %fs:i5@TPOFF, %eax  ; X64_LINUX-NEXT: ret @@ -265,10 +265,10 @@ entry:  }  define i32* @f10() { -; X32_LINUX-LABEL: f10: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: leal i5@NTPOFF(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f10: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: leal i5@NTPOFF(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f10:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: leaq i5@TPOFF(%rax), %rax @@ -285,18 +285,18 @@ entry:  }  define i16 @f11() { -; X32_LINUX-LABEL: f11: -; X32_LINUX:      movzwl %gs:s1@NTPOFF, %eax -; X32_LINUX:      ret +; X86_LINUX-LABEL: f11: +; X86_LINUX:      movzwl %gs:s1@NTPOFF, %eax +; X86_LINUX:      ret  ; X64_LINUX-LABEL: f11:  ; X64_LINUX:      movzwl %fs:s1@TPOFF, %eax  ; X64_LINUX:      ret -; X32_WIN-LABEL: f11: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movzwl _s1@SECREL32(%eax), %eax -; X32_WIN:      ret +; X86_WIN-LABEL: f11: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movzwl _s1@SECREL32(%eax), %eax +; X86_WIN:      ret  ; X64_WIN-LABEL: f11:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -316,18 +316,18 @@ entry:  }  define i32 @f12() { -; X32_LINUX-LABEL: f12: -; X32_LINUX:      movswl %gs:s1@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f12: +; X86_LINUX:      movswl %gs:s1@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f12:  ; X64_LINUX:      movswl %fs:s1@TPOFF, %eax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f12: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movswl _s1@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f12: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movswl _s1@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f12:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -349,18 +349,18 @@ entry:  }  define i8 @f13() { -; X32_LINUX-LABEL: f13: -; X32_LINUX:      movb %gs:b1@NTPOFF, %al -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f13: +; X86_LINUX:      movb %gs:b1@NTPOFF, %al +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f13:  ; X64_LINUX:      movb %fs:b1@TPOFF, %al  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f13: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movb _b1@SECREL32(%eax), %al -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f13: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movb _b1@SECREL32(%eax), %al +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f13:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -380,18 +380,18 @@ entry:  }  define i32 @f14() { -; X32_LINUX-LABEL: f14: -; X32_LINUX:      movsbl %gs:b1@NTPOFF, %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f14: +; X86_LINUX:      movsbl %gs:b1@NTPOFF, %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f14:  ; X64_LINUX:      movsbl %fs:b1@TPOFF, %eax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f14: -; X32_WIN:      movl __tls_index, %eax -; X32_WIN-NEXT: movl %fs:__tls_array, %ecx -; X32_WIN-NEXT: movl (%ecx,%eax,4), %eax -; X32_WIN-NEXT: movsbl _b1@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f14: +; X86_WIN:      movl __tls_index, %eax +; X86_WIN-NEXT: movl %fs:__tls_array, %ecx +; X86_WIN-NEXT: movl (%ecx,%eax,4), %eax +; X86_WIN-NEXT: movsbl _b1@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f14:  ; X64_WIN:      movl _tls_index(%rip), %eax  ; X64_WIN-NEXT: movq %gs:88, %rcx @@ -412,19 +412,19 @@ entry:  }  define i8* @f15() { -; X32_LINUX-LABEL: f15: -; X32_LINUX:      movl %gs:0, %eax -; X32_LINUX-NEXT: leal b2@NTPOFF(%eax), %eax -; X32_LINUX-NEXT: ret +; X86_LINUX-LABEL: f15: +; X86_LINUX:      movl %gs:0, %eax +; X86_LINUX-NEXT: leal b2@NTPOFF(%eax), %eax +; X86_LINUX-NEXT: ret  ; X64_LINUX-LABEL: f15:  ; X64_LINUX:      movq %fs:0, %rax  ; X64_LINUX-NEXT: leaq b2@TPOFF(%rax), %rax  ; X64_LINUX-NEXT: ret -; X32_WIN-LABEL: f15: -; X32_WIN:      movl %fs:__tls_array, %eax -; X32_WIN-NEXT: movl (%eax), %eax -; X32_WIN-NEXT: leal _b2@SECREL32(%eax), %eax -; X32_WIN-NEXT: ret +; X86_WIN-LABEL: f15: +; X86_WIN:      movl %fs:__tls_array, %eax +; X86_WIN-NEXT: movl (%eax), %eax +; X86_WIN-NEXT: leal _b2@SECREL32(%eax), %eax +; X86_WIN-NEXT: ret  ; X64_WIN-LABEL: f15:  ; X64_WIN:      movq %gs:88, %rax  ; X64_WIN-NEXT: movq (%rax), %rax @@ -441,10 +441,10 @@ entry:  define i32* @f16() { -; X32_LINUX-LABEL: f16: -; X32_LINUX:       movl %gs:0, %eax -; X32_LINUX-NEXT:  leal i6@NTPOFF(%eax), %eax -; X32_LINUX-NEXT:  ret +; X86_LINUX-LABEL: f16: +; X86_LINUX:       movl %gs:0, %eax +; X86_LINUX-NEXT:  leal i6@NTPOFF(%eax), %eax +; X86_LINUX-NEXT:  ret  ; X64_LINUX-LABEL: f16:  ; X64_LINUX:       movq %fs:0, %rax | 

