[llvm] ded8866 - [X86][Atom] Fix vector fp<->int resource/throughputs

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 7 09:31:23 PDT 2021


Author: Simon Pilgrim
Date: 2021-07-07T16:52:34+01:00
New Revision: ded8866f4a4600c69f3d1d6f5e0c9ec7bd9ade45

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

LOG: [X86][Atom] Fix vector fp<->int resource/throughputs

Match whats documented in the Intel AOM - almost all the conversion instructions requires BOTH ports (apart from the MMX cvtpi2ps/cvtpi2ps instructions which we already override) - this was being incorrectly modelled as EITHER port.

Now that we can use in-order models in llvm-mca, the atom model is a good "worst case scenario" analysis for x86.

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td
index 704919cbafb09..d00c2e3718d3a 100644
--- a/llvm/lib/Target/X86/X86ScheduleAtom.td
+++ b/llvm/lib/Target/X86/X86ScheduleAtom.td
@@ -313,30 +313,30 @@ defm : X86WriteResPairUnsupported<WriteFVarShuffle256>;
 // Conversions.
 ////////////////////////////////////////////////////////////////////////////////
 
-defm : AtomWriteResPair<WriteCvtSS2I,   [AtomPort01], [AtomPort01], 8, 9, [8], [9]>;
-defm : AtomWriteResPair<WriteCvtPS2I,   [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
+defm : AtomWriteResPair<WriteCvtSS2I,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  8,  9,  [7,7],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtPS2I,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2IY>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2IZ>;
-defm : AtomWriteResPair<WriteCvtSD2I,   [AtomPort01], [AtomPort01], 8, 9, [8], [9]>;
-defm : AtomWriteResPair<WriteCvtPD2I,   [AtomPort01], [AtomPort01], 7, 8, [7], [8]>;
+defm : AtomWriteResPair<WriteCvtSD2I,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  8,  9,  [7,7],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtPD2I,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  7,  8,  [6,6],  [7,7]>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2IY>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2IZ>;
 
-defm : AtomWriteResPair<WriteCvtI2SS,   [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
-defm : AtomWriteResPair<WriteCvtI2PS,   [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
+defm : AtomWriteResPair<WriteCvtI2SS,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtI2PS,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PSY>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PSZ>;
-defm : AtomWriteResPair<WriteCvtI2SD,   [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
-defm : AtomWriteResPair<WriteCvtI2PD,   [AtomPort01], [AtomPort01], 7, 8, [7], [8]>;
+defm : AtomWriteResPair<WriteCvtI2SD,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtI2PD,   [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  7,  8,  [6,6],  [7,7]>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PDY>;
 defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>;
 
-defm : AtomWriteResPair<WriteCvtSS2SD,  [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
-defm : AtomWriteResPair<WriteCvtPS2PD,  [AtomPort01], [AtomPort01], 7, 8, [7], [8]>;
+defm : AtomWriteResPair<WriteCvtSS2SD,  [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtPS2PD,  [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  7,  8,  [6,6],  [7,7]>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2PDY>;
 defm : X86WriteResPairUnsupported<WriteCvtPS2PDZ>;
-defm : AtomWriteResPair<WriteCvtSD2SS,  [AtomPort01], [AtomPort01], 6, 7, [6], [7]>;
-defm : AtomWriteResPair<WriteCvtPD2PS,  [AtomPort01], [AtomPort01], 7, 8, [7], [8]>;
+defm : AtomWriteResPair<WriteCvtSD2SS,  [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  6,  7,  [5,5],  [6,6]>;
+defm : AtomWriteResPair<WriteCvtPD2PS,  [AtomPort0,AtomPort1], [AtomPort0,AtomPort1],  7,  8,  [6,6],  [7,7]>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2PSY>;
 defm : X86WriteResPairUnsupported<WriteCvtPD2PSZ>;
 

diff  --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s
index b12beef35b38a..fb6aba02155f1 100644
--- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s
@@ -212,19 +212,19 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      5     5.00    *                   cvtpi2ps	(%rax), %xmm2
 # CHECK-NEXT:  1      5     5.00                        cvtps2pi	%xmm0, %mm2
 # CHECK-NEXT:  1      5     5.00    *                   cvtps2pi	(%rax), %mm2
-# CHECK-NEXT:  1      6     3.00                        cvtsi2ss	%ecx, %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtsi2ss	%rcx, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT:  1      8     4.00                        cvtss2si	%xmm0, %ecx
+# CHECK-NEXT:  1      6     5.00                        cvtsi2ss	%ecx, %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtsi2ss	%rcx, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT:  1      8     7.00                        cvtss2si	%xmm0, %ecx
 # CHECK-NEXT:  1      9     4.50                        cvtss2si	%xmm0, %rcx
-# CHECK-NEXT:  1      9     4.50    *                   cvtss2si	(%rax), %ecx
+# CHECK-NEXT:  1      9     6.00    *                   cvtss2si	(%rax), %ecx
 # CHECK-NEXT:  1      10    5.00    *                   cvtss2si	(%rax), %rcx
 # CHECK-NEXT:  1      5     5.00                        cvttps2pi	%xmm0, %mm2
 # CHECK-NEXT:  1      5     5.00    *                   cvttps2pi	(%rax), %mm2
-# CHECK-NEXT:  1      8     4.00                        cvttss2si	%xmm0, %ecx
+# CHECK-NEXT:  1      8     7.00                        cvttss2si	%xmm0, %ecx
 # CHECK-NEXT:  1      9     4.50                        cvttss2si	%xmm0, %rcx
-# CHECK-NEXT:  1      9     4.50    *                   cvttss2si	(%rax), %ecx
+# CHECK-NEXT:  1      9     6.00    *                   cvttss2si	(%rax), %ecx
 # CHECK-NEXT:  1      10    5.00    *                   cvttss2si	(%rax), %rcx
 # CHECK-NEXT:  1      70    35.00                       divps	%xmm0, %xmm2
 # CHECK-NEXT:  1      70    35.00   *                   divps	(%rax), %xmm2
@@ -325,7 +325,7 @@ xorps       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 438.00 393.00
+# CHECK-NEXT: 456.00 411.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -347,19 +347,19 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -     5.00   cvtpi2ps	(%rax), %xmm2
 # CHECK-NEXT:  -     5.00   cvtps2pi	%xmm0, %mm2
 # CHECK-NEXT: 5.00   5.00   cvtps2pi	(%rax), %mm2
-# CHECK-NEXT: 3.00   3.00   cvtsi2ss	%ecx, %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtsi2ss	%rcx, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtsi2ssl	(%rax), %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtss2si	%xmm0, %ecx
+# CHECK-NEXT: 5.00   5.00   cvtsi2ss	%ecx, %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtsi2ss	%rcx, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtsi2ssl	(%rax), %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtss2si	%xmm0, %ecx
 # CHECK-NEXT: 4.50   4.50   cvtss2si	%xmm0, %rcx
-# CHECK-NEXT: 4.50   4.50   cvtss2si	(%rax), %ecx
+# CHECK-NEXT: 6.00   6.00   cvtss2si	(%rax), %ecx
 # CHECK-NEXT: 5.00   5.00   cvtss2si	(%rax), %rcx
 # CHECK-NEXT:  -     5.00   cvttps2pi	%xmm0, %mm2
 # CHECK-NEXT: 5.00   5.00   cvttps2pi	(%rax), %mm2
-# CHECK-NEXT: 4.00   4.00   cvttss2si	%xmm0, %ecx
+# CHECK-NEXT: 7.00   7.00   cvttss2si	%xmm0, %ecx
 # CHECK-NEXT: 4.50   4.50   cvttss2si	%xmm0, %rcx
-# CHECK-NEXT: 4.50   4.50   cvttss2si	(%rax), %ecx
+# CHECK-NEXT: 6.00   6.00   cvttss2si	(%rax), %ecx
 # CHECK-NEXT: 5.00   5.00   cvttss2si	(%rax), %rcx
 # CHECK-NEXT: 35.00  35.00  divps	%xmm0, %xmm2
 # CHECK-NEXT: 35.00  35.00  divps	(%rax), %xmm2

diff  --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
index c19ca8180411a..4536b7f21a7be 100644
--- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
@@ -422,44 +422,44 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      5     1.00    *                   cmpeqsd	(%rax), %xmm2
 # CHECK-NEXT:  1      9     4.50                        comisd	%xmm0, %xmm1
 # CHECK-NEXT:  1      10    5.00    *                   comisd	(%rax), %xmm1
-# CHECK-NEXT:  1      7     3.50                        cvtdq2pd	%xmm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtdq2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtdq2ps	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtdq2ps	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvtpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvtpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtpd2pi	(%rax), %mm2
-# CHECK-NEXT:  1      7     3.50                        cvtpd2ps	%xmm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtpd2ps	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvtpi2pd	%mm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtpi2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtps2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvtps2pd	%xmm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvtps2pd	(%rax), %xmm2
-# CHECK-NEXT:  1      8     4.00                        cvtsd2si	%xmm0, %ecx
-# CHECK-NEXT:  1      8     4.00                        cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT:  1      9     4.50    *                   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT:  1      9     4.50    *                   cvtsd2si	(%rax), %rcx
-# CHECK-NEXT:  1      6     3.00                        cvtsd2ss	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtsd2ss	(%rax), %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtsi2sd	%ecx, %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtsi2sd	%rcx, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT:  1      6     3.00                        cvtss2sd	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvtss2sd	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvttpd2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      8     4.00    *                   cvttpd2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      7     3.50                        cvttpd2pi	%xmm0, %mm2
-# CHECK-NEXT:  1      8     4.00    *                   cvttpd2pi	(%rax), %mm2
-# CHECK-NEXT:  1      6     3.00                        cvttps2dq	%xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cvttps2dq	(%rax), %xmm2
-# CHECK-NEXT:  1      8     4.00                        cvttsd2si	%xmm0, %ecx
-# CHECK-NEXT:  1      8     4.00                        cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT:  1      9     4.50    *                   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT:  1      9     4.50    *                   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT:  1      7     6.00                        cvtdq2pd	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtdq2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtdq2ps	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtdq2ps	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvtpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvtpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtpd2pi	(%rax), %mm2
+# CHECK-NEXT:  1      7     6.00                        cvtpd2ps	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtpd2ps	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvtpi2pd	%mm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtpi2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtps2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvtps2pd	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvtps2pd	(%rax), %xmm2
+# CHECK-NEXT:  1      8     7.00                        cvtsd2si	%xmm0, %ecx
+# CHECK-NEXT:  1      8     7.00                        cvtsd2si	%xmm0, %rcx
+# CHECK-NEXT:  1      9     6.00    *                   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT:  1      9     6.00    *                   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT:  1      6     5.00                        cvtsd2ss	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtsd2ss	(%rax), %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtsi2sd	%ecx, %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtsi2sd	%rcx, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT:  1      6     5.00                        cvtss2sd	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvtss2sd	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvttpd2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      8     7.00    *                   cvttpd2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      7     6.00                        cvttpd2pi	%xmm0, %mm2
+# CHECK-NEXT:  1      8     7.00    *                   cvttpd2pi	(%rax), %mm2
+# CHECK-NEXT:  1      6     5.00                        cvttps2dq	%xmm0, %xmm2
+# CHECK-NEXT:  1      7     6.00    *                   cvttps2dq	(%rax), %xmm2
+# CHECK-NEXT:  1      8     7.00                        cvttsd2si	%xmm0, %ecx
+# CHECK-NEXT:  1      8     7.00                        cvttsd2si	%xmm0, %rcx
+# CHECK-NEXT:  1      9     6.00    *                   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT:  1      9     6.00    *                   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT:  1      125   62.50                       divpd	%xmm0, %xmm2
 # CHECK-NEXT:  1      125   62.50   *                   divpd	(%rax), %xmm2
 # CHECK-NEXT:  1      62    31.00                       divsd	%xmm0, %xmm2
@@ -681,7 +681,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 818.50 680.50
+# CHECK-NEXT: 912.00 774.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -700,44 +700,44 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 1.00   1.00   cmpeqsd	(%rax), %xmm2
 # CHECK-NEXT: 4.50   4.50   comisd	%xmm0, %xmm1
 # CHECK-NEXT: 5.00   5.00   comisd	(%rax), %xmm1
-# CHECK-NEXT: 3.50   3.50   cvtdq2pd	%xmm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtdq2pd	(%rax), %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtdq2ps	%xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtdq2ps	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtpd2dq	%xmm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtpd2dq	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtpd2pi	%xmm0, %mm2
-# CHECK-NEXT: 4.00   4.00   cvtpd2pi	(%rax), %mm2
-# CHECK-NEXT: 3.50   3.50   cvtpd2ps	%xmm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtpd2ps	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtpi2pd	%mm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtpi2pd	(%rax), %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtps2dq	%xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtps2dq	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtps2pd	%xmm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtps2pd	(%rax), %xmm2
-# CHECK-NEXT: 4.00   4.00   cvtsd2si	%xmm0, %ecx
-# CHECK-NEXT: 4.00   4.00   cvtsd2si	%xmm0, %rcx
-# CHECK-NEXT: 4.50   4.50   cvtsd2si	(%rax), %ecx
-# CHECK-NEXT: 4.50   4.50   cvtsd2si	(%rax), %rcx
-# CHECK-NEXT: 3.00   3.00   cvtsd2ss	%xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtsd2ss	(%rax), %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtsi2sd	%ecx, %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtsi2sd	%rcx, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtsi2sdl	(%rax), %xmm2
-# CHECK-NEXT: 3.00   3.00   cvtss2sd	%xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvtss2sd	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvttpd2dq	%xmm0, %xmm2
-# CHECK-NEXT: 4.00   4.00   cvttpd2dq	(%rax), %xmm2
-# CHECK-NEXT: 3.50   3.50   cvttpd2pi	%xmm0, %mm2
-# CHECK-NEXT: 4.00   4.00   cvttpd2pi	(%rax), %mm2
-# CHECK-NEXT: 3.00   3.00   cvttps2dq	%xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cvttps2dq	(%rax), %xmm2
-# CHECK-NEXT: 4.00   4.00   cvttsd2si	%xmm0, %ecx
-# CHECK-NEXT: 4.00   4.00   cvttsd2si	%xmm0, %rcx
-# CHECK-NEXT: 4.50   4.50   cvttsd2si	(%rax), %ecx
-# CHECK-NEXT: 4.50   4.50   cvttsd2si	(%rax), %rcx
+# CHECK-NEXT: 6.00   6.00   cvtdq2pd	%xmm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtdq2pd	(%rax), %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtdq2ps	%xmm0, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtdq2ps	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtpd2dq	%xmm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtpd2dq	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtpd2pi	%xmm0, %mm2
+# CHECK-NEXT: 7.00   7.00   cvtpd2pi	(%rax), %mm2
+# CHECK-NEXT: 6.00   6.00   cvtpd2ps	%xmm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtpd2ps	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtpi2pd	%mm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtpi2pd	(%rax), %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtps2dq	%xmm0, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtps2dq	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtps2pd	%xmm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtps2pd	(%rax), %xmm2
+# CHECK-NEXT: 7.00   7.00   cvtsd2si	%xmm0, %ecx
+# CHECK-NEXT: 7.00   7.00   cvtsd2si	%xmm0, %rcx
+# CHECK-NEXT: 6.00   6.00   cvtsd2si	(%rax), %ecx
+# CHECK-NEXT: 6.00   6.00   cvtsd2si	(%rax), %rcx
+# CHECK-NEXT: 5.00   5.00   cvtsd2ss	%xmm0, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtsd2ss	(%rax), %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtsi2sd	%ecx, %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtsi2sd	%rcx, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtsi2sdl	(%rax), %xmm2
+# CHECK-NEXT: 5.00   5.00   cvtss2sd	%xmm0, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvtss2sd	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvttpd2dq	%xmm0, %xmm2
+# CHECK-NEXT: 7.00   7.00   cvttpd2dq	(%rax), %xmm2
+# CHECK-NEXT: 6.00   6.00   cvttpd2pi	%xmm0, %mm2
+# CHECK-NEXT: 7.00   7.00   cvttpd2pi	(%rax), %mm2
+# CHECK-NEXT: 5.00   5.00   cvttps2dq	%xmm0, %xmm2
+# CHECK-NEXT: 6.00   6.00   cvttps2dq	(%rax), %xmm2
+# CHECK-NEXT: 7.00   7.00   cvttsd2si	%xmm0, %ecx
+# CHECK-NEXT: 7.00   7.00   cvttsd2si	%xmm0, %rcx
+# CHECK-NEXT: 6.00   6.00   cvttsd2si	(%rax), %ecx
+# CHECK-NEXT: 6.00   6.00   cvttsd2si	(%rax), %rcx
 # CHECK-NEXT: 62.50  62.50  divpd	%xmm0, %xmm2
 # CHECK-NEXT: 62.50  62.50  divpd	(%rax), %xmm2
 # CHECK-NEXT: 31.00  31.00  divsd	%xmm0, %xmm2


        


More information about the llvm-commits mailing list