[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