[X86] Remove SandyBridge CVTSS2SIrm/CVTSD2SIrm overrides
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 5 Nov 2022 11:19:36 +0000 (11:19 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 5 Nov 2022 11:32:26 +0000 (11:32 +0000)
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

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

index 0f90036..b1dd52d 100644 (file)
@@ -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;
index 39a99e8..291b8cd 100644 (file)
@@ -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          1.00    *                   cvtss2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttss2si      (%rax), %ecx
-# CHECK-NEXT:  3          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
index 7a8d4b0..904454a 100644 (file)
@@ -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          1.00    *                   cvtsd2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttsd2si      (%rax), %ecx
-# CHECK-NEXT:  3          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
index 39a99e8..291b8cd 100644 (file)
@@ -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          1.00    *                   cvtss2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttss2si      (%rax), %ecx
-# CHECK-NEXT:  3          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
index 7a8d4b0..904454a 100644 (file)
@@ -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          1.00    *                   cvtsd2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttsd2si      (%rax), %ecx
-# CHECK-NEXT:  3          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
index 28915f4..02b5810 100644 (file)
@@ -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          1.00    *                   cvtss2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttss2si      (%rax), %ecx
-# CHECK-NEXT:  3          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
index 2b6255c..c3b8b73 100644 (file)
@@ -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          1.00    *                   cvtsd2si       (%rax), %ecx
-# CHECK-NEXT:  3          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          1.00    *                   cvttsd2si      (%rax), %ecx
-# CHECK-NEXT:  3          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