From e1164c7a9287aec97dad06169271551c92dcfd78 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 18 Jun 2023 15:24:44 +0100 Subject: [PATCH] [X86] Regenerate tls.ll and reuse common linux check prefixes --- llvm/test/CodeGen/X86/tls.ll | 262 +++++-------------------------------------- 1 file changed, 30 insertions(+), 232 deletions(-) diff --git a/llvm/test/CodeGen/X86/tls.ll b/llvm/test/CodeGen/X86/tls.ll index c4ee609..435555d 100644 --- a/llvm/test/CodeGen/X86/tls.ll +++ b/llvm/test/CodeGen/X86/tls.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=i386-linux-gnu | FileCheck -check-prefix=X86_LINUX %s ; RUN: llc < %s -mtriple=x86_64-linux-gnu | FileCheck -check-prefix=X64_LINUX %s -; RUN: llc < %s -mtriple=i386-linux-gnu -fast-isel | FileCheck -check-prefix=X86_ISEL_LINUX %s -; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel | FileCheck -check-prefix=X64_ISEL_LINUX %s +; RUN: llc < %s -mtriple=i386-linux-gnu -fast-isel | FileCheck -check-prefix=X86_LINUX %s +; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel | FileCheck -check-prefix=X64_LINUX %s ; RUN: llc < %s -mtriple=i686-pc-win32 | FileCheck -check-prefix=X86_WIN %s ; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck -check-prefix=X64_WIN %s ; RUN: llc < %s -mtriple=i686-pc-windows-gnu | FileCheck -check-prefix=MINGW32 %s @@ -29,16 +29,6 @@ define dso_local i32 @f1() { ; X64_LINUX-NEXT: movl %fs:i1@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f1: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:i1@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f1: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movl %fs:i1@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f1: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -64,8 +54,8 @@ define dso_local i32 @f1() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i1 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i1 + ret i32 %tmp1 } define dso_local ptr @f2() { @@ -81,18 +71,6 @@ define dso_local ptr @f2() { ; X64_LINUX-NEXT: leaq i1@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f2: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal i1@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f2: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq i1@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f2: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -118,7 +96,7 @@ define dso_local ptr @f2() { ; MINGW32-NEXT: retl entry: - ret ptr @i1 + ret ptr @i1 } define dso_local i32 @f3() nounwind { @@ -134,18 +112,6 @@ define dso_local i32 @f3() nounwind { ; X64_LINUX-NEXT: movl %fs:(%rax), %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f3: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl i2@INDNTPOFF, %eax -; X86_ISEL_LINUX-NEXT: movl %gs:(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f3: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq i2@GOTTPOFF(%rip), %rax -; X64_ISEL_LINUX-NEXT: movl %fs:(%rax), %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f3: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -171,8 +137,8 @@ define dso_local i32 @f3() nounwind { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i2 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i2 + ret i32 %tmp1 } define dso_local ptr @f4() { @@ -188,18 +154,6 @@ define dso_local ptr @f4() { ; X64_LINUX-NEXT: addq i2@GOTTPOFF(%rip), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f4: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: addl i2@INDNTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f4: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: addq i2@GOTTPOFF(%rip), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f4: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -225,7 +179,7 @@ define dso_local ptr @f4() { ; MINGW32-NEXT: retl entry: - ret ptr @i2 + ret ptr @i2 } define dso_local i32 @f5() nounwind { @@ -239,16 +193,6 @@ define dso_local i32 @f5() nounwind { ; X64_LINUX-NEXT: movl %fs:i3@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f5: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:i3@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f5: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movl %fs:i3@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f5: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -274,8 +218,8 @@ define dso_local i32 @f5() nounwind { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i3 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i3 + ret i32 %tmp1 } define dso_local ptr @f6() { @@ -291,18 +235,6 @@ define dso_local ptr @f6() { ; X64_LINUX-NEXT: leaq i3@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f6: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal i3@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f6: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq i3@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f6: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -328,7 +260,7 @@ define dso_local ptr @f6() { ; MINGW32-NEXT: retl entry: - ret ptr @i3 + ret ptr @i3 } define dso_local i32 @f7() { @@ -342,16 +274,6 @@ define dso_local i32 @f7() { ; X64_LINUX-NEXT: movl %fs:i4@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f7: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:i4@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f7: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movl %fs:i4@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f7: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -377,8 +299,8 @@ define dso_local i32 @f7() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i4 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i4 + ret i32 %tmp1 } define dso_local ptr @f8() { @@ -394,18 +316,6 @@ define dso_local ptr @f8() { ; X64_LINUX-NEXT: leaq i4@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f8: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal i4@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f8: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq i4@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f8: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -431,7 +341,7 @@ define dso_local ptr @f8() { ; MINGW32-NEXT: retl entry: - ret ptr @i4 + ret ptr @i4 } define dso_local i32 @f9() { @@ -445,16 +355,6 @@ define dso_local i32 @f9() { ; X64_LINUX-NEXT: movl %fs:i5@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f9: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:i5@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f9: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movl %fs:i5@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f9: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -480,8 +380,8 @@ define dso_local i32 @f9() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i5 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i5 + ret i32 %tmp1 } define dso_local ptr @f10() { @@ -497,18 +397,6 @@ define dso_local ptr @f10() { ; X64_LINUX-NEXT: leaq i5@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f10: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal i5@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f10: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq i5@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f10: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -534,7 +422,7 @@ define dso_local ptr @f10() { ; MINGW32-NEXT: retl entry: - ret ptr @i5 + ret ptr @i5 } define i16 @f11() { @@ -548,16 +436,6 @@ define i16 @f11() { ; X64_LINUX-NEXT: movzwl %fs:s1@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f11: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movzwl %gs:s1@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f11: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movzwl %fs:s1@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f11: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -583,8 +461,8 @@ define i16 @f11() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i16, ptr @s1 - ret i16 %tmp1 + %tmp1 = load i16, ptr @s1 + ret i16 %tmp1 } define dso_local i32 @f12() { @@ -598,16 +476,6 @@ define dso_local i32 @f12() { ; X64_LINUX-NEXT: movswl %fs:s1@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f12: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movswl %gs:s1@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f12: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movswl %fs:s1@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f12: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -634,9 +502,9 @@ define dso_local i32 @f12() { entry: - %tmp1 = load i16, ptr @s1 + %tmp1 = load i16, ptr @s1 %tmp2 = sext i16 %tmp1 to i32 - ret i32 %tmp2 + ret i32 %tmp2 } define dso_local i8 @f13() { @@ -650,16 +518,6 @@ define dso_local i8 @f13() { ; X64_LINUX-NEXT: movzbl %fs:b1@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f13: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movzbl %gs:b1@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f13: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movzbl %fs:b1@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f13: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -685,8 +543,8 @@ define dso_local i8 @f13() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i8, ptr @b1 - ret i8 %tmp1 + %tmp1 = load i8, ptr @b1 + ret i8 %tmp1 } define dso_local i32 @f14() { @@ -700,16 +558,6 @@ define dso_local i32 @f14() { ; X64_LINUX-NEXT: movsbl %fs:b1@TPOFF, %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f14: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movsbl %gs:b1@NTPOFF, %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f14: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movsbl %fs:b1@TPOFF, %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f14: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -735,9 +583,9 @@ define dso_local i32 @f14() { ; MINGW32-NEXT: retl entry: - %tmp1 = load i8, ptr @b1 + %tmp1 = load i8, ptr @b1 %tmp2 = sext i8 %tmp1 to i32 - ret i32 %tmp2 + ret i32 %tmp2 } define dso_local ptr @f15() { @@ -753,18 +601,6 @@ define dso_local ptr @f15() { ; X64_LINUX-NEXT: leaq b2@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f15: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal b2@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f15: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq b2@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f15: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl %fs:__tls_array, %eax @@ -786,7 +622,7 @@ define dso_local ptr @f15() { ; MINGW32-NEXT: leal _b2@SECREL32(%eax), %eax ; MINGW32-NEXT: retl entry: - ret ptr @b2 + ret ptr @b2 } @@ -803,18 +639,6 @@ define dso_local ptr @f16() { ; X64_LINUX-NEXT: leaq i6@TPOFF(%rax), %rax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f16: -; X86_ISEL_LINUX: # %bb.0: -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: leal i6@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f16: -; X64_ISEL_LINUX: # %bb.0: -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: leaq i6@TPOFF(%rax), %rax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f16: ; X86_WIN: # %bb.0: ; X86_WIN-NEXT: movl __tls_index, %eax @@ -857,18 +681,6 @@ define dso_local i32 @f17() #0 { ; X64_LINUX-NEXT: movl i1@TPOFF(%rax), %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f17: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl %gs:0, %eax -; X86_ISEL_LINUX-NEXT: movl i1@NTPOFF(%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f17: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rax -; X64_ISEL_LINUX-NEXT: movl i1@TPOFF(%rax), %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f17: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -894,8 +706,8 @@ define dso_local i32 @f17() #0 { ; MINGW32-NEXT: retl entry: - %tmp1 = load i32, ptr @i1 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i1 + ret i32 %tmp1 } ; NOTE: Similar to f3() but with direct TLS segment access disabled @@ -914,20 +726,6 @@ define dso_local i32 @f18() #1 { ; X64_LINUX-NEXT: movl (%rcx,%rax), %eax ; X64_LINUX-NEXT: retq ; -; X86_ISEL_LINUX-LABEL: f18: -; X86_ISEL_LINUX: # %bb.0: # %entry -; X86_ISEL_LINUX-NEXT: movl i2@INDNTPOFF, %eax -; X86_ISEL_LINUX-NEXT: movl %gs:0, %ecx -; X86_ISEL_LINUX-NEXT: movl (%ecx,%eax), %eax -; X86_ISEL_LINUX-NEXT: retl -; -; X64_ISEL_LINUX-LABEL: f18: -; X64_ISEL_LINUX: # %bb.0: # %entry -; X64_ISEL_LINUX-NEXT: movq i2@GOTTPOFF(%rip), %rax -; X64_ISEL_LINUX-NEXT: movq %fs:0, %rcx -; X64_ISEL_LINUX-NEXT: movl (%rcx,%rax), %eax -; X64_ISEL_LINUX-NEXT: retq -; ; X86_WIN-LABEL: f18: ; X86_WIN: # %bb.0: # %entry ; X86_WIN-NEXT: movl __tls_index, %eax @@ -954,8 +752,8 @@ define dso_local i32 @f18() #1 { entry: - %tmp1 = load i32, ptr @i2 - ret i32 %tmp1 + %tmp1 = load i32, ptr @i2 + ret i32 %tmp1 } attributes #0 = { "indirect-tls-seg-refs" } -- 2.7.4