[llvm] 1bd6471 - [X86] Remove SandyBridge CVTSS2SIrm/CVTSD2SIrm overrides

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 5 05:22:43 PDT 2022


Author: Simon Pilgrim
Date: 2022-11-05T11:32:26Z
New Revision: 1bd6471c125d4de288753da0ff8737375503b796

URL: https://github.com/llvm/llvm-project/commit/1bd6471c125d4de288753da0ff8737375503b796
DIFF: https://github.com/llvm/llvm-project/commit/1bd6471c125d4de288753da0ff8737375503b796.diff

LOG: [X86] Remove SandyBridge CVTSS2SIrm/CVTSD2SIrm overrides

Just use the default WriteCvtSS2I/WriteCvtSD2I folded variants (already used by the VCVTSS2SI/VCVTSD2SI AVX variants).

Confirmed with agner and uops.info - there should be no difference between the SSE/AVX1 variants in folded load latency

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86SchedSandyBridge.td
    llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s
    llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse2.s
    llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s
    llvm/test/tools/llvm-mca/X86/Generic/resources-sse2.s
    llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
    llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index 0f90036eb38e3..b1dd52da3fa23 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -1002,13 +1002,6 @@ def SBWriteResGroup87 : SchedWriteRes<[SBPort4,SBPort5,SBPort01,SBPort23]> {
 }
 def: InstRW<[SBWriteResGroup87], (instrs FARCALL64m)>;
 
-def SBWriteResGroup93 : SchedWriteRes<[SBPort0,SBPort1,SBPort23]> {
-  let Latency = 9;
-  let NumMicroOps = 3;
-  let ResourceCycles = [1,1,1];
-}
-def: InstRW<[SBWriteResGroup93], (instregex "CVT(T?)(SD|SS)2SI(64)?rm")>;
-
 def SBWriteResGroup95 : SchedWriteRes<[SBPort5,SBPort01,SBPort23]> {
   let Latency = 9;
   let NumMicroOps = 3;

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s
index 39a99e8a12408..291b8cd43cb4e 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s
@@ -218,14 +218,14 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsi2ssq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %rcx
 # CHECK-NEXT:  1      3     1.00                        cvttps2pi	%xmm0, %mm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2pi	(%rax), %mm2
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  1      14    14.00                       divps	%xmm0, %xmm2
 # CHECK-NEXT:  2      20    14.00   *                   divps	(%rax), %xmm2
 # CHECK-NEXT:  1      14    14.00                       divss	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse2.s
index 7a8d4b03a9356..904454a547077 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse2.s
@@ -440,8 +440,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   cvtps2pd	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %rcx
 # CHECK-NEXT:  2      4     1.00                        cvtsd2ss	%xmm0, %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsd2ss	(%rax), %xmm2
 # CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%ecx, %xmm2
@@ -458,8 +458,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2dq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  1      22    22.00                       divpd	%xmm0, %xmm2
 # CHECK-NEXT:  2      28    22.00   *                   divpd	(%rax), %xmm2
 # CHECK-NEXT:  1      22    22.00                       divsd	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s
index 39a99e8a12408..291b8cd43cb4e 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s
@@ -218,14 +218,14 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsi2ssq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %rcx
 # CHECK-NEXT:  1      3     1.00                        cvttps2pi	%xmm0, %mm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2pi	(%rax), %mm2
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  1      14    14.00                       divps	%xmm0, %xmm2
 # CHECK-NEXT:  2      20    14.00   *                   divps	(%rax), %xmm2
 # CHECK-NEXT:  1      14    14.00                       divss	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse2.s
index 7a8d4b03a9356..904454a547077 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse2.s
@@ -440,8 +440,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   cvtps2pd	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %rcx
 # CHECK-NEXT:  2      4     1.00                        cvtsd2ss	%xmm0, %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsd2ss	(%rax), %xmm2
 # CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%ecx, %xmm2
@@ -458,8 +458,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2dq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  1      22    22.00                       divpd	%xmm0, %xmm2
 # CHECK-NEXT:  2      28    22.00   *                   divpd	(%rax), %xmm2
 # CHECK-NEXT:  1      22    22.00                       divsd	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
index 28915f49790d9..02b5810cda417 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
@@ -218,14 +218,14 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsi2ssq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtss2si	(%rax), %rcx
 # CHECK-NEXT:  1      3     1.00                        cvttps2pi	%xmm0, %mm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2pi	(%rax), %mm2
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttss2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  1      14    14.00                       divps	%xmm0, %xmm2
 # CHECK-NEXT:  2      20    14.00   *                   divps	(%rax), %xmm2
 # CHECK-NEXT:  1      14    14.00                       divss	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s
index 2b6255c697fa1..c3b8b7389df4c 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s
@@ -440,8 +440,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   cvtps2pd	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvtsd2si	(%rax), %rcx
 # CHECK-NEXT:  2      4     1.00                        cvtsd2ss	%xmm0, %xmm2
 # CHECK-NEXT:  3      10    1.00    *                   cvtsd2ss	(%rax), %xmm2
 # CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%ecx, %xmm2
@@ -458,8 +458,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   cvttps2dq	(%rax), %xmm2
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %ecx
 # CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  1      22    22.00                       divpd	%xmm0, %xmm2
 # CHECK-NEXT:  2      28    22.00   *                   divpd	(%rax), %xmm2
 # CHECK-NEXT:  1      22    22.00                       divsd	%xmm0, %xmm2


        


More information about the llvm-commits mailing list