[llvm] r327788 - [X86][Btver2] Add llvm-mca tests to show pipe resource usage of most vector instructions
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 18 02:32:38 PDT 2018
Author: rksimon
Date: Sun Mar 18 02:32:38 2018
New Revision: 327788
URL: http://llvm.org/viewvc/llvm-project?rev=327788&view=rev
Log:
[X86][Btver2] Add llvm-mca tests to show pipe resource usage of most vector instructions
Hopefully these tests can be easily reused should any other subtarget get in depth llvm-mca coverage (we can either copy the tests or move them into a common dir and run it with multiple prefixes).
Added:
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-aes.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-clmul.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-f16c.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-aes.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-aes.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-aes.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-aes.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,50 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+aesdec %xmm0, %xmm2
+aesdec (%rax), %xmm2
+
+aesdeclast %xmm0, %xmm2
+aesdeclast (%rax), %xmm2
+
+aesenc %xmm0, %xmm2
+aesenc (%rax), %xmm2
+
+aesenclast %xmm0, %xmm2
+aesenclast (%rax), %xmm2
+
+aesimc %xmm0, %xmm2
+aesimc (%rax), %xmm2
+
+aeskeygenassist $22, %xmm0, %xmm2
+aeskeygenassist $22, (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesdec %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesdec (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesdeclast %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesdeclast (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesenc %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesenc (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesenclast %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesenclast (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aesimc %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aesimc (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 aeskeygenassist $22, (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,1702 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+vaddpd %xmm0, %xmm1, %xmm2
+vaddpd (%rax), %xmm1, %xmm2
+
+vaddpd %ymm0, %ymm1, %ymm2
+vaddpd (%rax), %ymm1, %ymm2
+
+vaddps %xmm0, %xmm1, %xmm2
+vaddps (%rax), %xmm1, %xmm2
+
+vaddps %ymm0, %ymm1, %ymm2
+vaddps (%rax), %ymm1, %ymm2
+
+vaddsd %xmm0, %xmm1, %xmm2
+vaddsd (%rax), %xmm1, %xmm2
+
+vaddss %xmm0, %xmm1, %xmm2
+vaddss (%rax), %xmm1, %xmm2
+
+vaddsubpd %xmm0, %xmm1, %xmm2
+vaddsubpd (%rax), %xmm1, %xmm2
+
+vaddsubpd %ymm0, %ymm1, %ymm2
+vaddsubpd (%rax), %ymm1, %ymm2
+
+vaddsubps %xmm0, %xmm1, %xmm2
+vaddsubps (%rax), %xmm1, %xmm2
+
+vaddsubps %ymm0, %ymm1, %ymm2
+vaddsubps (%rax), %ymm1, %ymm2
+
+vaesdec %xmm0, %xmm1, %xmm2
+vaesdec (%rax), %xmm1, %xmm2
+
+vaesdeclast %xmm0, %xmm1, %xmm2
+vaesdeclast (%rax), %xmm1, %xmm2
+
+vaesenc %xmm0, %xmm1, %xmm2
+vaesenc (%rax), %xmm1, %xmm2
+
+vaesenclast %xmm0, %xmm1, %xmm2
+vaesenclast (%rax), %xmm1, %xmm2
+
+vaesimc %xmm0, %xmm2
+vaesimc (%rax), %xmm2
+
+vaeskeygenassist $22, %xmm0, %xmm2
+vaeskeygenassist $22, (%rax), %xmm2
+
+vandnpd %xmm0, %xmm1, %xmm2
+vandnpd (%rax), %xmm1, %xmm2
+
+vandnpd %ymm0, %ymm1, %ymm2
+vandnpd (%rax), %ymm1, %ymm2
+
+vandnps %xmm0, %xmm1, %xmm2
+vandnps (%rax), %xmm1, %xmm2
+
+vandnps %ymm0, %ymm1, %ymm2
+vandnps (%rax), %ymm1, %ymm2
+
+vandpd %xmm0, %xmm1, %xmm2
+vandpd (%rax), %xmm1, %xmm2
+
+vandpd %ymm0, %ymm1, %ymm2
+vandpd (%rax), %ymm1, %ymm2
+
+vandps %xmm0, %xmm1, %xmm2
+vandps (%rax), %xmm1, %xmm2
+
+vandps %ymm0, %ymm1, %ymm2
+vandps (%rax), %ymm1, %ymm2
+
+vblendpd $11, %xmm0, %xmm1, %xmm2
+vblendpd $11, (%rax), %xmm1, %xmm2
+
+vblendpd $11, %ymm0, %ymm1, %ymm2
+vblendpd $11, (%rax), %ymm1, %ymm2
+
+vblendps $11, %xmm0, %xmm1, %xmm2
+vblendps $11, (%rax), %xmm1, %xmm2
+
+vblendps $11, %ymm0, %ymm1, %ymm2
+vblendps $11, (%rax), %ymm1, %ymm2
+
+vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+
+vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+
+vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+vblendvps %xmm3, (%rax), %xmm1, %xmm2
+
+vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+vblendvps %ymm3, (%rax), %ymm1, %ymm2
+
+vbroadcastf128 (%rax), %ymm2
+
+vbroadcastsd (%rax), %ymm2
+
+vbroadcastss (%rax), %xmm2
+vbroadcastss (%rax), %ymm2
+
+vcmppd $0, %xmm0, %xmm1, %xmm2
+vcmppd $0, (%rax), %xmm1, %xmm2
+
+vcmppd $0, %ymm0, %ymm1, %ymm2
+vcmppd $0, (%rax), %ymm1, %ymm2
+
+vcmpps $0, %xmm0, %xmm1, %xmm2
+vcmpps $0, (%rax), %xmm1, %xmm2
+
+vcmpps $0, %ymm0, %ymm1, %ymm2
+vcmpps $0, (%rax), %ymm1, %ymm2
+
+vcmpsd $0, %xmm0, %xmm1, %xmm2
+vcmpsd $0, (%rax), %xmm1, %xmm2
+
+vcmpss $0, %xmm0, %xmm1, %xmm2
+vcmpss $0, (%rax), %xmm1, %xmm2
+
+vcomisd %xmm0, %xmm1
+vcomisd (%rax), %xmm1
+
+vcomiss %xmm0, %xmm1
+vcomiss (%rax), %xmm1
+
+vcvtdq2pd %xmm0, %xmm2
+vcvtdq2pd (%rax), %xmm2
+
+vcvtdq2pd %xmm0, %ymm2
+vcvtdq2pd (%rax), %ymm2
+
+vcvtdq2ps %xmm0, %xmm2
+vcvtdq2ps (%rax), %xmm2
+
+vcvtdq2ps %ymm0, %ymm2
+vcvtdq2ps (%rax), %ymm2
+
+vcvtpd2dqx %xmm0, %xmm2
+vcvtpd2dqx (%rax), %xmm2
+
+vcvtpd2dqy %ymm0, %xmm2
+vcvtpd2dqy (%rax), %xmm2
+
+vcvtpd2psx %xmm0, %xmm2
+vcvtpd2psx (%rax), %xmm2
+
+vcvtpd2psy %ymm0, %xmm2
+vcvtpd2psy (%rax), %xmm2
+
+vcvtps2dq %xmm0, %xmm2
+vcvtps2dq (%rax), %xmm2
+
+vcvtps2dq %ymm0, %ymm2
+vcvtps2dq (%rax), %ymm2
+
+vcvtps2pd %xmm0, %xmm2
+vcvtps2pd (%rax), %xmm2
+
+vcvtps2pd %xmm0, %ymm2
+vcvtps2pd (%rax), %ymm2
+
+vcvtsd2si %xmm0, %ecx
+vcvtsd2si %xmm0, %rcx
+vcvtsd2si (%rax), %ecx
+vcvtsd2si (%rax), %rcx
+
+vcvtsd2ss %xmm0, %xmm1, %xmm2
+vcvtsd2ss (%rax), %xmm1, %xmm2
+
+vcvtsi2sdl %ecx, %xmm0, %xmm2
+vcvtsi2sdq %rcx, %xmm0, %xmm2
+vcvtsi2sdl (%rax), %xmm0, %xmm2
+vcvtsi2sdq (%rax), %xmm0, %xmm2
+
+vcvtsi2ssl %ecx, %xmm0, %xmm2
+vcvtsi2ssq %rcx, %xmm0, %xmm2
+vcvtsi2ssl (%rax), %xmm0, %xmm2
+vcvtsi2ssq (%rax), %xmm0, %xmm2
+
+vcvtss2sd %xmm0, %xmm1, %xmm2
+vcvtss2sd (%rax), %xmm1, %xmm2
+
+vcvtss2si %xmm0, %ecx
+vcvtss2si %xmm0, %rcx
+vcvtss2si (%rax), %ecx
+vcvtss2si (%rax), %rcx
+
+vcvttpd2dqx %xmm0, %xmm2
+vcvttpd2dqx (%rax), %xmm2
+
+vcvttpd2dqy %ymm0, %xmm2
+vcvttpd2dqy (%rax), %xmm2
+
+vcvttps2dq %xmm0, %xmm2
+vcvttps2dq (%rax), %xmm2
+
+vcvttps2dq %ymm0, %ymm2
+vcvttps2dq (%rax), %ymm2
+
+vcvttsd2si %xmm0, %ecx
+vcvttsd2si %xmm0, %rcx
+vcvttsd2si (%rax), %ecx
+vcvttsd2si (%rax), %rcx
+
+vdivpd %xmm0, %xmm1, %xmm2
+vdivpd (%rax), %xmm1, %xmm2
+
+vdivpd %ymm0, %ymm1, %ymm2
+vdivpd (%rax), %ymm1, %ymm2
+
+vdivps %xmm0, %xmm1, %xmm2
+vdivps (%rax), %xmm1, %xmm2
+
+vdivps %ymm0, %ymm1, %ymm2
+vdivps (%rax), %ymm1, %ymm2
+
+vdivsd %xmm0, %xmm1, %xmm2
+vdivsd (%rax), %xmm1, %xmm2
+
+vdivss %xmm0, %xmm1, %xmm2
+vdivss (%rax), %xmm1, %xmm2
+
+vdppd $22, %xmm0, %xmm1, %xmm2
+vdppd $22, (%rax), %xmm1, %xmm2
+
+vdpps $22, %xmm0, %xmm1, %xmm2
+vdpps $22, (%rax), %xmm1, %xmm2
+
+vdpps $22, %ymm0, %ymm1, %ymm2
+vdpps $22, (%rax), %ymm1, %ymm2
+
+vextractf128 $1, %ymm0, %xmm2
+vextractf128 $1, %ymm0, (%rax)
+
+vextractps $1, %xmm0, %rcx
+vextractps $1, %xmm0, (%rax)
+
+vhaddpd %xmm0, %xmm1, %xmm2
+vhaddpd (%rax), %xmm1, %xmm2
+
+vhaddpd %ymm0, %ymm1, %ymm2
+vhaddpd (%rax), %ymm1, %ymm2
+
+vhaddps %xmm0, %xmm1, %xmm2
+vhaddps (%rax), %xmm1, %xmm2
+
+vhaddps %ymm0, %ymm1, %ymm2
+vhaddps (%rax), %ymm1, %ymm2
+
+vhsubpd %xmm0, %xmm1, %xmm2
+vhsubpd (%rax), %xmm1, %xmm2
+
+vhsubpd %ymm0, %ymm1, %ymm2
+vhsubpd (%rax), %ymm1, %ymm2
+
+vhsubps %xmm0, %xmm1, %xmm2
+vhsubps (%rax), %xmm1, %xmm2
+
+vhsubps %ymm0, %ymm1, %ymm2
+vhsubps (%rax), %ymm1, %ymm2
+
+vinsertf128 $1, %xmm0, %ymm1, %ymm2
+vinsertf128 $1, (%rax), %ymm1, %ymm2
+
+vinsertps $1, %xmm0, %xmm1, %xmm2
+vinsertps $1, (%rax), %xmm1, %xmm2
+
+vlddqu (%rax), %xmm2
+vlddqu (%rax), %ymm2
+
+vldmxcsr (%rax)
+
+vmaskmovdqu %xmm0, %xmm1
+
+vmaskmovpd (%rax), %xmm0, %xmm2
+vmaskmovpd (%rax), %ymm0, %ymm2
+
+vmaskmovpd %xmm0, %xmm1, (%rax)
+vmaskmovpd %ymm0, %ymm1, (%rax)
+
+vmaskmovps (%rax), %xmm0, %xmm2
+vmaskmovps (%rax), %ymm0, %ymm2
+
+vmaskmovps %xmm0, %xmm1, (%rax)
+vmaskmovps %ymm0, %ymm1, (%rax)
+
+vmaxpd %xmm0, %xmm1, %xmm2
+vmaxpd (%rax), %xmm1, %xmm2
+
+vmaxpd %ymm0, %ymm1, %ymm2
+vmaxpd (%rax), %ymm1, %ymm2
+
+vmaxps %xmm0, %xmm1, %xmm2
+vmaxps (%rax), %xmm1, %xmm2
+
+vmaxps %ymm0, %ymm1, %ymm2
+vmaxps (%rax), %ymm1, %ymm2
+
+vmaxsd %xmm0, %xmm1, %xmm2
+vmaxsd (%rax), %xmm1, %xmm2
+
+vmaxss %xmm0, %xmm1, %xmm2
+vmaxss (%rax), %xmm1, %xmm2
+
+vminpd %xmm0, %xmm1, %xmm2
+vminpd (%rax), %xmm1, %xmm2
+
+vminpd %ymm0, %ymm1, %ymm2
+vminpd (%rax), %ymm1, %ymm2
+
+vminps %xmm0, %xmm1, %xmm2
+vminps (%rax), %xmm1, %xmm2
+
+vminps %ymm0, %ymm1, %ymm2
+vminps (%rax), %ymm1, %ymm2
+
+vminsd %xmm0, %xmm1, %xmm2
+vminsd (%rax), %xmm1, %xmm2
+
+vminss %xmm0, %xmm1, %xmm2
+vminss (%rax), %xmm1, %xmm2
+
+vmovapd %xmm0, %xmm2
+vmovapd %xmm0, (%rax)
+vmovapd (%rax), %xmm2
+
+vmovapd %ymm0, %ymm2
+vmovapd %ymm0, (%rax)
+vmovapd (%rax), %ymm2
+
+vmovaps %xmm0, %xmm2
+vmovaps %xmm0, (%rax)
+vmovaps (%rax), %xmm2
+
+vmovaps %ymm0, %ymm2
+vmovaps %ymm0, (%rax)
+vmovaps (%rax), %ymm2
+
+vmovd %eax, %xmm2
+vmovd (%rax), %xmm2
+
+vmovd %xmm0, %ecx
+vmovd %xmm0, (%rax)
+
+vmovddup %xmm0, %xmm2
+vmovddup (%rax), %xmm2
+
+vmovddup %ymm0, %ymm2
+vmovddup (%rax), %ymm2
+
+vmovdqa %xmm0, %xmm2
+vmovdqa %xmm0, (%rax)
+vmovdqa (%rax), %xmm2
+
+vmovdqa %ymm0, %ymm2
+vmovdqa %ymm0, (%rax)
+vmovdqa (%rax), %ymm2
+
+vmovdqu %xmm0, %xmm2
+vmovdqu %xmm0, (%rax)
+vmovdqu (%rax), %xmm2
+
+vmovdqu %ymm0, %ymm2
+vmovdqu %ymm0, (%rax)
+vmovdqu (%rax), %ymm2
+
+vmovhlps %xmm0, %xmm1, %xmm2
+vmovlhps %xmm0, %xmm1, %xmm2
+
+vmovhpd %xmm0, (%rax)
+vmovhpd (%rax), %xmm1, %xmm2
+
+vmovhps %xmm0, (%rax)
+vmovhps (%rax), %xmm1, %xmm2
+
+vmovlpd %xmm0, (%rax)
+vmovlpd (%rax), %xmm1, %xmm2
+
+vmovlps %xmm0, (%rax)
+vmovlps (%rax), %xmm1, %xmm2
+
+vmovmskpd %xmm0, %rcx
+vmovmskpd %ymm0, %rcx
+
+vmovmskps %xmm0, %rcx
+vmovmskps %ymm0, %rcx
+
+vmovntdq %xmm0, (%rax)
+vmovntdq %ymm0, (%rax)
+
+vmovntdqa (%rax), %xmm2
+vmovntdqa (%rax), %ymm2
+
+vmovntpd %xmm0, (%rax)
+vmovntpd %ymm0, (%rax)
+
+vmovntps %xmm0, (%rax)
+vmovntps %ymm0, (%rax)
+
+vmovq %xmm0, %xmm2
+
+vmovq %rax, %xmm2
+vmovq (%rax), %xmm2
+
+vmovq %xmm0, %rcx
+vmovq %xmm0, (%rax)
+
+vmovsd %xmm0, %xmm1, %xmm2
+vmovsd %xmm0, (%rax)
+vmovsd (%rax), %xmm2
+
+vmovshdup %xmm0, %xmm2
+vmovshdup (%rax), %xmm2
+
+vmovshdup %ymm0, %ymm2
+vmovshdup (%rax), %ymm2
+
+vmovsldup %xmm0, %xmm2
+vmovsldup (%rax), %xmm2
+
+vmovsldup %ymm0, %ymm2
+vmovsldup (%rax), %ymm2
+
+vmovss %xmm0, %xmm1, %xmm2
+vmovss %xmm0, (%rax)
+vmovss (%rax), %xmm2
+
+vmovupd %xmm0, %xmm2
+vmovupd %xmm0, (%rax)
+vmovupd (%rax), %xmm2
+
+vmovupd %ymm0, %ymm2
+vmovupd %ymm0, (%rax)
+vmovupd (%rax), %ymm2
+
+vmovups %xmm0, %xmm2
+vmovups %xmm0, (%rax)
+vmovups (%rax), %xmm2
+
+vmovups %ymm0, %ymm2
+vmovups %ymm0, (%rax)
+vmovups (%rax), %ymm2
+
+vmpsadbw $1, %xmm0, %xmm1, %xmm2
+vmpsadbw $1, (%rax), %xmm1, %xmm2
+
+vmulpd %xmm0, %xmm1, %xmm2
+vmulpd (%rax), %xmm1, %xmm2
+
+vmulpd %ymm0, %ymm1, %ymm2
+vmulpd (%rax), %ymm1, %ymm2
+
+vmulps %xmm0, %xmm1, %xmm2
+vmulps (%rax), %xmm1, %xmm2
+
+vmulps %ymm0, %ymm1, %ymm2
+vmulps (%rax), %ymm1, %ymm2
+
+vmulsd %xmm0, %xmm1, %xmm2
+vmulsd (%rax), %xmm1, %xmm2
+
+vmulss %xmm0, %xmm1, %xmm2
+vmulss (%rax), %xmm1, %xmm2
+
+vorpd %xmm0, %xmm1, %xmm2
+vorpd (%rax), %xmm1, %xmm2
+
+vorpd %ymm0, %ymm1, %ymm2
+vorpd (%rax), %ymm1, %ymm2
+
+vorps %xmm0, %xmm1, %xmm2
+vorps (%rax), %xmm1, %xmm2
+
+vorps %ymm0, %ymm1, %ymm2
+vorps (%rax), %ymm1, %ymm2
+
+vpabsb %xmm0, %xmm2
+vpabsb (%rax), %xmm2
+
+vpabsd %xmm0, %xmm2
+vpabsd (%rax), %xmm2
+
+vpabsw %xmm0, %xmm2
+vpabsw (%rax), %xmm2
+
+vpackssdw %xmm0, %xmm1, %xmm2
+vpackssdw (%rax), %xmm1, %xmm2
+
+vpacksswb %xmm0, %xmm1, %xmm2
+vpacksswb (%rax), %xmm1, %xmm2
+
+vpackusdw %xmm0, %xmm1, %xmm2
+vpackusdw (%rax), %xmm1, %xmm2
+
+vpackuswb %xmm0, %xmm1, %xmm2
+vpackuswb (%rax), %xmm1, %xmm2
+
+vpaddb %xmm0, %xmm1, %xmm2
+vpaddb (%rax), %xmm1, %xmm2
+
+vpaddd %xmm0, %xmm1, %xmm2
+vpaddd (%rax), %xmm1, %xmm2
+
+vpaddq %xmm0, %xmm1, %xmm2
+vpaddq (%rax), %xmm1, %xmm2
+
+vpaddsb %xmm0, %xmm1, %xmm2
+vpaddsb (%rax), %xmm1, %xmm2
+
+vpaddsw %xmm0, %xmm1, %xmm2
+vpaddsw (%rax), %xmm1, %xmm2
+
+vpaddusb %xmm0, %xmm1, %xmm2
+vpaddusb (%rax), %xmm1, %xmm2
+
+vpaddusw %xmm0, %xmm1, %xmm2
+vpaddusw (%rax), %xmm1, %xmm2
+
+vpaddw %xmm0, %xmm1, %xmm2
+vpaddw (%rax), %xmm1, %xmm2
+
+vpalignr $1, %xmm0, %xmm1, %xmm2
+vpalignr $1, (%rax), %xmm1, %xmm2
+
+vpand %xmm0, %xmm1, %xmm2
+vpand (%rax), %xmm1, %xmm2
+
+vpandn %xmm0, %xmm1, %xmm2
+vpandn (%rax), %xmm1, %xmm2
+
+vpavgb %xmm0, %xmm1, %xmm2
+vpavgb (%rax), %xmm1, %xmm2
+
+vpavgw %xmm0, %xmm1, %xmm2
+vpavgw (%rax), %xmm1, %xmm2
+
+vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+
+vpblendw $11, %xmm0, %xmm1, %xmm2
+vpblendw $11, (%rax), %xmm1, %xmm2
+
+vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+vpclmulqdq $11, (%rax), %xmm1, %xmm2
+
+vpcmpeqb %xmm0, %xmm1, %xmm2
+vpcmpeqb (%rax), %xmm1, %xmm2
+
+vpcmpeqd %xmm0, %xmm1, %xmm2
+vpcmpeqd (%rax), %xmm1, %xmm2
+
+vpcmpeqq %xmm0, %xmm1, %xmm2
+vpcmpeqq (%rax), %xmm1, %xmm2
+
+vpcmpeqw %xmm0, %xmm1, %xmm2
+vpcmpeqw (%rax), %xmm1, %xmm2
+
+vpcmpgtb %xmm0, %xmm1, %xmm2
+vpcmpgtb (%rax), %xmm1, %xmm2
+
+vpcmpgtd %xmm0, %xmm1, %xmm2
+vpcmpgtd (%rax), %xmm1, %xmm2
+
+vpcmpgtq %xmm0, %xmm1, %xmm2
+vpcmpgtq (%rax), %xmm1, %xmm2
+
+vpcmpgtw %xmm0, %xmm1, %xmm2
+vpcmpgtw (%rax), %xmm1, %xmm2
+
+vperm2f128 $1, %ymm0, %ymm1, %ymm2
+vperm2f128 $1, (%rax), %ymm1, %ymm2
+
+vpermilpd $1, %xmm0, %xmm2
+vpermilpd $1, (%rax), %xmm2
+vpermilpd %xmm0, %xmm1, %xmm2
+vpermilpd (%rax), %xmm1, %xmm2
+
+vpermilpd $1, %ymm0, %ymm2
+vpermilpd $1, (%rax), %ymm2
+vpermilpd %ymm0, %ymm1, %ymm2
+vpermilpd (%rax), %ymm1, %ymm2
+
+vpermilps $1, %xmm0, %xmm2
+vpermilps $1, (%rax), %xmm2
+vpermilps %xmm0, %xmm1, %xmm2
+vpermilps (%rax), %xmm1, %xmm2
+
+vpermilps $1, %ymm0, %ymm2
+vpermilps $1, (%rax), %ymm2
+vpermilps %ymm0, %ymm1, %ymm2
+vpermilps (%rax), %ymm1, %ymm2
+
+vpextrb $1, %xmm0, %ecx
+vpextrb $1, %xmm0, (%rax)
+
+vpextrd $1, %xmm0, %ecx
+vpextrd $1, %xmm0, (%rax)
+
+vpextrq $1, %xmm0, %rcx
+vpextrq $1, %xmm0, (%rax)
+
+vpextrw $1, %xmm0, %ecx
+vpextrw $1, %xmm0, (%rax)
+
+vphaddd %xmm0, %xmm1, %xmm2
+vphaddd (%rax), %xmm1, %xmm2
+
+vphaddsw %xmm0, %xmm1, %xmm2
+vphaddsw (%rax), %xmm1, %xmm2
+
+vphaddw %xmm0, %xmm1, %xmm2
+vphaddw (%rax), %xmm1, %xmm2
+
+vphminposuw %xmm0, %xmm2
+vphminposuw (%rax), %xmm2
+
+vphsubd %xmm0, %xmm1, %xmm2
+vphsubd (%rax), %xmm1, %xmm2
+
+vphsubsw %xmm0, %xmm1, %xmm2
+vphsubsw (%rax), %xmm1, %xmm2
+
+vphsubw %xmm0, %xmm1, %xmm2
+vphsubw (%rax), %xmm1, %xmm2
+
+vpinsrb $1, %eax, %xmm1, %xmm2
+vpinsrb $1, (%rax), %xmm1, %xmm2
+
+vpinsrd $1, %eax, %xmm1, %xmm2
+vpinsrd $1, (%rax), %xmm1, %xmm2
+
+vpinsrq $1, %rax, %xmm1, %xmm2
+vpinsrq $1, (%rax), %xmm1, %xmm2
+
+vpinsrw $1, %eax, %xmm1, %xmm2
+vpinsrw $1, (%rax), %xmm1, %xmm2
+
+vpmaddubsw %xmm0, %xmm1, %xmm2
+vpmaddubsw (%rax), %xmm1, %xmm2
+
+vpmaddwd %xmm0, %xmm1, %xmm2
+vpmaddwd (%rax), %xmm1, %xmm2
+
+vpmaxsb %xmm0, %xmm1, %xmm2
+vpmaxsb (%rax), %xmm1, %xmm2
+
+vpmaxsd %xmm0, %xmm1, %xmm2
+vpmaxsd (%rax), %xmm1, %xmm2
+
+vpmaxsw %xmm0, %xmm1, %xmm2
+vpmaxsw (%rax), %xmm1, %xmm2
+
+vpmaxub %xmm0, %xmm1, %xmm2
+vpmaxub (%rax), %xmm1, %xmm2
+
+vpmaxud %xmm0, %xmm1, %xmm2
+vpmaxud (%rax), %xmm1, %xmm2
+
+vpmaxuw %xmm0, %xmm1, %xmm2
+vpmaxuw (%rax), %xmm1, %xmm2
+
+vpminsb %xmm0, %xmm1, %xmm2
+vpminsb (%rax), %xmm1, %xmm2
+
+vpminsd %xmm0, %xmm1, %xmm2
+vpminsd (%rax), %xmm1, %xmm2
+
+vpminsw %xmm0, %xmm1, %xmm2
+vpminsw (%rax), %xmm1, %xmm2
+
+vpminub %xmm0, %xmm1, %xmm2
+vpminub (%rax), %xmm1, %xmm2
+
+vpminud %xmm0, %xmm1, %xmm2
+vpminud (%rax), %xmm1, %xmm2
+
+vpminuw %xmm0, %xmm1, %xmm2
+vpminuw (%rax), %xmm1, %xmm2
+
+vpmovmskb %xmm0, %rcx
+
+vpmovsxbd %xmm0, %xmm2
+vpmovsxbd (%rax), %xmm2
+
+vpmovsxbq %xmm0, %xmm2
+vpmovsxbq (%rax), %xmm2
+
+vpmovsxbw %xmm0, %xmm2
+vpmovsxbw (%rax), %xmm2
+
+vpmovsxdq %xmm0, %xmm2
+vpmovsxdq (%rax), %xmm2
+
+vpmovsxwd %xmm0, %xmm2
+vpmovsxwd (%rax), %xmm2
+
+vpmovsxwq %xmm0, %xmm2
+vpmovsxwq (%rax), %xmm2
+
+vpmovzxbd %xmm0, %xmm2
+vpmovzxbd (%rax), %xmm2
+
+vpmovzxbq %xmm0, %xmm2
+vpmovzxbq (%rax), %xmm2
+
+vpmovzxbw %xmm0, %xmm2
+vpmovzxbw (%rax), %xmm2
+
+vpmovzxdq %xmm0, %xmm2
+vpmovzxdq (%rax), %xmm2
+
+vpmovzxwd %xmm0, %xmm2
+vpmovzxwd (%rax), %xmm2
+
+vpmovzxwq %xmm0, %xmm2
+vpmovzxwq (%rax), %xmm2
+
+vpmuldq %xmm0, %xmm1, %xmm2
+vpmuldq (%rax), %xmm1, %xmm2
+
+vpmulhrsw %xmm0, %xmm1, %xmm2
+vpmulhrsw (%rax), %xmm1, %xmm2
+
+vpmulhuw %xmm0, %xmm1, %xmm2
+vpmulhuw (%rax), %xmm1, %xmm2
+
+vpmulhw %xmm0, %xmm1, %xmm2
+vpmulhw (%rax), %xmm1, %xmm2
+
+vpmulld %xmm0, %xmm1, %xmm2
+vpmulld (%rax), %xmm1, %xmm2
+
+vpmullw %xmm0, %xmm1, %xmm2
+vpmullw (%rax), %xmm1, %xmm2
+
+vpmuludq %xmm0, %xmm1, %xmm2
+vpmuludq (%rax), %xmm1, %xmm2
+
+vpor %xmm0, %xmm1, %xmm2
+vpor (%rax), %xmm1, %xmm2
+
+vpsadbw %xmm0, %xmm1, %xmm2
+vpsadbw (%rax), %xmm1, %xmm2
+
+vpshufb %xmm0, %xmm1, %xmm2
+vpshufb (%rax), %xmm1, %xmm2
+
+vpshufd $1, %xmm0, %xmm2
+vpshufd $1, (%rax), %xmm2
+
+vpshufhw $1, %xmm0, %xmm2
+vpshufhw $1, (%rax), %xmm2
+
+vpshuflw $1, %xmm0, %xmm2
+vpshuflw $1, (%rax), %xmm2
+
+vpsignb %xmm0, %xmm1, %xmm2
+vpsignb (%rax), %xmm1, %xmm2
+
+vpsignd %xmm0, %xmm1, %xmm2
+vpsignd (%rax), %xmm1, %xmm2
+
+vpsignw %xmm0, %xmm1, %xmm2
+vpsignw (%rax), %xmm1, %xmm2
+
+vpslld $1, %xmm0, %xmm2
+vpslld %xmm0, %xmm1, %xmm2
+vpslld (%rax), %xmm1, %xmm2
+
+vpslldq $1, %xmm1, %xmm2
+
+vpsllq $1, %xmm0, %xmm2
+vpsllq %xmm0, %xmm1, %xmm2
+vpsllq (%rax), %xmm1, %xmm2
+
+vpsllw $1, %xmm0, %xmm2
+vpsllw %xmm0, %xmm1, %xmm2
+vpsllw (%rax), %xmm1, %xmm2
+
+vpsrad $1, %xmm0, %xmm2
+vpsrad %xmm0, %xmm1, %xmm2
+vpsrad (%rax), %xmm1, %xmm2
+
+vpsraw $1, %xmm0, %xmm2
+vpsraw %xmm0, %xmm1, %xmm2
+vpsraw (%rax), %xmm1, %xmm2
+
+vpsrld $1, %xmm0, %xmm2
+vpsrld %xmm0, %xmm1, %xmm2
+vpsrld (%rax), %xmm1, %xmm2
+
+vpsrldq $1, %xmm1, %xmm2
+
+vpsrlq $1, %xmm0, %xmm2
+vpsrlq %xmm0, %xmm1, %xmm2
+vpsrlq (%rax), %xmm1, %xmm2
+
+vpsrlw $1, %xmm0, %xmm2
+vpsrlw %xmm0, %xmm1, %xmm2
+vpsrlw (%rax), %xmm1, %xmm2
+
+vpsubb %xmm0, %xmm1, %xmm2
+vpsubb (%rax), %xmm1, %xmm2
+
+vpsubd %xmm0, %xmm1, %xmm2
+vpsubd (%rax), %xmm1, %xmm2
+
+vpsubq %xmm0, %xmm1, %xmm2
+vpsubq (%rax), %xmm1, %xmm2
+
+vpsubsb %xmm0, %xmm1, %xmm2
+vpsubsb (%rax), %xmm1, %xmm2
+
+vpsubsw %xmm0, %xmm1, %xmm2
+vpsubsw (%rax), %xmm1, %xmm2
+
+vpsubusb %xmm0, %xmm1, %xmm2
+vpsubusb (%rax), %xmm1, %xmm2
+
+vpsubusw %xmm0, %xmm1, %xmm2
+vpsubusw (%rax), %xmm1, %xmm2
+
+vpsubw %xmm0, %xmm1, %xmm2
+vpsubw (%rax), %xmm1, %xmm2
+
+vptest %xmm0, %xmm1
+vptest (%rax), %xmm1
+
+vptest %ymm0, %ymm1
+vptest (%rax), %ymm1
+
+vpunpckhbw %xmm0, %xmm1, %xmm2
+vpunpckhbw (%rax), %xmm1, %xmm2
+
+vpunpckhdq %xmm0, %xmm1, %xmm2
+vpunpckhdq (%rax), %xmm1, %xmm2
+
+vpunpckhqdq %xmm0, %xmm1, %xmm2
+vpunpckhqdq (%rax), %xmm1, %xmm2
+
+vpunpckhwd %xmm0, %xmm1, %xmm2
+vpunpckhwd (%rax), %xmm1, %xmm2
+
+vpunpcklbw %xmm0, %xmm1, %xmm2
+vpunpcklbw (%rax), %xmm1, %xmm2
+
+vpunpckldq %xmm0, %xmm1, %xmm2
+vpunpckldq (%rax), %xmm1, %xmm2
+
+vpunpcklqdq %xmm0, %xmm1, %xmm2
+vpunpcklqdq (%rax), %xmm1, %xmm2
+
+vpunpcklwd %xmm0, %xmm1, %xmm2
+vpunpcklwd (%rax), %xmm1, %xmm2
+
+vpxor %xmm0, %xmm1, %xmm2
+vpxor (%rax), %xmm1, %xmm2
+
+vrcpps %xmm0, %xmm2
+vrcpps (%rax), %xmm2
+
+vrcpps %ymm0, %ymm2
+vrcpps (%rax), %ymm2
+
+vrcpss %xmm0, %xmm1, %xmm2
+vrcpss (%rax), %xmm1, %xmm2
+
+vroundpd $1, %xmm0, %xmm2
+vroundpd $1, (%rax), %xmm2
+
+vroundpd $1, %ymm0, %ymm2
+vroundpd $1, (%rax), %ymm2
+
+vroundps $1, %xmm0, %xmm2
+vroundps $1, (%rax), %xmm2
+
+vroundps $1, %ymm0, %ymm2
+vroundps $1, (%rax), %ymm2
+
+vroundsd $1, %xmm0, %xmm1, %xmm2
+vroundsd $1, (%rax), %xmm1, %xmm2
+
+vroundss $1, %xmm0, %xmm1, %xmm2
+vroundss $1, (%rax), %xmm1, %xmm2
+
+vrsqrtps %xmm0, %xmm2
+vrsqrtps (%rax), %xmm2
+
+vrsqrtps %ymm0, %ymm2
+vrsqrtps (%rax), %ymm2
+
+vrsqrtss %xmm0, %xmm1, %xmm2
+vrsqrtss (%rax), %xmm1, %xmm2
+
+vshufpd $1, %xmm0, %xmm1, %xmm2
+vshufpd $1, (%rax), %xmm1, %xmm2
+
+vshufpd $1, %ymm0, %ymm1, %ymm2
+vshufpd $1, (%rax), %ymm1, %ymm2
+
+vshufps $1, %xmm0, %xmm1, %xmm2
+vshufps $1, (%rax), %xmm1, %xmm2
+
+vshufps $1, %ymm0, %ymm1, %ymm2
+vshufps $1, (%rax), %ymm1, %ymm2
+
+vsqrtpd %xmm0, %xmm2
+vsqrtpd (%rax), %xmm2
+
+vsqrtpd %ymm0, %ymm2
+vsqrtpd (%rax), %ymm2
+
+vsqrtps %xmm0, %xmm2
+vsqrtps (%rax), %xmm2
+
+vsqrtps %ymm0, %ymm2
+vsqrtps (%rax), %ymm2
+
+vsqrtsd %xmm0, %xmm1, %xmm2
+vsqrtsd (%rax), %xmm1, %xmm2
+
+vsqrtss %xmm0, %xmm1, %xmm2
+vsqrtss (%rax), %xmm1, %xmm2
+
+vstmxcsr (%rax)
+
+vsubpd %xmm0, %xmm1, %xmm2
+vsubpd (%rax), %xmm1, %xmm2
+
+vsubpd %ymm0, %ymm1, %ymm2
+vsubpd (%rax), %ymm1, %ymm2
+
+vsubps %xmm0, %xmm1, %xmm2
+vsubps (%rax), %xmm1, %xmm2
+
+vsubps %ymm0, %ymm1, %ymm2
+vsubps (%rax), %ymm1, %ymm2
+
+vsubsd %xmm0, %xmm1, %xmm2
+vsubsd (%rax), %xmm1, %xmm2
+
+vsubss %xmm0, %xmm1, %xmm2
+vsubss (%rax), %xmm1, %xmm2
+
+vtestpd %xmm0, %xmm1
+vtestpd (%rax), %xmm1
+
+vtestpd %ymm0, %ymm1
+vtestpd (%rax), %ymm1
+
+vtestps %xmm0, %xmm1
+vtestps (%rax), %xmm1
+
+vtestps %ymm0, %ymm1
+vtestps (%rax), %ymm1
+
+vucomisd %xmm0, %xmm1
+vucomisd (%rax), %xmm1
+
+vucomiss %xmm0, %xmm1
+vucomiss (%rax), %xmm1
+
+vunpckhpd %xmm0, %xmm1, %xmm2
+vunpckhpd (%rax), %xmm1, %xmm2
+
+vunpckhpd %ymm0, %ymm1, %ymm2
+vunpckhpd (%rax), %ymm1, %ymm2
+
+vunpckhps %xmm0, %xmm1, %xmm2
+vunpckhps (%rax), %xmm1, %xmm2
+
+vunpckhps %ymm0, %ymm1, %ymm2
+vunpckhps (%rax), %ymm1, %ymm2
+
+vunpcklpd %xmm0, %xmm1, %xmm2
+vunpcklpd (%rax), %xmm1, %xmm2
+
+vunpcklpd %ymm0, %ymm1, %ymm2
+vunpcklpd (%rax), %ymm1, %ymm2
+
+vunpcklps %xmm0, %xmm1, %xmm2
+vunpcklps (%rax), %xmm1, %xmm2
+
+vunpcklps %ymm0, %ymm1, %ymm2
+vunpcklps (%rax), %ymm1, %ymm2
+
+vxorpd %xmm0, %xmm1, %xmm2
+vxorpd (%rax), %xmm1, %xmm2
+
+vxorpd %ymm0, %ymm1, %ymm2
+vxorpd (%rax), %ymm1, %ymm2
+
+vxorps %xmm0, %xmm1, %xmm2
+vxorps (%rax), %xmm1, %xmm2
+
+vxorps %ymm0, %ymm1, %ymm2
+vxorps (%rax), %ymm1, %ymm2
+
+vzeroall
+vzeroupper
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vaddsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesdec %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesdeclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesdeclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesenc %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesenclast %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesenclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaesimc %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaesimc (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vaeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vblendpd $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vblendpd $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vblendpd $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vblendps $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vblendps $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vblendps $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 6.00 - - - - - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 6.00 1.00 - - - - - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vblendvps %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 6.00 - - - - - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 6.00 1.00 - - - - - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - vbroadcastsd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vbroadcastss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vbroadcastss (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcmppd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcmppd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vcmppd $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vcmppd $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcmpps $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcmpps $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vcmpps $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vcmpps $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcmpsd $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcmpsd $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcmpss $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcomisd %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vcomiss %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vcomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtdq2pd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vcvtdq2pd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vcvtdq2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtdq2ps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vcvtdq2ps %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vcvtdq2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtpd2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - 2.00 - - - vcvtpd2dq %ymm0, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - 2.00 - - - vcvtpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtpd2ps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtpd2psx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - 2.00 - - - vcvtpd2ps %ymm0, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - 2.00 - - - vcvtpd2psy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vcvtps2dq %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vcvtps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtps2pd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtps2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtps2pd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtps2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsd2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsd2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsd2ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsi2sdl %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsi2sdq %rcx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsi2sdl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsi2sdq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsi2ssl %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtsi2ssq %rcx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsi2ssl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtsi2ssq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtss2sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtss2sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtss2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtss2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvttpd2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvttpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - 4.00 - - - - 2.00 - - - vcvttpd2dq %ymm0, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - 2.00 - - - vcvttpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvttps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vcvttps2dq %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vcvttps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvttsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvttsd2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvttsd2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvttsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 38.00 - 1.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 38.00 - 1.00 1.00 - - - - - - vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 38.00 - 1.00 - - - - - - - vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 38.00 - 1.00 1.00 - - - - - - vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 6.00 6.00 - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 6.00 6.00 1.00 - - - - - - vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vextractf128 $1, %ymm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vextractps $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vinsertf128 $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vinsertf128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vinsertps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vinsertps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vlddqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vlddqu (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vldmxcsr (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmaskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmaskmovpd (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - - - 4.00 - - - 1.00 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - - - 4.00 - - - 1.00 - - - - vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 4.00 - - 1.00 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - - - 4.00 - - - 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovapd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovapd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovapd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovapd %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovapd %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovapd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovaps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovaps %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps (%rax), %ymm2
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - - vmovd %eax, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovd (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - - vmovd %xmm0, %ecx
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovddup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovddup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmovddup %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmovddup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovdqa %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovdqa %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovdqa (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovdqu %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovdqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovdqu %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovdqu %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovdqu (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovhlps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovlhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskpd %ymm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskps %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskps %ymm0, %ecx
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - vmovntdq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 2.00 - - - vmovntdq %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovntdqa (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - vmovntpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 2.00 - - - vmovntpd %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - vmovntps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 2.00 - - - vmovntps %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovq %xmm0, %xmm2
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - - vmovq %rax, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovq (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - - vmovq %xmm0, %rcx
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovsd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovshdup (%rax), %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmovshdup (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmovsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vmovsldup %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmovsldup (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovss %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovupd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovupd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovupd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovupd %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovupd %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovupd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmovups %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovups %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovups (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovups %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovups %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovups (%rax), %ymm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vmpsadbw $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vmpsadbw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vmulss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpabsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpabsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpabsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpblendw $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpermilpd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpermilpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vpermilpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpermilpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vpermilpd $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vpermilpd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - 6.00 - - - - - - - - vpermilpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 6.00 1.00 - - - - - - vpermilpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpermilps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpermilps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vpermilps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - vpermilps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vpermilps $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vpermilps $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 6.00 - - - - - - - vpermilps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 6.00 - 1.00 - - - - - - vpermilps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphminposuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vphminposuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaddubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmaddubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaddwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmaddwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovmskb %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmuldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmulhrsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmulhuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmulhuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmulhw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmulld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmullw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpmuludq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpmuludq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vptest %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vptest (%rax), %xmm1
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - vptest %ymm0, %ymm1
+# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - vptest (%rax), %ymm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vrcpps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vrcpps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vrcpps %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vrcpps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vrcpss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vroundpd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vroundpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vroundpd $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vroundpd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vroundps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vroundps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - vroundps $1, %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - 2.00 - - - vroundps $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vroundsd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vroundsd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vroundss $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vroundss $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vrsqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vrsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vrsqrtps %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vrsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vrsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vrsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - vsqrtpd (%rax), %xmm2
+# CHECK-NEXT: - - - - 54.00 - 1.00 - - - - - - - vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT: - - - - 54.00 - 1.00 1.00 - - - - - - vsqrtpd (%rax), %ymm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - vsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - 42.00 - 1.00 - - - - - - - vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: - - - - 42.00 - 1.00 1.00 - - - - - - vsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vstmxcsr (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vtestpd %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vtestps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vtestps (%rax), %xmm1
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - vtestps (%rax), %ymm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vucomisd %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vucomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vucomiss %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpckhpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpckhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpckhpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpckhpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpckhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpckhps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpcklpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpcklpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpcklpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpcklps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vunpcklps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vunpcklps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vunpcklps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - - - vzeroall
+# CHECK-NEXT: - - - - - - - - - - - - - - vzeroupper
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-clmul.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-clmul.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-clmul.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-clmul.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,25 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+pclmulqdq $11, %xmm0, %xmm2
+pclmulqdq $11, (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pclmulqdq $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pclmulqdq $11, (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-f16c.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-f16c.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-f16c.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-f16c.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,40 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+vcvtph2ps %xmm0, %xmm2
+vcvtph2ps (%rax), %xmm2
+
+vcvtph2ps %xmm0, %ymm2
+vcvtph2ps (%rax), %ymm2
+
+vcvtps2ph $0, %xmm0, %xmm2
+vcvtps2ph $0, %xmm0, (%rax)
+
+vcvtps2ph $0, %ymm0, %xmm2
+vcvtps2ph $0, %ymm0, (%rax)
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtph2ps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - vcvtph2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vcvtph2ps %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vcvtph2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - vcvtps2ph $0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - - - - vcvtps2ph $0, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - vcvtps2ph $0, %ymm0, %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 - - 1.00 - - - - vcvtps2ph $0, %ymm0, (%rax)
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,245 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+addps %xmm0, %xmm2
+addps (%rax), %xmm2
+
+addss %xmm0, %xmm2
+addss (%rax), %xmm2
+
+andnps %xmm0, %xmm2
+andnps (%rax), %xmm2
+
+andps %xmm0, %xmm2
+andps (%rax), %xmm2
+
+cmpps $0, %xmm0, %xmm2
+cmpps $0, (%rax), %xmm2
+
+cmpss $0, %xmm0, %xmm2
+cmpss $0, (%rax), %xmm2
+
+comiss %xmm0, %xmm1
+comiss (%rax), %xmm1
+
+cvtsi2ss %ecx, %xmm2
+cvtsi2ss %rcx, %xmm2
+cvtsi2ss (%rax), %xmm2
+cvtsi2ss (%rax), %xmm2
+
+cvtss2si %xmm0, %ecx
+cvtss2si %xmm0, %rcx
+cvtss2si (%rax), %ecx
+cvtss2si (%rax), %rcx
+
+cvttss2si %xmm0, %ecx
+cvttss2si %xmm0, %rcx
+cvttss2si (%rax), %ecx
+cvttss2si (%rax), %rcx
+
+divps %xmm0, %xmm2
+divps (%rax), %xmm2
+
+divss %xmm0, %xmm2
+divss (%rax), %xmm2
+
+ldmxcsr (%rax)
+
+maxps %xmm0, %xmm2
+maxps (%rax), %xmm2
+
+maxss %xmm0, %xmm2
+maxss (%rax), %xmm2
+
+minps %xmm0, %xmm2
+minps (%rax), %xmm2
+
+minss %xmm0, %xmm2
+minss (%rax), %xmm2
+
+movaps %xmm0, %xmm2
+movaps %xmm0, (%rax)
+movaps (%rax), %xmm2
+
+movhlps %xmm0, %xmm2
+movlhps %xmm0, %xmm2
+
+movhps %xmm0, (%rax)
+movhps (%rax), %xmm2
+
+movlps %xmm0, (%rax)
+movlps (%rax), %xmm2
+
+movmskps %xmm0, %rcx
+
+movntps %xmm0, (%rax)
+
+movss %xmm0, %xmm2
+movss %xmm0, (%rax)
+movss (%rax), %xmm2
+
+movups %xmm0, %xmm2
+movups %xmm0, (%rax)
+movups (%rax), %xmm2
+
+mulps %xmm0, %xmm2
+mulps (%rax), %xmm2
+
+mulss %xmm0, %xmm2
+mulss (%rax), %xmm2
+
+orps %xmm0, %xmm2
+orps (%rax), %xmm2
+
+pinsrw $1, %rax, %xmm1
+pinsrw $1, (%rax), %xmm1
+
+rcpps %xmm0, %xmm2
+rcpps (%rax), %xmm2
+
+rcpss %xmm0, %xmm2
+rcpss (%rax), %xmm2
+
+rsqrtps %xmm0, %xmm2
+rsqrtps (%rax), %xmm2
+
+rsqrtss %xmm0, %xmm2
+rsqrtss (%rax), %xmm2
+
+shufps $1, %xmm0, %xmm2
+shufps $1, (%rax), %xmm2
+
+sqrtps %xmm0, %xmm2
+sqrtps (%rax), %xmm2
+
+sqrtss %xmm0, %xmm2
+sqrtss (%rax), %xmm2
+
+stmxcsr (%rax)
+
+subps %xmm0, %xmm2
+subps (%rax), %xmm2
+
+subss %xmm0, %xmm2
+subss (%rax), %xmm2
+
+ucomiss %xmm0, %xmm1
+ucomiss (%rax), %xmm1
+
+unpckhps %xmm0, %xmm2
+unpckhps (%rax), %xmm2
+
+unpcklps %xmm0, %xmm2
+unpcklps (%rax), %xmm2
+
+xorps %xmm0, %xmm2
+xorps (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - andnps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - andnps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - andps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - andps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - cmpps $0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - cmpps $0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - cmpss $0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - cmpss $0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - comiss %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - comiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsi2ssl %ecx, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsi2ssq %rcx, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsi2ssl (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsi2ssl (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtss2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtss2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttss2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttss2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttss2si (%rax), %rcx
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - divps %xmm0, %xmm2
+# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - divps (%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: - - - - - 1.00 - - - - - - - - maxps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - maxps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - maxss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - maxss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - minps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - minps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - minss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - minss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - movaps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movaps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movaps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - movhlps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movlhps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - movhps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - movlps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movmskps %xmm0, %ecx
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - movss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movss %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movups %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movups %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movups (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - mulps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - mulps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - mulss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - mulss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - orps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - orps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pinsrw $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - pinsrw $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - rcpps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - rcpps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - rcpss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - rcpss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - rsqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - rsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - rsqrtss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - rsqrtss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - shufps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - shufps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - sqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - sqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - sqrtss %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - sqrtss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - stmxcsr (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - subps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - subps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - subss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - subss (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - ucomiss %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - ucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - unpckhps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - unpckhps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - unpcklps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - unpcklps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - xorps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - xorps (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,649 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+addpd %xmm0, %xmm2
+addpd (%rax), %xmm2
+
+addsd %xmm0, %xmm2
+addsd (%rax), %xmm2
+
+addsubpd %xmm0, %xmm2
+addsubpd (%rax), %xmm2
+
+andnpd %xmm0, %xmm2
+andnpd (%rax), %xmm2
+
+andpd %xmm0, %xmm2
+andpd (%rax), %xmm2
+
+cmppd $0, %xmm0, %xmm2
+cmppd $0, (%rax), %xmm2
+
+cmpsd $0, %xmm0, %xmm2
+cmpsd $0, (%rax), %xmm2
+
+comisd %xmm0, %xmm1
+comisd (%rax), %xmm1
+
+cvtdq2pd %xmm0, %xmm2
+cvtdq2pd (%rax), %xmm2
+
+cvtdq2ps %xmm0, %xmm2
+cvtdq2ps (%rax), %xmm2
+
+cvtpd2dq %xmm0, %xmm2
+cvtpd2dq (%rax), %xmm2
+
+cvtpd2ps %xmm0, %xmm2
+cvtpd2ps (%rax), %xmm2
+
+cvtps2dq %xmm0, %xmm2
+cvtps2dq (%rax), %xmm2
+
+cvtps2pd %xmm0, %xmm2
+cvtps2pd (%rax), %xmm2
+
+cvtsd2si %xmm0, %ecx
+cvtsd2si %xmm0, %rcx
+cvtsd2si (%rax), %ecx
+cvtsd2si (%rax), %rcx
+
+cvtsd2ss %xmm0, %xmm2
+cvtsd2ss (%rax), %xmm2
+
+cvtsi2sd %ecx, %xmm2
+cvtsi2sd %rcx, %xmm2
+cvtsi2sd (%rax), %xmm2
+cvtsi2sd (%rax), %xmm2
+
+cvtss2sd %xmm0, %xmm2
+cvtss2sd (%rax), %xmm2
+
+cvttpd2dq %xmm0, %xmm2
+cvttpd2dq (%rax), %xmm2
+
+cvttps2dq %xmm0, %xmm2
+cvttps2dq (%rax), %xmm2
+
+cvttsd2si %xmm0, %ecx
+cvttsd2si %xmm0, %rcx
+cvttsd2si (%rax), %ecx
+cvttsd2si (%rax), %rcx
+
+divpd %xmm0, %xmm2
+divpd (%rax), %xmm2
+
+divsd %xmm0, %xmm2
+divsd (%rax), %xmm2
+
+maskmovdqu %xmm0, %xmm1
+
+maxpd %xmm0, %xmm2
+maxpd (%rax), %xmm2
+
+maxsd %xmm0, %xmm2
+maxsd (%rax), %xmm2
+
+minpd %xmm0, %xmm2
+minpd (%rax), %xmm2
+
+minsd %xmm0, %xmm2
+minsd (%rax), %xmm2
+
+movapd %xmm0, %xmm2
+movapd %xmm0, (%rax)
+movapd (%rax), %xmm2
+
+movd %eax, %xmm2
+movd (%rax), %xmm2
+
+movd %xmm0, %ecx
+movd %xmm0, (%rax)
+
+movdqa %xmm0, %xmm2
+movdqa %xmm0, (%rax)
+movdqa (%rax), %xmm2
+
+movdqu %xmm0, %xmm2
+movdqu %xmm0, (%rax)
+movdqu (%rax), %xmm2
+
+movhpd %xmm0, (%rax)
+movhpd (%rax), %xmm2
+
+movlpd %xmm0, (%rax)
+movlpd (%rax), %xmm2
+
+movmskpd %xmm0, %rcx
+
+movntdq %xmm0, (%rax)
+movntpd %xmm0, (%rax)
+
+movq %xmm0, %xmm2
+
+movq %rax, %xmm2
+movq (%rax), %xmm2
+
+movq %xmm0, %rcx
+movq %xmm0, (%rax)
+
+movsd %xmm0, %xmm2
+movsd %xmm0, (%rax)
+movsd (%rax), %xmm2
+
+movupd %xmm0, %xmm2
+movupd %xmm0, (%rax)
+movupd (%rax), %xmm2
+
+mulpd %xmm0, %xmm2
+mulpd (%rax), %xmm2
+
+mulsd %xmm0, %xmm2
+mulsd (%rax), %xmm2
+
+orpd %xmm0, %xmm2
+orpd (%rax), %xmm2
+
+pabsb %xmm0, %xmm2
+pabsb (%rax), %xmm2
+
+pabsd %xmm0, %xmm2
+pabsd (%rax), %xmm2
+
+pabsw %xmm0, %xmm2
+pabsw (%rax), %xmm2
+
+packssdw %xmm0, %xmm2
+packssdw (%rax), %xmm2
+
+packsswb %xmm0, %xmm2
+packsswb (%rax), %xmm2
+
+packuswb %xmm0, %xmm2
+packuswb (%rax), %xmm2
+
+paddb %xmm0, %xmm2
+paddb (%rax), %xmm2
+
+paddd %xmm0, %xmm2
+paddd (%rax), %xmm2
+
+paddq %xmm0, %xmm2
+paddq (%rax), %xmm2
+
+paddsb %xmm0, %xmm2
+paddsb (%rax), %xmm2
+
+paddsw %xmm0, %xmm2
+paddsw (%rax), %xmm2
+
+paddusb %xmm0, %xmm2
+paddusb (%rax), %xmm2
+
+paddusw %xmm0, %xmm2
+paddusw (%rax), %xmm2
+
+paddw %xmm0, %xmm2
+paddw (%rax), %xmm2
+
+pand %xmm0, %xmm2
+pand (%rax), %xmm2
+
+pandn %xmm0, %xmm2
+pandn (%rax), %xmm2
+
+pavgb %xmm0, %xmm2
+pavgb (%rax), %xmm2
+
+pavgw %xmm0, %xmm2
+pavgw (%rax), %xmm2
+
+pcmpeqb %xmm0, %xmm2
+pcmpeqb (%rax), %xmm2
+
+pcmpeqd %xmm0, %xmm2
+pcmpeqd (%rax), %xmm2
+
+pcmpeqw %xmm0, %xmm2
+pcmpeqw (%rax), %xmm2
+
+pcmpgtb %xmm0, %xmm2
+pcmpgtb (%rax), %xmm2
+
+pcmpgtd %xmm0, %xmm2
+pcmpgtd (%rax), %xmm2
+
+pcmpgtw %xmm0, %xmm2
+pcmpgtw (%rax), %xmm2
+
+pextrw $1, %xmm0, %rcx
+
+pmaddwd %xmm0, %xmm2
+pmaddwd (%rax), %xmm2
+
+pmaxsw %xmm0, %xmm2
+pmaxsw (%rax), %xmm2
+
+pmaxub %xmm0, %xmm2
+pmaxub (%rax), %xmm2
+
+pminsw %xmm0, %xmm2
+pminsw (%rax), %xmm2
+
+pminub %xmm0, %xmm2
+pminub (%rax), %xmm2
+
+pmovmskb %xmm0, %rcx
+
+pmulhuw %xmm0, %xmm2
+pmulhuw (%rax), %xmm2
+
+pmulhw %xmm0, %xmm2
+pmulhw (%rax), %xmm2
+
+pmullw %xmm0, %xmm2
+pmullw (%rax), %xmm2
+
+pmuludq %xmm0, %xmm2
+pmuludq (%rax), %xmm2
+
+por %xmm0, %xmm2
+por (%rax), %xmm2
+
+psadbw %xmm0, %xmm2
+psadbw (%rax), %xmm2
+
+pshufd $1, %xmm0, %xmm2
+pshufd $1, (%rax), %xmm2
+
+pshufhw $1, %xmm0, %xmm2
+pshufhw $1, (%rax), %xmm2
+
+pshuflw $1, %xmm0, %xmm2
+pshuflw $1, (%rax), %xmm2
+
+pslld $1, %xmm2
+pslld %xmm0, %xmm2
+pslld (%rax), %xmm2
+
+pslldq $1, %xmm2
+
+psllq $1, %xmm2
+psllq %xmm0, %xmm2
+psllq (%rax), %xmm2
+
+psllw $1, %xmm2
+psllw %xmm0, %xmm2
+psllw (%rax), %xmm2
+
+psrad $1, %xmm2
+psrad %xmm0, %xmm2
+psrad (%rax), %xmm2
+
+psraw $1, %xmm2
+psraw %xmm0, %xmm2
+psraw (%rax), %xmm2
+
+psrld $1, %xmm2
+psrld %xmm0, %xmm2
+psrld (%rax), %xmm2
+
+psrldq $1, %xmm2
+
+psrlq $1, %xmm2
+psrlq %xmm0, %xmm2
+psrlq (%rax), %xmm2
+
+psrlw $1, %xmm2
+psrlw %xmm0, %xmm2
+psrlw (%rax), %xmm2
+
+psubb %xmm0, %xmm2
+psubb (%rax), %xmm2
+
+psubd %xmm0, %xmm2
+psubd (%rax), %xmm2
+
+psubq %xmm0, %xmm2
+psubq (%rax), %xmm2
+
+psubsb %xmm0, %xmm2
+psubsb (%rax), %xmm2
+
+psubsw %xmm0, %xmm2
+psubsw (%rax), %xmm2
+
+psubusb %xmm0, %xmm2
+psubusb (%rax), %xmm2
+
+psubusw %xmm0, %xmm2
+psubusw (%rax), %xmm2
+
+psubw %xmm0, %xmm2
+psubw (%rax), %xmm2
+
+punpckhbw %xmm0, %xmm2
+punpckhbw (%rax), %xmm2
+
+punpckhdq %xmm0, %xmm2
+punpckhdq (%rax), %xmm2
+
+punpckhqdq %xmm0, %xmm2
+punpckhqdq (%rax), %xmm2
+
+punpckhwd %xmm0, %xmm2
+punpckhwd (%rax), %xmm2
+
+punpcklbw %xmm0, %xmm2
+punpcklbw (%rax), %xmm2
+
+punpckldq %xmm0, %xmm2
+punpckldq (%rax), %xmm2
+
+punpcklqdq %xmm0, %xmm2
+punpcklqdq (%rax), %xmm2
+
+punpcklwd %xmm0, %xmm2
+punpcklwd (%rax), %xmm2
+
+pxor %xmm0, %xmm2
+pxor (%rax), %xmm2
+
+shufpd $1, %xmm0, %xmm2
+shufpd $1, (%rax), %xmm2
+
+sqrtpd %xmm0, %xmm2
+sqrtpd (%rax), %xmm2
+
+sqrtsd %xmm0, %xmm2
+sqrtsd (%rax), %xmm2
+
+subpd %xmm0, %xmm2
+subpd (%rax), %xmm2
+
+subsd %xmm0, %xmm2
+subsd (%rax), %xmm2
+
+ucomisd %xmm0, %xmm1
+ucomisd (%rax), %xmm1
+
+unpckhpd %xmm0, %xmm2
+unpckhpd (%rax), %xmm2
+
+unpcklpd %xmm0, %xmm2
+unpcklpd (%rax), %xmm2
+
+xorpd %xmm0, %xmm2
+xorpd (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addsubpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addsubpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - andnpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - andnpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - andpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - andpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - cmppd $0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - cmppd $0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - cmpsd $0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - cmpsd $0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - comisd %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - comisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtdq2pd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtdq2ps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtpd2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtpd2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtpd2ps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtpd2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtps2pd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtps2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsd2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsd2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsd2ss %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsd2ss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsi2sdl %ecx, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtsi2sdq %rcx, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsi2sdl (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtsi2sdl (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvtss2sd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvtss2sd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttpd2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttpd2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - cvttsd2si %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttsd2si (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - cvttsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - divpd %xmm0, %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 - - - - maskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - maxpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - maxpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - maxsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - maxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - minpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - minpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - minsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - minsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - movapd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movapd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movapd (%rax), %xmm2
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - - movd %eax, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movd (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - - movd %xmm0, %ecx
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - movdqa %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movdqa %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movdqu %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movdqu %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movdqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - movhpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - movlpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movmskpd %xmm0, %ecx
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntdq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movq %xmm0, %xmm2
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - - movq %rax, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movq (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - - movq %xmm0, %rcx
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movsd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movupd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movupd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movupd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - mulpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - mulpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - mulsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - mulsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - orpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - orpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pabsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pabsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pabsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - packssdw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - packssdw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - packsswb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - packsswb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - packuswb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - packuswb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddusb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddusb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddusw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddusw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - paddw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - paddw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pand %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pand (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pandn %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pandn (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pavgb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pavgb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pavgw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pavgw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pcmpeqb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pcmpeqb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pcmpeqd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pcmpeqd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pcmpeqw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pcmpeqw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pcmpgtb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pcmpgtb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pcmpgtd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pcmpgtd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pcmpgtw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pcmpgtw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pextrw $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmaddwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmaddwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pmaxsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pmaxsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmaxub %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pmaxub (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pminsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pminsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pminub %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pminub (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pmovmskb %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmulhuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmulhuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmulhw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmulhw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmullw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmullw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmuludq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmuludq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - por %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - por (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psadbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psadbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pslld $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pslld %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pslld (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pslldq $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psllq $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psllq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psllq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psllw $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psllw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psllw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrad $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrad %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psrad (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psraw $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psraw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psraw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrld $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrld %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psrld (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrldq $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psrlq $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrlq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psrlq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psrlw $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psrlw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psrlw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubusb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubusb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubusw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubusw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - psubw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - psubw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - punpckhbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - punpckhbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - punpckhdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - punpckhdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - punpckhqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - punpckhqdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - punpckhwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - punpckhwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - punpcklbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - punpcklbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - punpckldq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - punpckldq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - punpcklqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - punpcklqdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - punpcklwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - punpcklwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pxor %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pxor (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - shufpd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - shufpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - sqrtpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - sqrtpd (%rax), %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - sqrtsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - 21.00 - 1.00 1.00 - - - - - - sqrtsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - subpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - subpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - subsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - subsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - ucomisd %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - ucomisd (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - unpckhpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - unpckhpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - unpcklpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - unpcklpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - xorpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - xorpd (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,69 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+addsubpd %xmm0, %xmm2
+addsubpd (%rax), %xmm2
+
+addsubps %xmm0, %xmm2
+addsubps (%rax), %xmm2
+
+haddpd %xmm0, %xmm2
+haddpd (%rax), %xmm2
+
+haddps %xmm0, %xmm2
+haddps (%rax), %xmm2
+
+hsubpd %xmm0, %xmm2
+hsubpd (%rax), %xmm2
+
+hsubps %xmm0, %xmm2
+hsubps (%rax), %xmm2
+
+lddqu (%rax), %xmm2
+
+movddup %xmm0, %xmm2
+movddup (%rax), %xmm2
+
+movshdup %xmm0, %xmm2
+movshdup (%rax), %xmm2
+
+movsldup %xmm0, %xmm2
+movsldup (%rax), %xmm2
+
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addsubpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addsubpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - addsubps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - addsubps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - haddpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - haddpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - haddps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - haddps (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - hsubpd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - hsubpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - hsubps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - hsubps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - lddqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - movddup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - movddup (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - movshdup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - movshdup (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.04 0.96 - - - - - - - movsldup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - movsldup (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,261 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+blendpd $11, %xmm0, %xmm2
+blendpd $11, (%rax), %xmm2
+
+blendps $11, %xmm0, %xmm2
+blendps $11, (%rax), %xmm2
+
+blendvpd %xmm0, %xmm2
+blendvpd (%rax), %xmm2
+
+blendvps %xmm0, %xmm2
+blendvps (%rax), %xmm2
+
+dppd $22, %xmm0, %xmm2
+dppd $22, (%rax), %xmm2
+
+dpps $22, %xmm0, %xmm2
+dpps $22, (%rax), %xmm2
+
+extractps $1, %xmm0, %rcx
+extractps $1, %xmm0, (%rax)
+
+insertps $1, %xmm0, %xmm2
+insertps $1, (%rax), %xmm2
+
+movntdqa (%rax), %xmm2
+
+mpsadbw $1, %xmm0, %xmm2
+mpsadbw $1, (%rax), %xmm2
+
+packusdw %xmm0, %xmm2
+packusdw (%rax), %xmm2
+
+pblendvb %xmm0, %xmm2
+pblendvb (%rax), %xmm2
+
+pblendw $11, %xmm0, %xmm2
+pblendw $11, (%rax), %xmm2
+
+pcmpeqq %xmm0, %xmm2
+pcmpeqq (%rax), %xmm2
+
+pextrb $1, %xmm0, %ecx
+pextrb $1, %xmm0, (%rax)
+
+pextrd $1, %xmm0, %ecx
+pextrd $1, %xmm0, (%rax)
+
+pextrq $1, %xmm0, %rcx
+pextrq $1, %xmm0, (%rax)
+
+pextrw $1, %xmm0, (%rax)
+
+phminposuw %xmm0, %xmm2
+phminposuw (%rax), %xmm2
+
+pinsrb $1, %eax, %xmm1
+pinsrb $1, (%rax), %xmm1
+
+pinsrd $1, %eax, %xmm1
+pinsrd $1, (%rax), %xmm1
+
+pinsrq $1, %rax, %xmm1
+pinsrq $1, (%rax), %xmm1
+
+pmaxsb %xmm0, %xmm2
+pmaxsb (%rax), %xmm2
+
+pmaxsd %xmm0, %xmm2
+pmaxsd (%rax), %xmm2
+
+pmaxud %xmm0, %xmm2
+pmaxud (%rax), %xmm2
+
+pmaxuw %xmm0, %xmm2
+pmaxuw (%rax), %xmm2
+
+pminsb %xmm0, %xmm2
+pminsb (%rax), %xmm2
+
+pminsd %xmm0, %xmm2
+pminsd (%rax), %xmm2
+
+pminud %xmm0, %xmm2
+pminud (%rax), %xmm2
+
+pminuw %xmm0, %xmm2
+pminuw (%rax), %xmm2
+
+pmovsxbd %xmm0, %xmm2
+pmovsxbd (%rax), %xmm2
+
+pmovsxbq %xmm0, %xmm2
+pmovsxbq (%rax), %xmm2
+
+pmovsxbw %xmm0, %xmm2
+pmovsxbw (%rax), %xmm2
+
+pmovsxdq %xmm0, %xmm2
+pmovsxdq (%rax), %xmm2
+
+pmovsxwd %xmm0, %xmm2
+pmovsxwd (%rax), %xmm2
+
+pmovsxwq %xmm0, %xmm2
+pmovsxwq (%rax), %xmm2
+
+pmovzxbd %xmm0, %xmm2
+pmovzxbd (%rax), %xmm2
+
+pmovzxbq %xmm0, %xmm2
+pmovzxbq (%rax), %xmm2
+
+pmovzxbw %xmm0, %xmm2
+pmovzxbw (%rax), %xmm2
+
+pmovzxdq %xmm0, %xmm2
+pmovzxdq (%rax), %xmm2
+
+pmovzxwd %xmm0, %xmm2
+pmovzxwd (%rax), %xmm2
+
+pmovzxwq %xmm0, %xmm2
+pmovzxwq (%rax), %xmm2
+
+pmuldq %xmm0, %xmm2
+pmuldq (%rax), %xmm2
+
+pmulld %xmm0, %xmm2
+pmulld (%rax), %xmm2
+
+ptest %xmm0, %xmm1
+ptest (%rax), %xmm1
+
+roundpd $1, %xmm0, %xmm2
+roundpd $1, (%rax), %xmm2
+
+roundps $1, %xmm0, %xmm2
+roundps $1, (%rax), %xmm2
+
+roundsd $1, %xmm0, %xmm2
+roundsd $1, (%rax), %xmm2
+
+roundss $1, %xmm0, %xmm2
+roundss $1, (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - blendpd $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - blendpd $11, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - blendps $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - blendps $11, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - blendvpd %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - - - blendvpd %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - blendvps %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - blendvps %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - dppd $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - dppd $22, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - dpps $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - dpps $22, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - extractps $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - 1.00 - - - - extractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - insertps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - insertps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movntdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - mpsadbw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - mpsadbw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - packusdw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - packusdw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 3.94 0.06 - - - - - - - pblendvb %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.06 3.94 1.00 - - - - - - pblendvb %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pblendw $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pblendw $11, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.49 0.51 - - - - - - - pcmpeqq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pcmpeqq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.49 0.51 - - - - - - - pextrb $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - 1.00 - - - - pextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pextrd $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - 1.00 - - - - pextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pextrq $1, %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - pextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - - - pextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - phminposuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phminposuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pinsrb $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - - - pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - pinsrd $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.49 0.51 1.00 - - - - - - pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pinsrq $1, %rax, %xmm1
+# CHECK-NEXT: - - - - - 0.51 0.49 1.00 - - - - - - pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - pmaxsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmaxsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.49 0.51 - - - - - - - pmaxsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.51 0.49 1.00 - - - - - - pmaxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmaxud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmaxud (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmaxuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmaxuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pminsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pminsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pminsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pminsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pminud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pminud (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pminuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pminuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - - - - pmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - pmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - - - pmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmuldq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmuldq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmulld %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmulld (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - ptest %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - ptest (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - roundpd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - roundpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - roundps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - roundps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - roundsd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - roundsd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - roundss $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - roundss $1, (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,45 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+pcmpestri $1, %xmm0, %xmm2
+pcmpestri $1, (%rax), %xmm2
+
+pcmpestrm $1, %xmm0, %xmm2
+pcmpestrm $1, (%rax), %xmm2
+
+pcmpistri $1, %xmm0, %xmm2
+pcmpistri $1, (%rax), %xmm2
+
+pcmpistrm $1, %xmm0, %xmm2
+pcmpistrm $1, (%rax), %xmm2
+
+pcmpgtq %xmm0, %xmm2
+pcmpgtq (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 5.00 10.00 5.00 - - - - - - pcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 5.00 10.00 6.00 - - - - - - pcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 5.00 10.00 5.00 - - - - - - pcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 5.00 10.00 6.00 - - - - - - pcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - pcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - pcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - pcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - pcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - pcmpgtq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pcmpgtq (%rax), %xmm2
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse4a.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,35 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+extrq %xmm0, %xmm2
+extrq $22, $2, %xmm2
+
+insertq %xmm0, %xmm2
+insertq $22, $22, %xmm0, %xmm2
+
+movntsd %xmm0, (%rax)
+movntss %xmm0, (%rax)
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - 0.49 0.51 - - - - - - - extrq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - extrq $22, $2, %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - insertq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - insertq $22, $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntsd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - movntss %xmm0, (%rax)
Added: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s?rev=327788&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-ssse3.s Sun Mar 18 02:32:38 2018
@@ -0,0 +1,85 @@
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s | FileCheck %s --check-prefixes=CHECK,BTVER2
+
+palignr $1, %xmm0, %xmm2
+palignr $1, (%rax), %xmm2
+
+phaddd %xmm0, %xmm2
+phaddd (%rax), %xmm2
+
+phaddsw %xmm0, %xmm2
+phaddsw (%rax), %xmm2
+
+phaddw %xmm0, %xmm2
+phaddw (%rax), %xmm2
+
+phsubd %xmm0, %xmm2
+phsubd (%rax), %xmm2
+
+phsubsw %xmm0, %xmm2
+phsubsw (%rax), %xmm2
+
+phsubw %xmm0, %xmm2
+phsubw (%rax), %xmm2
+
+pmaddubsw %xmm0, %xmm2
+pmaddubsw (%rax), %xmm2
+
+pmulhrsw %xmm0, %xmm2
+pmulhrsw (%rax), %xmm2
+
+pshufb %xmm0, %xmm2
+pshufb (%rax), %xmm2
+
+psignb %xmm0, %xmm2
+psignb (%rax), %xmm2
+
+psignd %xmm0, %xmm2
+psignd (%rax), %xmm2
+
+psignw %xmm0, %xmm2
+psignw (%rax), %xmm2
+
+# 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 by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - palignr $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - palignr $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phaddd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phaddd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phaddsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phaddsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phaddw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phaddw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phsubd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phsubd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phsubsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phsubsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - phsubw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - phsubw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmaddubsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmaddubsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - - - pmulhrsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - pmulhrsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 4.00 - - - - - - - pshufb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - pshufb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psignb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psignb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psignd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psignd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - psignw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - psignw (%rax), %xmm2
More information about the llvm-commits
mailing list