diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
commit | f8af5cf600354830d4ccf59732403f0f073eccb9 (patch) | |
tree | 2ba0398b4c42ad4f55561327538044fd2c925a8b /test/CodeGen/X86/tls.ll | |
parent | 59d6cff90eecf31cb3dd860c4e786674cfdd42eb (diff) | |
download | src-test2-f8af5cf600354830d4ccf59732403f0f073eccb9.tar.gz src-test2-f8af5cf600354830d4ccf59732403f0f073eccb9.zip |
Notes
Diffstat (limited to 'test/CodeGen/X86/tls.ll')
-rw-r--r-- | test/CodeGen/X86/tls.ll | 109 |
1 files changed, 52 insertions, 57 deletions
diff --git a/test/CodeGen/X86/tls.ll b/test/CodeGen/X86/tls.ll index 8cdecd81bff5..76a840260b9a 100644 --- a/test/CodeGen/X86/tls.ll +++ b/test/CodeGen/X86/tls.ll @@ -12,19 +12,19 @@ @b1 = thread_local global i8 0 define i32 @f1() { -; X32_LINUX: f1: +; X32_LINUX-LABEL: f1: ; X32_LINUX: movl %gs:i1@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f1: +; X64_LINUX-LABEL: f1: ; X64_LINUX: movl %fs:i1@TPOFF, %eax ; X64_LINUX-NEXT: ret -; X32_WIN: f1: +; 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 -; X64_WIN: f1: +; X64_WIN-LABEL: f1: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -37,21 +37,21 @@ entry: } define i32* @f2() { -; X32_LINUX: f2: +; X32_LINUX-LABEL: f2: ; X32_LINUX: movl %gs:0, %eax ; X32_LINUX-NEXT: leal i1@NTPOFF(%eax), %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f2: +; X64_LINUX-LABEL: f2: ; X64_LINUX: movq %fs:0, %rax ; X64_LINUX-NEXT: leaq i1@TPOFF(%rax), %rax ; X64_LINUX-NEXT: ret -; X32_WIN: f2: +; 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 -; X64_WIN: f2: +; X64_WIN-LABEL: f2: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -63,21 +63,21 @@ entry: } define i32 @f3() nounwind { -; X32_LINUX: f3: +; X32_LINUX-LABEL: f3: ; X32_LINUX: movl i2@INDNTPOFF, %eax ; X32_LINUX-NEXT: movl %gs:(%eax), %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f3: +; X64_LINUX-LABEL: f3: ; X64_LINUX: movq i2@GOTTPOFF(%rip), %rax ; X64_LINUX-NEXT: movl %fs:(%rax), %eax ; X64_LINUX-NEXT: ret -; X32_WIN: f3: +; 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 -; X64_WIN: f3: +; X64_WIN-LABEL: f3: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -90,21 +90,21 @@ entry: } define i32* @f4() { -; X32_LINUX: f4: +; X32_LINUX-LABEL: f4: ; X32_LINUX: movl %gs:0, %eax ; X32_LINUX-NEXT: addl i2@INDNTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f4: +; X64_LINUX-LABEL: f4: ; X64_LINUX: movq %fs:0, %rax ; X64_LINUX-NEXT: addq i2@GOTTPOFF(%rip), %rax ; X64_LINUX-NEXT: ret -; X32_WIN: f4: +; 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 -; X64_WIN: f4: +; X64_WIN-LABEL: f4: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -116,19 +116,19 @@ entry: } define i32 @f5() nounwind { -; X32_LINUX: f5: +; X32_LINUX-LABEL: f5: ; X32_LINUX: movl %gs:i3@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f5: +; X64_LINUX-LABEL: f5: ; X64_LINUX: movl %fs:i3@TPOFF, %eax ; X64_LINUX-NEXT: ret -; X32_WIN: f5: +; 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 -; X64_WIN: f5: +; X64_WIN-LABEL: f5: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -141,21 +141,21 @@ entry: } define i32* @f6() { -; X32_LINUX: f6: +; X32_LINUX-LABEL: f6: ; X32_LINUX: movl %gs:0, %eax ; X32_LINUX-NEXT: leal i3@NTPOFF(%eax), %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f6: +; X64_LINUX-LABEL: f6: ; X64_LINUX: movq %fs:0, %rax ; X64_LINUX-NEXT: leaq i3@TPOFF(%rax), %rax ; X64_LINUX-NEXT: ret -; X32_WIN: f6: +; 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 -; X64_WIN: f6: +; X64_WIN-LABEL: f6: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -167,10 +167,10 @@ entry: } define i32 @f7() { -; X32_LINUX: f7: +; X32_LINUX-LABEL: f7: ; X32_LINUX: movl %gs:i4@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f7: +; X64_LINUX-LABEL: f7: ; X64_LINUX: movl %fs:i4@TPOFF, %eax ; X64_LINUX-NEXT: ret @@ -180,11 +180,11 @@ entry: } define i32* @f8() { -; X32_LINUX: f8: +; X32_LINUX-LABEL: f8: ; X32_LINUX: movl %gs:0, %eax ; X32_LINUX-NEXT: leal i4@NTPOFF(%eax), %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f8: +; X64_LINUX-LABEL: f8: ; X64_LINUX: movq %fs:0, %rax ; X64_LINUX-NEXT: leaq i4@TPOFF(%rax), %rax ; X64_LINUX-NEXT: ret @@ -194,10 +194,10 @@ entry: } define i32 @f9() { -; X32_LINUX: f9: +; X32_LINUX-LABEL: f9: ; X32_LINUX: movl %gs:i5@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f9: +; X64_LINUX-LABEL: f9: ; X64_LINUX: movl %fs:i5@TPOFF, %eax ; X64_LINUX-NEXT: ret @@ -207,11 +207,11 @@ entry: } define i32* @f10() { -; X32_LINUX: f10: +; X32_LINUX-LABEL: f10: ; X32_LINUX: movl %gs:0, %eax ; X32_LINUX-NEXT: leal i5@NTPOFF(%eax), %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f10: +; X64_LINUX-LABEL: f10: ; X64_LINUX: movq %fs:0, %rax ; X64_LINUX-NEXT: leaq i5@TPOFF(%rax), %rax ; X64_LINUX-NEXT: ret @@ -221,29 +221,24 @@ entry: } define i16 @f11() { -; X32_LINUX: f11: +; X32_LINUX-LABEL: f11: ; X32_LINUX: movzwl %gs:s1@NTPOFF, %eax -; Why is this kill line here, but no where else? -; X32_LINUX-NEXT: # kill -; X32_LINUX-NEXT: ret -; X64_LINUX: f11: +; X32_LINUX: ret +; X64_LINUX-LABEL: f11: ; X64_LINUX: movzwl %fs:s1@TPOFF, %eax -; X64_LINUX-NEXT: # kill -; X64_LINUX-NEXT: ret -; X32_WIN: f11: +; 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-NEXT: # kill -; X32_WIN-NEXT: ret -; X64_WIN: f11: +; X32_WIN: ret +; X64_WIN-LABEL: f11: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax ; X64_WIN-NEXT: movzwl s1@SECREL32(%rax), %eax -; X64_WIN-NEXT: # kill -; X64_WIN-NEXT: ret +; X64_WIN: ret entry: %tmp1 = load i16* @s1 @@ -251,19 +246,19 @@ entry: } define i32 @f12() { -; X32_LINUX: f12: +; X32_LINUX-LABEL: f12: ; X32_LINUX: movswl %gs:s1@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f12: +; X64_LINUX-LABEL: f12: ; X64_LINUX: movswl %fs:s1@TPOFF, %eax ; X64_LINUX-NEXT: ret -; X32_WIN: f12: +; 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 -; X64_WIN: f12: +; X64_WIN-LABEL: f12: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -277,19 +272,19 @@ entry: } define i8 @f13() { -; X32_LINUX: f13: +; X32_LINUX-LABEL: f13: ; X32_LINUX: movb %gs:b1@NTPOFF, %al ; X32_LINUX-NEXT: ret -; X64_LINUX: f13: +; X64_LINUX-LABEL: f13: ; X64_LINUX: movb %fs:b1@TPOFF, %al ; X64_LINUX-NEXT: ret -; X32_WIN: f13: +; 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 -; X64_WIN: f13: +; X64_WIN-LABEL: f13: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax @@ -302,19 +297,19 @@ entry: } define i32 @f14() { -; X32_LINUX: f14: +; X32_LINUX-LABEL: f14: ; X32_LINUX: movsbl %gs:b1@NTPOFF, %eax ; X32_LINUX-NEXT: ret -; X64_LINUX: f14: +; X64_LINUX-LABEL: f14: ; X64_LINUX: movsbl %fs:b1@TPOFF, %eax ; X64_LINUX-NEXT: ret -; X32_WIN: f14: +; 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 -; X64_WIN: f14: +; X64_WIN-LABEL: f14: ; X64_WIN: movl _tls_index(%rip), %eax ; X64_WIN-NEXT: movq %gs:88, %rcx ; X64_WIN-NEXT: movq (%rcx,%rax,8), %rax |