mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[X86][Atom] Fix vector integer multiplication resource/throughputs
Match whats documented in the Intel AOM (and Agner/instlatx64 agree) - vector integer multiplies are pipelined - all Port0, throughput = 2 @ 128bits, 1 @ 64bits. Noticed while checking reduction costs - now that we can use in-order models in llvm-mca, the atom model is the "worst case scenario" we have in x86.
This commit is contained in:
parent
e7f42a41cc
commit
a6e815c9bd
@ -399,8 +399,8 @@ defm : AtomWriteResPair<WriteVecShiftImm, [AtomPort01], [AtomPort01], 1, 1, [1]
|
|||||||
defm : AtomWriteResPair<WriteVecShiftImmX, [AtomPort01], [AtomPort01], 1, 1, [1], [1]>;
|
defm : AtomWriteResPair<WriteVecShiftImmX, [AtomPort01], [AtomPort01], 1, 1, [1], [1]>;
|
||||||
defm : X86WriteResPairUnsupported<WriteVecShiftImmY>;
|
defm : X86WriteResPairUnsupported<WriteVecShiftImmY>;
|
||||||
defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>;
|
defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>;
|
||||||
defm : AtomWriteResPair<WriteVecIMul, [AtomPort0], [AtomPort0], 4, 4, [4], [4]>;
|
defm : AtomWriteResPair<WriteVecIMul, [AtomPort0], [AtomPort0], 4, 4, [1], [1]>;
|
||||||
defm : AtomWriteResPair<WriteVecIMulX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>;
|
defm : AtomWriteResPair<WriteVecIMulX, [AtomPort0], [AtomPort0], 5, 5, [2], [2]>;
|
||||||
defm : X86WriteResPairUnsupported<WriteVecIMulY>;
|
defm : X86WriteResPairUnsupported<WriteVecIMulY>;
|
||||||
defm : X86WriteResPairUnsupported<WriteVecIMulZ>;
|
defm : X86WriteResPairUnsupported<WriteVecIMulZ>;
|
||||||
defm : X86WriteResPairUnsupported<WritePMULLD>;
|
defm : X86WriteResPairUnsupported<WritePMULLD>;
|
||||||
@ -410,8 +410,8 @@ defm : X86WriteResPairUnsupported<WritePHMINPOS>;
|
|||||||
defm : X86WriteResPairUnsupported<WriteMPSAD>;
|
defm : X86WriteResPairUnsupported<WriteMPSAD>;
|
||||||
defm : X86WriteResPairUnsupported<WriteMPSADY>;
|
defm : X86WriteResPairUnsupported<WriteMPSADY>;
|
||||||
defm : X86WriteResPairUnsupported<WriteMPSADZ>;
|
defm : X86WriteResPairUnsupported<WriteMPSADZ>;
|
||||||
defm : AtomWriteResPair<WritePSADBW, [AtomPort01], [AtomPort01], 4, 4, [4], [4]>;
|
defm : AtomWriteResPair<WritePSADBW, [AtomPort0], [AtomPort0], 4, 4, [1], [1]>;
|
||||||
defm : AtomWriteResPair<WritePSADBWX, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>;
|
defm : AtomWriteResPair<WritePSADBWX, [AtomPort0], [AtomPort0], 5, 5, [2], [2]>;
|
||||||
defm : X86WriteResPairUnsupported<WritePSADBWY>;
|
defm : X86WriteResPairUnsupported<WritePSADBWY>;
|
||||||
defm : X86WriteResPairUnsupported<WritePSADBWZ>;
|
defm : X86WriteResPairUnsupported<WritePSADBWZ>;
|
||||||
defm : AtomWriteResPair<WriteShuffle, [AtomPort0], [AtomPort0], 1, 1>;
|
defm : AtomWriteResPair<WriteShuffle, [AtomPort0], [AtomPort0], 1, 1>;
|
||||||
|
@ -209,12 +209,12 @@ pxor (%rax), %mm2
|
|||||||
# CHECK-NEXT: 1 1 1.00 * pcmpgtd (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * pcmpgtd (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 1 0.50 pcmpgtw %mm0, %mm2
|
# CHECK-NEXT: 1 1 0.50 pcmpgtw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pcmpgtw (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * pcmpgtw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmaddwd %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmaddwd %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmaddwd (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmaddwd (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmulhw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmulhw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmulhw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmulhw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmullw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmullw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmullw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmullw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 1 0.50 por %mm0, %mm2
|
# CHECK-NEXT: 1 1 0.50 por %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * por (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * por (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 1 0.50 pslld $1, %mm2
|
# CHECK-NEXT: 1 1 0.50 pslld $1, %mm2
|
||||||
@ -276,7 +276,7 @@ pxor (%rax), %mm2
|
|||||||
|
|
||||||
# CHECK: Resource pressure per iteration:
|
# CHECK: Resource pressure per iteration:
|
||||||
# CHECK-NEXT: [0] [1]
|
# CHECK-NEXT: [0] [1]
|
||||||
# CHECK-NEXT: 113.50 41.50
|
# CHECK-NEXT: 95.50 41.50
|
||||||
|
|
||||||
# CHECK: Resource pressure by instruction:
|
# CHECK: Resource pressure by instruction:
|
||||||
# CHECK-NEXT: [0] [1] Instructions:
|
# CHECK-NEXT: [0] [1] Instructions:
|
||||||
@ -325,12 +325,12 @@ pxor (%rax), %mm2
|
|||||||
# CHECK-NEXT: 1.00 - pcmpgtd (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pcmpgtd (%rax), %mm2
|
||||||
# CHECK-NEXT: 0.50 0.50 pcmpgtw %mm0, %mm2
|
# CHECK-NEXT: 0.50 0.50 pcmpgtw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1.00 - pcmpgtw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pcmpgtw (%rax), %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmaddwd %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmaddwd %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmaddwd (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmaddwd (%rax), %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmulhw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmulhw %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmulhw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmulhw (%rax), %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmullw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmullw %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmullw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmullw (%rax), %mm2
|
||||||
# CHECK-NEXT: 0.50 0.50 por %mm0, %mm2
|
# CHECK-NEXT: 0.50 0.50 por %mm0, %mm2
|
||||||
# CHECK-NEXT: 1.00 - por (%rax), %mm2
|
# CHECK-NEXT: 1.00 - por (%rax), %mm2
|
||||||
# CHECK-NEXT: 0.50 0.50 pslld $1, %mm2
|
# CHECK-NEXT: 0.50 0.50 pslld $1, %mm2
|
||||||
|
@ -280,14 +280,14 @@ xorps (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 1 1 0.50 pminub %mm0, %mm2
|
# CHECK-NEXT: 1 1 0.50 pminub %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pminub (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * pminub (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 3 3.00 pmovmskb %mm0, %ecx
|
# CHECK-NEXT: 1 3 3.00 pmovmskb %mm0, %ecx
|
||||||
# CHECK-NEXT: 1 4 4.00 pmulhuw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmulhuw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmulhuw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmulhuw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * * prefetcht0 (%rax)
|
# CHECK-NEXT: 1 1 1.00 * * prefetcht0 (%rax)
|
||||||
# CHECK-NEXT: 1 1 1.00 * * prefetcht1 (%rax)
|
# CHECK-NEXT: 1 1 1.00 * * prefetcht1 (%rax)
|
||||||
# CHECK-NEXT: 1 1 1.00 * * prefetcht2 (%rax)
|
# CHECK-NEXT: 1 1 1.00 * * prefetcht2 (%rax)
|
||||||
# CHECK-NEXT: 1 1 1.00 * * prefetchnta (%rax)
|
# CHECK-NEXT: 1 1 1.00 * * prefetchnta (%rax)
|
||||||
# CHECK-NEXT: 1 4 2.00 psadbw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 psadbw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 2.00 * psadbw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * psadbw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 pshufw $1, %mm0, %mm2
|
# CHECK-NEXT: 1 1 1.00 pshufw $1, %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pshufw $1, (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * pshufw $1, (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 9 4.50 rcpps %xmm0, %xmm2
|
# CHECK-NEXT: 1 9 4.50 rcpps %xmm0, %xmm2
|
||||||
@ -325,7 +325,7 @@ xorps (%rax), %xmm2
|
|||||||
|
|
||||||
# CHECK: Resource pressure per iteration:
|
# CHECK: Resource pressure per iteration:
|
||||||
# CHECK-NEXT: [0] [1]
|
# CHECK-NEXT: [0] [1]
|
||||||
# CHECK-NEXT: 516.00 350.00
|
# CHECK-NEXT: 508.00 346.00
|
||||||
|
|
||||||
# CHECK: Resource pressure by instruction:
|
# CHECK: Resource pressure by instruction:
|
||||||
# CHECK-NEXT: [0] [1] Instructions:
|
# CHECK-NEXT: [0] [1] Instructions:
|
||||||
@ -415,14 +415,14 @@ xorps (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 0.50 0.50 pminub %mm0, %mm2
|
# CHECK-NEXT: 0.50 0.50 pminub %mm0, %mm2
|
||||||
# CHECK-NEXT: 1.00 - pminub (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pminub (%rax), %mm2
|
||||||
# CHECK-NEXT: 3.00 - pmovmskb %mm0, %ecx
|
# CHECK-NEXT: 3.00 - pmovmskb %mm0, %ecx
|
||||||
# CHECK-NEXT: 4.00 - pmulhuw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmulhuw %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmulhuw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmulhuw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1.00 - prefetcht0 (%rax)
|
# CHECK-NEXT: 1.00 - prefetcht0 (%rax)
|
||||||
# CHECK-NEXT: 1.00 - prefetcht1 (%rax)
|
# CHECK-NEXT: 1.00 - prefetcht1 (%rax)
|
||||||
# CHECK-NEXT: 1.00 - prefetcht2 (%rax)
|
# CHECK-NEXT: 1.00 - prefetcht2 (%rax)
|
||||||
# CHECK-NEXT: 1.00 - prefetchnta (%rax)
|
# CHECK-NEXT: 1.00 - prefetchnta (%rax)
|
||||||
# CHECK-NEXT: 2.00 2.00 psadbw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - psadbw %mm0, %mm2
|
||||||
# CHECK-NEXT: 2.00 2.00 psadbw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - psadbw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1.00 - pshufw $1, %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pshufw $1, %mm0, %mm2
|
||||||
# CHECK-NEXT: 1.00 - pshufw $1, (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pshufw $1, (%rax), %mm2
|
||||||
# CHECK-NEXT: 4.50 4.50 rcpps %xmm0, %xmm2
|
# CHECK-NEXT: 4.50 4.50 rcpps %xmm0, %xmm2
|
||||||
|
@ -563,8 +563,8 @@ xorpd (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 1 4 2.00 pextrw $1, %xmm0, %ecx
|
# CHECK-NEXT: 1 4 2.00 pextrw $1, %xmm0, %ecx
|
||||||
# CHECK-NEXT: 1 1 1.00 pinsrw $1, %eax, %xmm0
|
# CHECK-NEXT: 1 1 1.00 pinsrw $1, %eax, %xmm0
|
||||||
# CHECK-NEXT: 1 1 1.00 * pinsrw $1, (%rax), %xmm0
|
# CHECK-NEXT: 1 1 1.00 * pinsrw $1, (%rax), %xmm0
|
||||||
# CHECK-NEXT: 1 5 5.00 pmaddwd %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmaddwd %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmaddwd (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmaddwd (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pmaxsw (%rax), %xmm2
|
# CHECK-NEXT: 1 1 1.00 * pmaxsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 0.50 pmaxub %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 0.50 pmaxub %xmm0, %xmm2
|
||||||
@ -574,20 +574,20 @@ xorpd (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 1 1 0.50 pminub %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 0.50 pminub %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pminub (%rax), %xmm2
|
# CHECK-NEXT: 1 1 1.00 * pminub (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 3 3.00 pmovmskb %xmm0, %ecx
|
# CHECK-NEXT: 1 3 3.00 pmovmskb %xmm0, %ecx
|
||||||
# CHECK-NEXT: 1 5 5.00 pmulhuw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmulhuw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmulhuw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmulhuw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 pmulhw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmulhw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmulhw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmulhw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 pmullw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmullw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmullw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmullw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmuludq %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmuludq %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmuludq (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmuludq (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 5 5.00 pmuludq %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmuludq %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmuludq (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmuludq (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 0.50 por %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 0.50 por %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * por (%rax), %xmm2
|
# CHECK-NEXT: 1 1 1.00 * por (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 psadbw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 psadbw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * psadbw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * psadbw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 pshufd $1, %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 1.00 pshufd $1, %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pshufd $1, (%rax), %xmm2
|
# CHECK-NEXT: 1 1 1.00 * pshufd $1, (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 pshufhw $1, %xmm0, %xmm2
|
# CHECK-NEXT: 1 1 1.00 pshufhw $1, %xmm0, %xmm2
|
||||||
@ -681,7 +681,7 @@ xorpd (%rax), %xmm2
|
|||||||
|
|
||||||
# CHECK: Resource pressure per iteration:
|
# CHECK: Resource pressure per iteration:
|
||||||
# CHECK-NEXT: [0] [1]
|
# CHECK-NEXT: [0] [1]
|
||||||
# CHECK-NEXT: 871.50 638.50
|
# CHECK-NEXT: 829.50 638.50
|
||||||
|
|
||||||
# CHECK: Resource pressure by instruction:
|
# CHECK: Resource pressure by instruction:
|
||||||
# CHECK-NEXT: [0] [1] Instructions:
|
# CHECK-NEXT: [0] [1] Instructions:
|
||||||
@ -841,8 +841,8 @@ xorpd (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 2.00 2.00 pextrw $1, %xmm0, %ecx
|
# CHECK-NEXT: 2.00 2.00 pextrw $1, %xmm0, %ecx
|
||||||
# CHECK-NEXT: 1.00 - pinsrw $1, %eax, %xmm0
|
# CHECK-NEXT: 1.00 - pinsrw $1, %eax, %xmm0
|
||||||
# CHECK-NEXT: 1.00 - pinsrw $1, (%rax), %xmm0
|
# CHECK-NEXT: 1.00 - pinsrw $1, (%rax), %xmm0
|
||||||
# CHECK-NEXT: 5.00 - pmaddwd %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmaddwd %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmaddwd (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmaddwd (%rax), %xmm2
|
||||||
# CHECK-NEXT: 0.50 0.50 pmaxsw %xmm0, %xmm2
|
# CHECK-NEXT: 0.50 0.50 pmaxsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pmaxsw (%rax), %xmm2
|
# CHECK-NEXT: 1.00 - pmaxsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 0.50 0.50 pmaxub %xmm0, %xmm2
|
# CHECK-NEXT: 0.50 0.50 pmaxub %xmm0, %xmm2
|
||||||
@ -852,20 +852,20 @@ xorpd (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 0.50 0.50 pminub %xmm0, %xmm2
|
# CHECK-NEXT: 0.50 0.50 pminub %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pminub (%rax), %xmm2
|
# CHECK-NEXT: 1.00 - pminub (%rax), %xmm2
|
||||||
# CHECK-NEXT: 3.00 - pmovmskb %xmm0, %ecx
|
# CHECK-NEXT: 3.00 - pmovmskb %xmm0, %ecx
|
||||||
# CHECK-NEXT: 5.00 - pmulhuw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmulhuw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmulhuw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmulhuw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmulhw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmulhw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmulhw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmulhw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmullw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmullw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmullw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmullw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 4.00 - pmuludq %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmuludq %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmuludq (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmuludq (%rax), %mm2
|
||||||
# CHECK-NEXT: 5.00 - pmuludq %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmuludq %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmuludq (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmuludq (%rax), %xmm2
|
||||||
# CHECK-NEXT: 0.50 0.50 por %xmm0, %xmm2
|
# CHECK-NEXT: 0.50 0.50 por %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1.00 - por (%rax), %xmm2
|
# CHECK-NEXT: 1.00 - por (%rax), %xmm2
|
||||||
# CHECK-NEXT: 5.00 - psadbw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - psadbw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - psadbw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - psadbw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pshufd $1, %xmm0, %xmm2
|
# CHECK-NEXT: 1.00 - pshufd $1, %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pshufd $1, (%rax), %xmm2
|
# CHECK-NEXT: 1.00 - pshufd $1, (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pshufhw $1, %xmm0, %xmm2
|
# CHECK-NEXT: 1.00 - pshufhw $1, %xmm0, %xmm2
|
||||||
|
@ -146,14 +146,14 @@ psignw (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 1 6 3.00 * phsubw (%rax), %mm2
|
# CHECK-NEXT: 1 6 3.00 * phsubw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 7 3.50 phsubw %xmm0, %xmm2
|
# CHECK-NEXT: 1 7 3.50 phsubw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 8 4.00 * phsubw (%rax), %xmm2
|
# CHECK-NEXT: 1 8 4.00 * phsubw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmaddubsw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmaddubsw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmaddubsw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmaddubsw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 5 5.00 pmaddubsw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmaddubsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmaddubsw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmaddubsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 4 4.00 pmulhrsw %mm0, %mm2
|
# CHECK-NEXT: 1 4 1.00 pmulhrsw %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 4 4.00 * pmulhrsw (%rax), %mm2
|
# CHECK-NEXT: 1 4 1.00 * pmulhrsw (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 5 5.00 pmulhrsw %xmm0, %xmm2
|
# CHECK-NEXT: 1 5 2.00 pmulhrsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 1 5 5.00 * pmulhrsw (%rax), %xmm2
|
# CHECK-NEXT: 1 5 2.00 * pmulhrsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1 1 1.00 pshufb %mm0, %mm2
|
# CHECK-NEXT: 1 1 1.00 pshufb %mm0, %mm2
|
||||||
# CHECK-NEXT: 1 1 1.00 * pshufb (%rax), %mm2
|
# CHECK-NEXT: 1 1 1.00 * pshufb (%rax), %mm2
|
||||||
# CHECK-NEXT: 1 4 2.00 pshufb %xmm0, %xmm2
|
# CHECK-NEXT: 1 4 2.00 pshufb %xmm0, %xmm2
|
||||||
@ -177,7 +177,7 @@ psignw (%rax), %xmm2
|
|||||||
|
|
||||||
# CHECK: Resource pressure per iteration:
|
# CHECK: Resource pressure per iteration:
|
||||||
# CHECK-NEXT: [0] [1]
|
# CHECK-NEXT: [0] [1]
|
||||||
# CHECK-NEXT: 130.50 76.50
|
# CHECK-NEXT: 106.50 76.50
|
||||||
|
|
||||||
# CHECK: Resource pressure by instruction:
|
# CHECK: Resource pressure by instruction:
|
||||||
# CHECK-NEXT: [0] [1] Instructions:
|
# CHECK-NEXT: [0] [1] Instructions:
|
||||||
@ -221,14 +221,14 @@ psignw (%rax), %xmm2
|
|||||||
# CHECK-NEXT: 3.00 3.00 phsubw (%rax), %mm2
|
# CHECK-NEXT: 3.00 3.00 phsubw (%rax), %mm2
|
||||||
# CHECK-NEXT: 3.50 3.50 phsubw %xmm0, %xmm2
|
# CHECK-NEXT: 3.50 3.50 phsubw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 4.00 4.00 phsubw (%rax), %xmm2
|
# CHECK-NEXT: 4.00 4.00 phsubw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 4.00 - pmaddubsw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmaddubsw %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmaddubsw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmaddubsw (%rax), %mm2
|
||||||
# CHECK-NEXT: 5.00 - pmaddubsw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmaddubsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmaddubsw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmaddubsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 4.00 - pmulhrsw %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pmulhrsw %mm0, %mm2
|
||||||
# CHECK-NEXT: 4.00 - pmulhrsw (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pmulhrsw (%rax), %mm2
|
||||||
# CHECK-NEXT: 5.00 - pmulhrsw %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 - pmulhrsw %xmm0, %xmm2
|
||||||
# CHECK-NEXT: 5.00 - pmulhrsw (%rax), %xmm2
|
# CHECK-NEXT: 2.00 - pmulhrsw (%rax), %xmm2
|
||||||
# CHECK-NEXT: 1.00 - pshufb %mm0, %mm2
|
# CHECK-NEXT: 1.00 - pshufb %mm0, %mm2
|
||||||
# CHECK-NEXT: 1.00 - pshufb (%rax), %mm2
|
# CHECK-NEXT: 1.00 - pshufb (%rax), %mm2
|
||||||
# CHECK-NEXT: 2.00 2.00 pshufb %xmm0, %xmm2
|
# CHECK-NEXT: 2.00 2.00 pshufb %xmm0, %xmm2
|
||||||
|
Loading…
Reference in New Issue
Block a user