forked from OSchip/llvm-project
[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.
This commit is contained in:
parent
d7e65757ed
commit
ded8866f4a
|
@ -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>;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue