[llvm-mca][X86] Add mmx instruction to btver2 resource tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 19 Apr 2018 15:09:46 +0000 (15:09 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 19 Apr 2018 15:09:46 +0000 (15:09 +0000)
Useful to see scheduler class deltas against xmm equivalents

llvm-svn: 330335

llvm/test/tools/llvm-mca/X86/BtVer2/resources-mmx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s

diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-mmx.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-mmx.s
new file mode 100644 (file)
index 0000000..bb2e30c
--- /dev/null
@@ -0,0 +1,400 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -instruction-tables < %s | FileCheck %s
+
+emms
+
+movd        %eax, %mm2
+movd        (%rax), %mm2
+
+movd        %mm0, %ecx
+movd        %mm0, (%rax)
+
+movq        %rax, %mm2
+movq        (%rax), %mm2
+
+movq        %mm0, %rcx
+movq        %mm0, (%rax)
+
+packsswb    %mm0, %mm2
+packsswb    (%rax), %mm2
+
+packssdw    %mm0, %mm2
+packssdw    (%rax), %mm2
+
+packuswb    %mm0, %mm2
+packuswb    (%rax), %mm2
+
+paddb       %mm0, %mm2
+paddb       (%rax), %mm2
+
+paddd       %mm0, %mm2
+paddd       (%rax), %mm2
+
+paddsb      %mm0, %mm2
+paddsb      (%rax), %mm2
+
+paddsw      %mm0, %mm2
+paddsw      (%rax), %mm2
+
+paddusb     %mm0, %mm2
+paddusb     (%rax), %mm2
+
+paddusw     %mm0, %mm2
+paddusw     (%rax), %mm2
+
+paddw       %mm0, %mm2
+paddw       (%rax), %mm2
+
+pand        %mm0, %mm2
+pand        (%rax), %mm2
+
+pandn       %mm0, %mm2
+pandn       (%rax), %mm2
+
+pcmpeqb     %mm0, %mm2
+pcmpeqb     (%rax), %mm2
+
+pcmpeqd     %mm0, %mm2
+pcmpeqd     (%rax), %mm2
+
+pcmpeqw     %mm0, %mm2
+pcmpeqw     (%rax), %mm2
+
+pcmpgtb     %mm0, %mm2
+pcmpgtb     (%rax), %mm2
+
+pcmpgtd     %mm0, %mm2
+pcmpgtd     (%rax), %mm2
+
+pcmpgtw     %mm0, %mm2
+pcmpgtw     (%rax), %mm2
+
+pmaddwd     %mm0, %mm2
+pmaddwd     (%rax), %mm2
+
+pmulhw      %mm0, %mm2
+pmulhw      (%rax), %mm2
+
+pmullw      %mm0, %mm2
+pmullw      (%rax), %mm2
+
+por         %mm0, %mm2
+por         (%rax), %mm2
+
+pslld       $1, %mm2
+pslld       %mm0, %mm2
+pslld       (%rax), %mm2
+
+psllq       $1, %mm2
+psllq       %mm0, %mm2
+psllq       (%rax), %mm2
+
+psllw       $1, %mm2
+psllw       %mm0, %mm2
+psllw       (%rax), %mm2
+
+psrad       $1, %mm2
+psrad       %mm0, %mm2
+psrad       (%rax), %mm2
+
+psraw       $1, %mm2
+psraw       %mm0, %mm2
+psraw       (%rax), %mm2
+
+psrld       $1, %mm2
+psrld       %mm0, %mm2
+psrld       (%rax), %mm2
+
+psrlq       $1, %mm2
+psrlq       %mm0, %mm2
+psrlq       (%rax), %mm2
+
+psrlw       $1, %mm2
+psrlw       %mm0, %mm2
+psrlw       (%rax), %mm2
+
+psubb       %mm0, %mm2
+psubb       (%rax), %mm2
+
+psubd       %mm0, %mm2
+psubd       (%rax), %mm2
+
+psubsb      %mm0, %mm2
+psubsb      (%rax), %mm2
+
+psubsw      %mm0, %mm2
+psubsw      (%rax), %mm2
+
+psubusb     %mm0, %mm2
+psubusb     (%rax), %mm2
+
+psubusw     %mm0, %mm2
+psubusw     (%rax), %mm2
+
+psubw       %mm0, %mm2
+psubw       (%rax), %mm2
+
+punpckhbw   %mm0, %mm2
+punpckhbw   (%rax), %mm2
+
+punpckhdq   %mm0, %mm2
+punpckhdq   (%rax), %mm2
+
+punpckhwd   %mm0, %mm2
+punpckhwd   (%rax), %mm2
+
+punpcklbw   %mm0, %mm2
+punpcklbw   (%rax), %mm2
+
+punpckldq   %mm0, %mm2
+punpckldq   (%rax), %mm2
+
+punpcklwd   %mm0, %mm2
+punpcklwd   (%rax), %mm2
+
+pxor        %mm0, %mm2
+pxor        (%rax), %mm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]   Instructions:
+# CHECK-NEXT:  1      100   0.50    *      *      *    emms
+# CHECK-NEXT:  1      1     0.50                       movd    %eax, %mm2
+# CHECK-NEXT:  1      5     1.00    *                  movd    (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       movd    %mm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *      *    movd    %mm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                       movq    %rax, %mm2
+# CHECK-NEXT:  1      5     1.00    *                  movq    (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       movq    %mm0, %rcx
+# CHECK-NEXT:  1      1     1.00           *           movq    %mm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                       packsswb        %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  packsswb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       packssdw        %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  packssdw        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       packuswb        %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  packuswb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddb   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddb   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddd   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddd   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddsb  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddsb  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddsw  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddsw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddusb %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddusb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddusw %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddusw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       paddw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddw   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pand    %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pand    (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pandn   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pandn   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpeqb %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpeqb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpeqd %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpeqd (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpeqw %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpeqw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpgtb %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpgtb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpgtd %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpgtd (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pcmpgtw %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pcmpgtw (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                       pmaddwd %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  pmaddwd (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                       pmulhw  %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  pmulhw  (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                       pmullw  %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  pmullw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       por     %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  por     (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pslld   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       pslld   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pslld   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psllq   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psllq   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psllq   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psllw   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psllw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psllw   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psrad   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psrad   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psrad   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psraw   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psraw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psraw   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psrld   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psrld   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psrld   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psrlq   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psrlq   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psrlq   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psrlw   $1, %mm2
+# CHECK-NEXT:  1      1     0.50                       psrlw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psrlw   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubb   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubb   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubd   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubd   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubsb  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubsb  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubsw  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubsw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubusb %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubusb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubusw %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubusw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       psubw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubw   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpckhbw       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpckhbw       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpckhdq       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpckhdq       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpckhwd       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpckhwd       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpcklbw       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpcklbw       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpckldq       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpckldq       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       punpcklwd       %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  punpcklwd       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pxor    %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pxor    (%rax), %mm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0] - JALU0
+# CHECK-NEXT: [1] - JALU1
+# CHECK-NEXT: [2] - JDiv
+# CHECK-NEXT: [3] - JFPA
+# CHECK-NEXT: [4] - JFPM
+# CHECK-NEXT: [5] - JFPU0
+# CHECK-NEXT: [6] - JFPU1
+# CHECK-NEXT: [7] - JLAGU
+# CHECK-NEXT: [8] - JMul
+# CHECK-NEXT: [9] - JSAGU
+# CHECK-NEXT: [10] - JSTC
+# CHECK-NEXT: [11] - JVALU0
+# CHECK-NEXT: [12] - JVALU1
+# CHECK-NEXT: [13] - JVIMUL
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
+# CHECK-NEXT: 2.50   2.50    -      -      -     51.00  45.00  46.00   -     2.00    -     45.00  45.00  6.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]          Instructions:
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            emms
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            movd    %eax, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            movd    (%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            movd    %mm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movd    %mm0, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            movq    %rax, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            movq    (%rax), %mm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            movq    %mm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movq    %mm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            packsswb        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            packsswb        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            packssdw        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            packssdw        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            packuswb        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            packuswb        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddd   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddd   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddsb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddsb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddusb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddusb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddusw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddusw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pand    %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pand    (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pandn   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pandn   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpeqb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpeqb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpeqd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpeqd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpeqw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpeqw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpgtb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpgtb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpgtd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpgtd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pcmpgtw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pcmpgtw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmaddwd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmaddwd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmulhw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmulhw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmullw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmullw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            por     %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            por     (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pslld   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pslld   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pslld   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psllq   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psllq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psllq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psllw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psllw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psllw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrad   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrad   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psrad   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psraw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psraw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psraw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrld   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrld   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psrld   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrlq   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrlq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psrlq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrlw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psrlw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psrlw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubd   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubd   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubsb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubsb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubusb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubusb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubusw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubusw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpckhbw       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpckhbw       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpckhdq       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpckhdq       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpckhwd       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpckhwd       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpcklbw       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpcklbw       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpckldq       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpckldq       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            punpcklwd       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            punpcklwd       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pxor    %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pxor    (%rax), %mm2
+
index 0cae63126dc6dc7cfced3025f91312ab5660994f..a060ac8ed97d7bec4978d4dd28ce35bd8c19c69a 100644 (file)
@@ -22,6 +22,12 @@ cmpss       $0, (%rax), %xmm2
 comiss      %xmm0, %xmm1
 comiss      (%rax), %xmm1
 
+cvtpi2ps    %mm0, %xmm2
+cvtpi2ps    (%rax), %xmm2
+
+cvtps2pi    %xmm0, %mm2
+cvtps2pi    (%rax), %mm2
+
 cvtsi2ss    %ecx, %xmm2
 cvtsi2ss    %rcx, %xmm2
 cvtsi2ss    (%rax), %xmm2
@@ -32,6 +38,9 @@ cvtss2si    %xmm0, %rcx
 cvtss2si    (%rax), %ecx
 cvtss2si    (%rax), %rcx
 
+cvttps2pi   %xmm0, %mm2
+cvttps2pi   (%rax), %mm2
+
 cvttss2si   %xmm0, %ecx
 cvttss2si   %xmm0, %rcx
 cvttss2si   (%rax), %ecx
@@ -45,6 +54,8 @@ divss       (%rax), %xmm2
 
 ldmxcsr     (%rax)
 
+maskmovq    %mm0, %mm1
+
 maxps       %xmm0, %xmm2
 maxps       (%rax), %xmm2
 
@@ -73,6 +84,7 @@ movlps      (%rax), %xmm2
 movmskps    %xmm0, %rcx
 
 movntps     %xmm0, (%rax)
+movntq      %mm0, (%rax)
 
 movss       %xmm0, %xmm2
 movss       %xmm0, (%rax)
@@ -91,8 +103,39 @@ mulss       (%rax), %xmm2
 orps        %xmm0, %xmm2
 orps        (%rax), %xmm2
 
-pinsrw      $1, %rax, %xmm1
-pinsrw      $1, (%rax), %xmm1
+pavgb       %mm0, %mm2
+pavgb       (%rax), %mm2
+
+pavgw       %mm0, %mm2
+pavgw       (%rax), %mm2
+
+pextrw      $1, %mm0, %rcx
+
+pinsrw      $1, %rax, %mm2
+pinsrw      $1, (%rax), %mm2
+
+pmaxsw      %mm0, %mm2
+pmaxsw      (%rax), %mm2
+
+pmaxub      %mm0, %mm2
+pmaxub      (%rax), %mm2
+
+pminsw      %mm0, %mm2
+pminsw      (%rax), %mm2
+
+pminub      %mm0, %mm2
+pminub      (%rax), %mm2
+
+pmovmskb    %xmm0, %rcx
+
+pmulhuw     %mm0, %mm2
+pmulhuw     (%rax), %mm2
+
+psadbw      %mm0, %mm2
+psadbw      (%rax), %mm2
+
+pshufw      $1, %mm0, %mm2
+pshufw      $1, (%rax), %mm2
 
 rcpps       %xmm0, %xmm2
 rcpps       (%rax), %xmm2
@@ -106,6 +149,8 @@ rsqrtps     (%rax), %xmm2
 rsqrtss     %xmm0, %xmm2
 rsqrtss     (%rax), %xmm2
 
+sfence
+
 shufps      $1, %xmm0, %xmm2
 shufps      $1, (%rax), %xmm2
 
@@ -158,6 +203,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  cmpss   $0, (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       comiss  %xmm0, %xmm1
 # CHECK-NEXT:  1      8     1.00    *                  comiss  (%rax), %xmm1
+# CHECK-NEXT:  1      3     1.00                       cvtpi2ps        %mm0, %xmm2
+# CHECK-NEXT:  1      8     1.00    *                  cvtpi2ps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                       cvtps2pi        %xmm0, %mm2
+# CHECK-NEXT:  1      8     1.00    *                  cvtps2pi        (%rax), %mm2
 # CHECK-NEXT:  2      9     1.00                       cvtsi2ssl       %ecx, %xmm2
 # CHECK-NEXT:  2      9     1.00                       cvtsi2ssq       %rcx, %xmm2
 # CHECK-NEXT:  2      14    1.00    *                  cvtsi2ssl       (%rax), %xmm2
@@ -166,6 +215,8 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00                       cvtss2si        %xmm0, %rcx
 # CHECK-NEXT:  2      12    1.00    *                  cvtss2si        (%rax), %ecx
 # CHECK-NEXT:  2      12    1.00    *                  cvtss2si        (%rax), %rcx
+# CHECK-NEXT:  1      3     1.00                       cvttps2pi       %xmm0, %mm2
+# CHECK-NEXT:  1      8     1.00    *                  cvttps2pi       (%rax), %mm2
 # CHECK-NEXT:  2      7     1.00                       cvttss2si       %xmm0, %ecx
 # CHECK-NEXT:  2      7     1.00                       cvttss2si       %xmm0, %rcx
 # CHECK-NEXT:  2      12    1.00    *                  cvttss2si       (%rax), %ecx
@@ -175,6 +226,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      19    19.00                      divss   %xmm0, %xmm2
 # CHECK-NEXT:  1      24    19.00   *                  divss   (%rax), %xmm2
 # CHECK-NEXT:  1      5     1.00    *      *      *    ldmxcsr (%rax)
+# CHECK-NEXT:  1      1     0.50    *      *      *    maskmovq        %mm0, %mm1
 # CHECK-NEXT:  1      2     1.00                       maxps   %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  maxps   (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                       maxss   %xmm0, %xmm2
@@ -194,6 +246,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  movlps  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       movmskps        %xmm0, %ecx
 # CHECK-NEXT:  1      3     1.00           *           movntps %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *      *    movntq  %mm0, (%rax)
 # CHECK-NEXT:  1      1     0.50                       movss   %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00           *           movss   %xmm0, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                  movss   (%rax), %xmm2
@@ -206,8 +259,28 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  mulss   (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       orps    %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  orps    (%rax), %xmm2
-# CHECK-NEXT:  1      1     0.50                       pinsrw  $1, %eax, %xmm1
-# CHECK-NEXT:  1      6     1.00    *                  pinsrw  $1, (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.50                       pavgb   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pavgb   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pavgw   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pavgw   (%rax), %mm2
+# CHECK-NEXT:  1      3     1.00                       pextrw  $1, %mm0, %ecx
+# CHECK-NEXT:  1      1     0.50                       pinsrw  $1, %eax, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pinsrw  $1, (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pmaxsw  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pmaxsw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pmaxub  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pmaxub  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pminsw  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pminsw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pminub  %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pminub  (%rax), %mm2
+# CHECK-NEXT:  1      3     1.00                       pmovmskb        %xmm0, %ecx
+# CHECK-NEXT:  1      2     1.00                       pmulhuw %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  pmulhuw (%rax), %mm2
+# CHECK-NEXT:  1      2     0.50                       psadbw  %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  psadbw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                       pshufw  $1, %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  pshufw  $1, (%rax), %mm2
 # CHECK-NEXT:  1      2     1.00                       rcpps   %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  rcpps   (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                       rcpss   %xmm0, %xmm2
@@ -216,6 +289,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  rsqrtps (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                       rsqrtss %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  rsqrtss (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      *    sfence
 # CHECK-NEXT:  1      1     0.50                       shufps  $1, %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  shufps  $1, (%rax), %xmm2
 # CHECK-NEXT:  1      21    21.00                      sqrtps  %xmm0, %xmm2
@@ -254,7 +328,7 @@ xorps       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 13.00   -      -     44.50  183.50 37.50  47.50  42.00   -     7.00   15.00  1.00   1.00    -
+# CHECK-NEXT: 15.00   -      -     46.50  183.50 50.00  62.00  54.00   -     9.00   21.00  9.50   9.50   2.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]          Instructions:
@@ -272,6 +346,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -            cmpss   $0, (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            comiss  %xmm0, %xmm1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -            comiss  (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtpi2ps        %mm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtpi2ps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtps2pi        %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtps2pi        (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtsi2ssl       %ecx, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtsi2ssq       %rcx, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtsi2ssl       (%rax), %xmm2
@@ -280,6 +358,8 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00    -      -      -     1.00    -      -      -            cvtss2si        %xmm0, %rcx
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   1.00    -      -     1.00    -      -      -            cvtss2si        (%rax), %ecx
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   1.00    -      -     1.00    -      -      -            cvtss2si        (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvttps2pi       %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvttps2pi       (%rax), %mm2
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00    -      -      -     1.00    -      -      -            cvttss2si       %xmm0, %ecx
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00    -      -      -     1.00    -      -      -            cvttss2si       %xmm0, %rcx
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   1.00    -      -     1.00    -      -      -            cvttss2si       (%rax), %ecx
@@ -289,6 +369,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -            divss   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -            divss   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            ldmxcsr (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            maskmovq        %mm0, %mm1
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            maxps   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -            maxps   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            maxss   %xmm0, %xmm2
@@ -308,6 +389,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            movlps  (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            movmskps        %xmm0, %ecx
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -     1.00   1.00    -      -      -            movntps %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movntq  %mm0, (%rax)
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -            movss   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movss   %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            movss   (%rax), %xmm2
@@ -320,8 +402,28 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -            mulss   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -            orps    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            orps    (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pinsrw  $1, %eax, %xmm1
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pinsrw  $1, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pavgb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pavgb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pavgw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pavgw   (%rax), %mm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            pextrw  $1, %mm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pinsrw  $1, %eax, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pinsrw  $1, (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pmaxsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pmaxsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pmaxub  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pmaxub  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pminsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pminsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pminub  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pminub  (%rax), %mm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            pmovmskb        %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmulhuw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmulhuw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psadbw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psadbw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            pshufw  $1, %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            pshufw  $1, (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -            rcpps   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -            rcpps   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -            rcpss   %xmm0, %xmm2
@@ -330,6 +432,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -            rsqrtps (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -            rsqrtss %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -     1.00   1.00    -      -      -      -      -      -            rsqrtss (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            sfence
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -            shufps  $1, %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            shufps  $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     21.00   -     1.00    -      -      -      -      -      -      -            sqrtps  %xmm0, %xmm2
index 4a3b22c37814ec21a0fa60980d21121a82fae7e0..1a917c4161551b031c3bb75e9e866d1d0b58034f 100644 (file)
@@ -16,6 +16,8 @@ andnpd      (%rax), %xmm2
 andpd       %xmm0, %xmm2
 andpd       (%rax), %xmm2
 
+clflush     (%rax)
+
 cmppd       $0, %xmm0, %xmm2
 cmppd       $0, (%rax), %xmm2
 
@@ -34,9 +36,15 @@ cvtdq2ps    (%rax), %xmm2
 cvtpd2dq    %xmm0, %xmm2
 cvtpd2dq    (%rax), %xmm2
 
+cvtpd2pi    %xmm0, %mm2
+cvtpd2pi    (%rax), %mm2
+
 cvtpd2ps    %xmm0, %xmm2
 cvtpd2ps    (%rax), %xmm2
 
+cvtpi2pd    %mm0, %xmm2
+cvtpi2pd    (%rax), %xmm2
+
 cvtps2dq    %xmm0, %xmm2
 cvtps2dq    (%rax), %xmm2
 
@@ -62,6 +70,9 @@ cvtss2sd    (%rax), %xmm2
 cvttpd2dq   %xmm0, %xmm2
 cvttpd2dq   (%rax), %xmm2
 
+cvttpd2pi   %xmm0, %mm2
+cvttpd2pi   (%rax), %mm2
+
 cvttps2dq   %xmm0, %xmm2
 cvttps2dq   (%rax), %xmm2
 
@@ -76,6 +87,8 @@ divpd       (%rax), %xmm2
 divsd       %xmm0, %xmm2
 divsd       (%rax), %xmm2
 
+lfence
+
 maskmovdqu  %xmm0, %xmm1
 
 maxpd       %xmm0, %xmm2
@@ -108,6 +121,8 @@ movdqu      %xmm0, %xmm2
 movdqu      %xmm0, (%rax)
 movdqu      (%rax), %xmm2
 
+movdq2q     %xmm0, %mm2
+
 movhpd      %xmm0, (%rax)
 movhpd      (%rax), %xmm2
 
@@ -127,6 +142,8 @@ movq        (%rax), %xmm2
 movq        %xmm0, %rcx
 movq        %xmm0, (%rax)
 
+movq2dq     %mm0, %xmm2
+
 movsd       %xmm0, %xmm2
 movsd       %xmm0, (%rax)
 movsd       (%rax), %xmm2
@@ -159,6 +176,9 @@ paddb       (%rax), %xmm2
 paddd       %xmm0, %xmm2
 paddd       (%rax), %xmm2
 
+paddq       %mm0, %mm2
+paddq       (%rax), %mm2
+
 paddq       %xmm0, %xmm2
 paddq       (%rax), %xmm2
 
@@ -235,6 +255,9 @@ pmulhw      (%rax), %xmm2
 pmullw      %xmm0, %xmm2
 pmullw      (%rax), %xmm2
 
+pmuludq     %mm0, %mm2
+pmuludq     (%rax), %mm2
+
 pmuludq     %xmm0, %xmm2
 pmuludq     (%rax), %xmm2
 
@@ -295,6 +318,9 @@ psubb       (%rax), %xmm2
 psubd       %xmm0, %xmm2
 psubd       (%rax), %xmm2
 
+psubq       %mm0, %mm2
+psubq       (%rax), %mm2
+
 psubq       %xmm0, %xmm2
 psubq       (%rax), %xmm2
 
@@ -386,6 +412,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  andnpd  (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       andpd   %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  andpd   (%rax), %xmm2
+# CHECK-NEXT:  1      5     1.00    *      *      *    clflush (%rax)
 # CHECK-NEXT:  1      2     1.00                       cmppd   $0, %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  cmppd   $0, (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                       cmpsd   $0, %xmm0, %xmm2
@@ -398,8 +425,12 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvtdq2ps        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       cvtpd2dq        %xmm0, %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvtpd2dq        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                       cvtpd2pi        %xmm0, %mm2
+# CHECK-NEXT:  1      8     1.00    *                  cvtpd2pi        (%rax), %mm2
 # CHECK-NEXT:  1      3     1.00                       cvtpd2ps        %xmm0, %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvtpd2ps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                       cvtpi2pd        %mm0, %xmm2
+# CHECK-NEXT:  1      8     1.00    *                  cvtpi2pd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       cvtps2dq        %xmm0, %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvtps2dq        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       cvtps2pd        %xmm0, %xmm2
@@ -418,6 +449,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      12    2.00    *                  cvtss2sd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                       cvttpd2dq       %xmm0, %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvttpd2dq       (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                       cvttpd2pi       %xmm0, %mm2
+# CHECK-NEXT:  1      8     1.00    *                  cvttpd2pi       (%rax), %mm2
 # CHECK-NEXT:  1      3     1.00                       cvttps2dq       %xmm0, %xmm2
 # CHECK-NEXT:  1      8     1.00    *                  cvttps2dq       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00                       cvttsd2si       %xmm0, %ecx
@@ -428,6 +461,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      24    19.00   *                  divpd   (%rax), %xmm2
 # CHECK-NEXT:  1      19    19.00                      divsd   %xmm0, %xmm2
 # CHECK-NEXT:  1      24    19.00   *                  divsd   (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      *    lfence
 # CHECK-NEXT:  1      1     1.00    *      *      *    maskmovdqu      %xmm0, %xmm1
 # CHECK-NEXT:  1      2     1.00                       maxpd   %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  maxpd   (%rax), %xmm2
@@ -450,6 +484,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       movdqu  %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00           *           movdqu  %xmm0, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                  movdqu  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                       movdq2q %xmm0, %mm2
 # CHECK-NEXT:  1      1     1.00           *           movhpd  %xmm0, (%rax)
 # CHECK-NEXT:  1      6     1.00    *                  movhpd  (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00           *           movlpd  %xmm0, (%rax)
@@ -462,6 +497,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      5     1.00    *                  movq    (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       movq    %xmm0, %rcx
 # CHECK-NEXT:  1      1     1.00           *           movq    %xmm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                       movq2dq %mm0, %xmm2
 # CHECK-NEXT:  1      1     0.50                       movsd   %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00           *           movsd   %xmm0, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                  movsd   (%rax), %xmm2
@@ -484,6 +520,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  paddb   (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       paddd   %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  paddd   (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                       paddq   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  paddq   (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                       paddq   %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  paddq   (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       paddsb  %xmm0, %xmm2
@@ -534,6 +572,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  pmulhw  (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                       pmullw  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  pmullw  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                       pmuludq %mm0, %mm2
+# CHECK-NEXT:  1      7     1.00    *                  pmuludq (%rax), %mm2
 # CHECK-NEXT:  1      2     1.00                       pmuludq %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                  pmuludq (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       por     %xmm0, %xmm2
@@ -576,6 +616,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  psubb   (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       psubd   %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  psubd   (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                       psubq   %mm0, %mm2
+# CHECK-NEXT:  1      6     1.00    *                  psubq   (%rax), %mm2
 # CHECK-NEXT:  1      1     0.50                       psubq   %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                  psubq   (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                       psubsb  %xmm0, %xmm2
@@ -643,7 +685,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 17.00  2.00    -     47.50  202.50 112.00 124.00 111.00  -     12.00  43.00  62.50  62.50  10.00
+# CHECK-NEXT: 17.00  2.00    -     47.50  202.50 117.00 133.00 118.00  -     13.00  49.00  65.50  65.50  12.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]          Instructions:
@@ -657,6 +699,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            andnpd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -            andpd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            andpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            clflush (%rax)
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            cmppd   $0, %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -            cmppd   $0, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            cmpsd   $0, %xmm0, %xmm2
@@ -669,8 +712,12 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtdq2ps        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtpd2dq        %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtpd2dq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtpd2pi        %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtpd2pi        (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtpd2ps        %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtpd2ps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtpi2pd        %mm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtpi2pd        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtps2dq        %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvtps2dq        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvtps2pd        %xmm0, %xmm2
@@ -689,6 +736,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     2.00    -      -      -            cvtss2sd        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvttpd2dq       %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvttpd2dq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvttpd2pi       %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvttpd2pi       (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -            cvttps2dq       %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00    -      -     1.00    -      -      -            cvttps2dq       (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00    -      -      -     1.00    -      -      -            cvttsd2si       %xmm0, %ecx
@@ -699,6 +748,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -            divpd   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00    -      -      -      -      -      -      -            divsd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     19.00   -     1.00   1.00    -      -      -      -      -      -            divsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            lfence
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -     1.00   1.00    -      -      -            maskmovdqu      %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -            maxpd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -            maxpd   (%rax), %xmm2
@@ -721,6 +771,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            movdqu  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -     1.00   1.00    -      -      -            movdqu  %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            movdqu  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            movdq2q %xmm0, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movhpd  %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -            movhpd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movlpd  %xmm0, (%rax)
@@ -733,6 +784,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            movq    (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -            movq    %xmm0, %rcx
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movq    %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            movq2dq %mm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -            movsd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -            movsd   %xmm0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -            movsd   (%rax), %xmm2
@@ -755,6 +807,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddb   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddq   (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddq   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            paddq   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            paddsb  %xmm0, %xmm2
@@ -805,6 +859,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmulhw  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmullw  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmullw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmuludq %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmuludq (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00          pmuludq %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00          pmuludq (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            por     %xmm0, %xmm2
@@ -847,6 +903,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubb   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubd   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubq   (%rax), %mm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubq   %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -            psubq   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -            psubsb  %xmm0, %xmm2