[X86][Atom] Fix vector fp<->int resource/throughputs
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 7 Jul 2021 14:27:14 +0000 (15:27 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 7 Jul 2021 15:52:34 +0000 (16:52 +0100)
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.

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

index 704919c..d00c2e3 100644 (file)
@@ -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>;
 
index b12beef..fb6aba0 100644 (file)
@@ -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
index c19ca81..4536b7f 100644 (file)
@@ -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