[llvm] 9148aea - [X86] Remove unnecessary string instruction overrides from znver1/znver2 models
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 20 04:58:02 PST 2022
Author: Simon Pilgrim
Date: 2022-11-20T12:57:44Z
New Revision: 9148aeac0072b60c2901f0c3c1ffbdd826168f31
URL: https://github.com/llvm/llvm-project/commit/9148aeac0072b60c2901f0c3c1ffbdd826168f31
DIFF: https://github.com/llvm/llvm-project/commit/9148aeac0072b60c2901f0c3c1ffbdd826168f31.diff
LOG: [X86] Remove unnecessary string instruction overrides from znver1/znver2 models
Reported by D138359 - they were being overridden as WriteMicrocoded despite already being declared WriteMicrocoded
It also fixes a rather funny instregex mismatch that was matching the movsldup shuffle by mistake
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 8ded50974e6b..bfb68ba3f620 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -767,25 +767,6 @@ def : InstRW<[WriteMicrocoded], (instrs RDRAND16r, RDRAND32r, RDRAND64r)>;
// XGETBV.
def : InstRW<[WriteMicrocoded], (instrs XGETBV)>;
-//-- String instructions --//
-// CMPS.
-def : InstRW<[WriteMicrocoded], (instregex "CMPS(B|L|Q|W)")>;
-
-// LODSB/W.
-def : InstRW<[WriteMicrocoded], (instregex "LODS(B|W)")>;
-
-// LODSD/Q.
-def : InstRW<[WriteMicrocoded], (instregex "LODS(L|Q)")>;
-
-// MOVS.
-def : InstRW<[WriteMicrocoded], (instregex "MOVS(B|L|Q|W)")>;
-
-// SCAS.
-def : InstRW<[WriteMicrocoded], (instregex "SCAS(B|W|L|Q)")>;
-
-// STOS
-def : InstRW<[WriteMicrocoded], (instregex "STOS(B|L|Q|W)")>;
-
// XADD.
def ZnXADD : SchedWriteRes<[ZnALU]>;
def : InstRW<[ZnXADD], (instregex "XADD(8|16|32|64)rr")>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 90b66d264802..0a0243d10c04 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -777,25 +777,6 @@ def : InstRW<[WriteMicrocoded], (instregex "RDRAND(16|32|64)r")>;
// XGETBV.
def : InstRW<[WriteMicrocoded], (instregex "XGETBV")>;
-//-- String instructions --//
-// CMPS.
-def : InstRW<[WriteMicrocoded], (instregex "CMPS(B|L|Q|W)")>;
-
-// LODSB/W.
-def : InstRW<[WriteMicrocoded], (instregex "LODS(B|W)")>;
-
-// LODSD/Q.
-def : InstRW<[WriteMicrocoded], (instregex "LODS(L|Q)")>;
-
-// MOVS.
-def : InstRW<[WriteMicrocoded], (instregex "MOVS(B|L|Q|W)")>;
-
-// SCAS.
-def : InstRW<[WriteMicrocoded], (instregex "SCAS(B|W|L|Q)")>;
-
-// STOS
-def : InstRW<[WriteMicrocoded], (instregex "STOS(B|L|Q|W)")>;
-
// XADD.
def Zn2XADD : SchedWriteRes<[Zn2ALU]>;
def : InstRW<[Zn2XADD], (instregex "XADD(8|16|32|64)rr")>;
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
index dc81366a94cf..a93647287106 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s
@@ -61,8 +61,8 @@ mwait
# CHECK-NEXT: 1 8 0.50 * movddup (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 movshdup %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * movshdup (%rax), %xmm2
-# CHECK-NEXT: 1 100 0.25 movsldup %xmm0, %xmm2
-# CHECK-NEXT: 1 100 0.25 * movsldup (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 movsldup %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * movsldup (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U mwait
# CHECK: Resources:
@@ -81,7 +81,7 @@ mwait
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 4.50 4.50 - - - - - - 2.00 4.00 2.00 -
+# CHECK-NEXT: 5.00 5.00 - - - - - - 3.00 5.00 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -103,6 +103,6 @@ mwait
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movddup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - movshdup %xmm0, %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - movsldup %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - movsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - movsldup %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movsldup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - mwait
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
index fa1b2387aabf..7be34f4c6358 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s
@@ -61,8 +61,8 @@ mwait
# CHECK-NEXT: 1 8 0.50 * movddup (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 movshdup %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * movshdup (%rax), %xmm2
-# CHECK-NEXT: 1 100 0.25 movsldup %xmm0, %xmm2
-# CHECK-NEXT: 1 100 0.25 * movsldup (%rax), %xmm2
+# CHECK-NEXT: 1 1 0.50 movsldup %xmm0, %xmm2
+# CHECK-NEXT: 1 8 0.50 * movsldup (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U mwait
# CHECK: Resources:
@@ -82,7 +82,7 @@ mwait
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 3.00 3.00 3.00 - - - - - - 2.00 4.00 2.00 -
+# CHECK-NEXT: 3.33 3.33 3.33 - - - - - - 3.00 5.00 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -104,6 +104,6 @@ mwait
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movddup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movshdup %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - movsldup %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - movsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movsldup %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movsldup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - mwait
More information about the llvm-commits
mailing list