[llvm] d073b19 - [X86] Fix SLM FP<->INT throughputs.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 22 11:39:27 PDT 2021


Author: Simon Pilgrim
Date: 2021-07-22T19:39:04+01:00
New Revision: d073b19dbffbba787151d01faeb38c2981553c98

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

LOG: [X86] Fix SLM FP<->INT throughputs.

Noticed while trying to clean up the shift costs model for SSE4 targets using the script in D10369 - SLM double-pumps all the 128-bit vector conversion ops and only use FP0 pipe - numbers taken from Intel AOM + Agner.

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86ScheduleSLM.td
    llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s
    llvm/test/tools/llvm-mca/X86/SLM/resources-sse2.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index 9adc302fa284d..123844a73a599 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -284,31 +284,31 @@ defm : X86WriteResPairUnsupported<WriteFShuffle256>;
 defm : X86WriteResPairUnsupported<WriteFVarShuffle256>;
 
 // Conversion between integer and float.
-defm : SLMWriteResPair<WriteCvtSS2I,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPS2I,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPS2IY,  [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtSS2I,   [SLM_FPC_RSV0], 5>;
+defm : SLMWriteResPair<WriteCvtPS2I,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtPS2IY,  [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2IZ>;
-defm : SLMWriteResPair<WriteCvtSD2I,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPD2I,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPD2IY,  [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtSD2I,   [SLM_FPC_RSV0], 5>;
+defm : SLMWriteResPair<WriteCvtPD2I,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtPD2IY,  [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2IZ>;
 
-defm : SLMWriteResPair<WriteCvtI2SS,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtI2PS,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtI2PSY,  [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtI2SS,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtI2PS,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtI2PSY,  [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PSZ>;
-defm : SLMWriteResPair<WriteCvtI2SD,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtI2PD,   [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtI2PDY,  [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtI2SD,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtI2PD,   [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtI2PDY,  [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>;
 
-defm : SLMWriteResPair<WriteCvtSS2SD,  [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPS2PD,  [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPS2PDY, [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtSS2SD,  [SLM_FPC_RSV0], 4, [2]>;
+defm : SLMWriteResPair<WriteCvtPS2PD,  [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtPS2PDY, [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2PDZ>;
-defm : SLMWriteResPair<WriteCvtSD2SS,  [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPD2PS,  [SLM_FPC_RSV01], 4>;
-defm : SLMWriteResPair<WriteCvtPD2PSY, [SLM_FPC_RSV01], 4>;
+defm : SLMWriteResPair<WriteCvtSD2SS,  [SLM_FPC_RSV0], 4, [2]>;
+defm : SLMWriteResPair<WriteCvtPD2PS,  [SLM_FPC_RSV0], 5, [2]>;
+defm : SLMWriteResPair<WriteCvtPD2PSY, [SLM_FPC_RSV0], 5, [2]>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2PSZ>;
 
 defm : X86WriteResPairUnsupported<WriteCvtPH2PS>;

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s
index 866ba7a538ebe..c9a32714d7541 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s
@@ -208,24 +208,24 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   cmpeqss	(%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss	%xmm0, %xmm1
 # CHECK-NEXT:  1      6     1.00    *                   comiss	(%rax), %xmm1
-# CHECK-NEXT:  1      4     0.50                        cvtpi2ps	%mm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtpi2ps	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtps2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtps2pi	(%rax), %mm2
-# CHECK-NEXT:  1      4     0.50                        cvtsi2ss	%ecx, %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtsi2ss	%rcx, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtss2si	%xmm0, %ecx
-# CHECK-NEXT:  1      4     0.50                        cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  1      7     1.00    *                   cvtss2si	(%rax), %ecx
-# CHECK-NEXT:  1      7     1.00    *                   cvtss2si	(%rax), %rcx
-# CHECK-NEXT:  1      4     0.50                        cvttps2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      7     1.00    *                   cvttps2pi	(%rax), %mm2
-# CHECK-NEXT:  1      4     0.50                        cvttss2si	%xmm0, %ecx
-# CHECK-NEXT:  1      4     0.50                        cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  1      7     1.00    *                   cvttss2si	(%rax), %ecx
-# CHECK-NEXT:  1      7     1.00    *                   cvttss2si	(%rax), %rcx
+# CHECK-NEXT:  1      5     2.00                        cvtpi2ps	%mm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtpi2ps	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtps2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtps2pi	(%rax), %mm2
+# CHECK-NEXT:  1      5     2.00                        cvtsi2ss	%ecx, %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtsi2ss	%rcx, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  1      5     1.00                        cvtss2si	%xmm0, %ecx
+# CHECK-NEXT:  1      5     1.00                        cvtss2si	%xmm0, %rcx
+# CHECK-NEXT:  1      8     1.00    *                   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  1      8     1.00    *                   cvtss2si	(%rax), %rcx
+# CHECK-NEXT:  1      5     2.00                        cvttps2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     2.00    *                   cvttps2pi	(%rax), %mm2
+# CHECK-NEXT:  1      5     1.00                        cvttss2si	%xmm0, %ecx
+# CHECK-NEXT:  1      5     1.00                        cvttss2si	%xmm0, %rcx
+# CHECK-NEXT:  1      8     1.00    *                   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  1      8     1.00    *                   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  1      39    39.00                       divps	%xmm0, %xmm2
 # CHECK-NEXT:  1      42    39.00   *                   divps	(%rax), %xmm2
 # CHECK-NEXT:  1      19    17.00                       divss	%xmm0, %xmm2
@@ -331,7 +331,7 @@ xorps       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT:  -     232.00 8.00   61.00  46.00  0.50   0.50   67.00
+# CHECK-NEXT:  -     232.00 8.00   80.00  37.00  0.50   0.50   67.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -349,24 +349,24 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqss	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     comiss	%xmm0, %xmm1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   comiss	(%rax), %xmm1
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpi2ps	%mm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtpi2ps	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtps2pi	%xmm0, %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtps2pi	(%rax), %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsi2ss	%ecx, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsi2ss	%rcx, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtss2si	%xmm0, %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtss2si	(%rax), %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtss2si	(%rax), %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttps2pi	%xmm0, %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttps2pi	(%rax), %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttss2si	%xmm0, %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttss2si	(%rax), %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttss2si	(%rax), %rcx
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtpi2ps	%mm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtpi2ps	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtps2pi	%xmm0, %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtps2pi	(%rax), %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtsi2ss	%ecx, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtsi2ss	%rcx, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtss2si	%xmm0, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtss2si	%xmm0, %rcx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvtss2si	(%rax), %rcx
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvttps2pi	%xmm0, %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvttps2pi	(%rax), %mm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvttss2si	%xmm0, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvttss2si	%xmm0, %rcx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  -     39.00   -     1.00    -      -      -      -     divps	%xmm0, %xmm2
 # CHECK-NEXT:  -     39.00   -     1.00    -      -      -     1.00   divps	(%rax), %xmm2
 # CHECK-NEXT:  -     17.00   -     1.00    -      -      -      -     divss	%xmm0, %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse2.s
index 8759dfc216559..8c5fff166cab4 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse2.s
@@ -422,44 +422,44 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   cmpeqsd	(%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd	%xmm0, %xmm1
 # CHECK-NEXT:  1      6     1.00    *                   comisd	(%rax), %xmm1
-# CHECK-NEXT:  1      4     0.50                        cvtdq2pd	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtdq2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtdq2ps	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtdq2ps	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtpd2pi	(%rax), %mm2
-# CHECK-NEXT:  1      4     0.50                        cvtpd2ps	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtpd2ps	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtpi2pd	%mm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtpi2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtps2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtps2pd	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtps2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtsd2si	%xmm0, %ecx
-# CHECK-NEXT:  1      4     0.50                        cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  1      7     1.00    *                   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  1      7     1.00    *                   cvtsd2si	(%rax), %rcx
-# CHECK-NEXT:  1      4     0.50                        cvtsd2ss	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtsd2ss	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtsi2sd	%ecx, %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtsi2sd	%rcx, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvtss2sd	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvtss2sd	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvttpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvttpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvttpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      7     1.00    *                   cvttpd2pi	(%rax), %mm2
-# CHECK-NEXT:  1      4     0.50                        cvttps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cvttps2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cvttsd2si	%xmm0, %ecx
-# CHECK-NEXT:  1      4     0.50                        cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  1      7     1.00    *                   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  1      7     1.00    *                   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  1      5     2.00                        cvtdq2pd	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtdq2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtdq2ps	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtdq2ps	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtpd2pi	(%rax), %mm2
+# CHECK-NEXT:  1      5     2.00                        cvtpd2ps	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtpd2ps	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtpi2pd	%mm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtpi2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtps2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtps2pd	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtps2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      5     1.00                        cvtsd2si	%xmm0, %ecx
+# CHECK-NEXT:  1      5     1.00                        cvtsd2si	%xmm0, %rcx
+# CHECK-NEXT:  1      8     1.00    *                   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  1      8     1.00    *                   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  1      4     2.00                        cvtsd2ss	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     2.00    *                   cvtsd2ss	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtsi2sd	%ecx, %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvtsi2sd	%rcx, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        cvtss2sd	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     2.00    *                   cvtss2sd	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvttpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvttpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      5     2.00                        cvttpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     2.00    *                   cvttpd2pi	(%rax), %mm2
+# CHECK-NEXT:  1      5     2.00                        cvttps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     2.00    *                   cvttps2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      5     1.00                        cvttsd2si	%xmm0, %ecx
+# CHECK-NEXT:  1      5     1.00                        cvttsd2si	%xmm0, %rcx
+# CHECK-NEXT:  1      8     1.00    *                   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  1      8     1.00    *                   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  1      69    69.00                       divpd	%xmm0, %xmm2
 # CHECK-NEXT:  1      72    69.00   *                   divpd	(%rax), %xmm2
 # CHECK-NEXT:  1      34    32.00                       divsd	%xmm0, %xmm2
@@ -687,7 +687,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT:  -     412.00 12.00  184.50 96.50  3.00   3.00   134.00
+# CHECK-NEXT:  -     412.00 12.00  233.50 77.50  3.00   3.00   134.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -706,44 +706,44 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqsd	(%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     comisd	%xmm0, %xmm1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   comisd	(%rax), %xmm1
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtdq2pd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtdq2pd	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtdq2ps	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtdq2ps	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtpd2pi	(%rax), %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpd2ps	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtpd2ps	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpi2pd	%mm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtpi2pd	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtps2dq	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtps2pd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtps2pd	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsd2si	%xmm0, %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsd2si	(%rax), %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsd2ss	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsd2ss	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsi2sd	%ecx, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtsi2sd	%rcx, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtss2sd	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvtss2sd	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttpd2pi	(%rax), %mm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttps2dq	(%rax), %xmm2
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttsd2si	%xmm0, %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtdq2pd	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtdq2pd	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtdq2ps	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtdq2ps	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtpd2pi	(%rax), %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtpd2ps	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtpd2ps	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtpi2pd	%mm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtpi2pd	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtps2dq	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtps2pd	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtps2pd	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtsd2si	%xmm0, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtsd2si	%xmm0, %rcx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtsd2ss	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtsd2ss	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtsi2sd	%ecx, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtsi2sd	%rcx, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvtss2sd	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvtss2sd	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvttpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvttpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvttpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvttpd2pi	(%rax), %mm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -      -     cvttps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -      -      -     1.00   cvttps2dq	(%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvttsd2si	%xmm0, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvttsd2si	%xmm0, %rcx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  -     69.00   -     1.00    -      -      -      -     divpd	%xmm0, %xmm2
 # CHECK-NEXT:  -     69.00   -     1.00    -      -      -     1.00   divpd	(%rax), %xmm2
 # CHECK-NEXT:  -     32.00   -     1.00    -      -      -      -     divsd	%xmm0, %xmm2


        


More information about the llvm-commits mailing list