[llvm] r328304 - [X86][Btver2] Vector move/load/store instructions use a JFPU01 scheduler pipe and JFPX/JVALU function unit as well as the AGUs
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 23 04:27:31 PDT 2018
Author: rksimon
Date: Fri Mar 23 04:27:31 2018
New Revision: 328304
URL: http://llvm.org/viewvc/llvm-project?rev=328304&view=rev
Log:
[X86][Btver2] Vector move/load/store instructions use a JFPU01 scheduler pipe and JFPX/JVALU function unit as well as the AGUs
Modified:
llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.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
Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Fri Mar 23 04:27:31 2018
@@ -297,9 +297,9 @@ def : WriteRes<WriteNop, [JALU01]> { let
// FIXME: SS vs PS latencies
////////////////////////////////////////////////////////////////////////////////
-def : WriteRes<WriteFLoad, [JLAGU]> { let Latency = 5; }
-def : WriteRes<WriteFStore, [JSAGU]>;
-def : WriteRes<WriteFMove, [JFPU01]>;
+def : WriteRes<WriteFLoad, [JLAGU, JFPU01, JFPX]> { let Latency = 5; }
+def : WriteRes<WriteFStore, [JSAGU, JFPU01, JFPX]>;
+def : WriteRes<WriteFMove, [JFPU01, JFPX]>;
defm : JWriteResFpuPair<WriteFAdd, [JFPU0, JFPA], 3>;
defm : JWriteResFpuPair<WriteFMul, [JFPU1, JFPM], 2>;
@@ -326,9 +326,9 @@ defm : JWriteResFpuPair<WriteCvtF2F,
// Vector integer operations.
////////////////////////////////////////////////////////////////////////////////
-def : WriteRes<WriteVecLoad, [JLAGU]> { let Latency = 5; }
-def : WriteRes<WriteVecStore, [JSAGU]>;
-def : WriteRes<WriteVecMove, [JFPU01]>;
+def : WriteRes<WriteVecLoad, [JLAGU, JFPU01, JVALU]> { let Latency = 5; }
+def : WriteRes<WriteVecStore, [JSAGU, JFPU01, JVALU]>;
+def : WriteRes<WriteVecMove, [JFPU01, JVALU]>;
defm : JWriteResFpuPair<WriteVecALU, [JFPU01, JVALU], 1>;
defm : JWriteResFpuPair<WriteVecShift, [JFPU01, JVALU], 1>;
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s?rev=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s Fri Mar 23 04:27:31 2018
@@ -54,18 +54,18 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: - - - - - - - 4.00 - 4.00 - - - -
+# CHECK-NEXT: - - - 4.00 4.00 4.00 4.00 4.00 - 4.00 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps (%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s?rev=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s Fri Mar 23 04:27:31 2018
@@ -55,18 +55,18 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: - - - - - - - 4.00 - 4.00 - - - -
+# CHECK-NEXT: - - - 4.00 4.00 4.00 4.00 4.00 - 4.00 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps (%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: - - - 0.99 0.01 0.99 0.01 - - 1.00 - - - - vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: - - - 0.01 0.99 0.01 0.99 1.00 - - - - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: - - - 0.99 0.01 0.99 0.01 - - 1.00 - - - - vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: - - - 0.01 0.99 0.01 0.99 1.00 - - - - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
Modified: 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=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s Fri Mar 23 04:27:31 2018
@@ -1180,9 +1180,9 @@ vzeroupper
# 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 - 1.00 - - - - - - - - vextractf128 $1, %ymm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 1.00 - - - 1.00 - - - - vextractf128 $1, %ymm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vhaddpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2
@@ -1203,18 +1203,18 @@ vzeroupper
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vinsertf128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vinsertps $1, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 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 - 1.00 - - - 0.50 0.50 - vlddqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vlddqu (%rax), %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vldmxcsr (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmaskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmaskmovpd (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - 4.00 - - 1.00 1.00 - - - - - - vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - - 4.00 1.00 - - - 1.00 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - - 4.00 - - 1.00 - - 1.00 - - - - vmaskmovpd %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: - - - - 2.00 1.00 - 1.00 - - - - - - vmaskmovps (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - - 4.00 - 1.00 1.00 - - - - - - vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - 4.00 - 1.00 - - - 1.00 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - - - 4.00 - 1.00 - - 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - 4.00 - 1.00 - 1.00 - - - - - - vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - - 4.00 - 1.00 - - 1.00 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - 4.00 - 1.00 - - - 1.00 - - - - vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - 4.00 1.00 - 1.00 - - - - - - vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - 4.00 - - 1.00 - - 1.00 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - - 4.00 1.00 - - - 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmaxpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vmaxpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 2.00 - 1.00 - - - - - - - - vmaxpd %ymm0, %ymm1, %ymm2
@@ -1239,18 +1239,18 @@ vzeroupper
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vminsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vminss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 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 - 1.00 - - - - - - - vmovapd %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovapd %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovapd (%rax), %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovapd %ymm0, %ymm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - 1.00 - - - - vmovapd %ymm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovapd (%rax), %ymm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovaps %xmm0, %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - 1.00 - - - - vmovaps %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovaps (%rax), %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovaps %ymm0, %ymm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - 1.00 - - - - vmovaps %ymm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 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
@@ -1259,18 +1259,18 @@ vzeroupper
# CHECK-NEXT: - - - - 1.00 - 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 - - - - 0.50 0.50 - vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmovdqa %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vmovdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vmovdqa %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vmovdqa (%rax), %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmovdqu %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vmovdqu (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vmovdqu %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmovdqu %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vmovdqu (%rax), %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovhlps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovlhps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhpd %xmm0, (%rax)
@@ -1278,7 +1278,7 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhps %xmm0, (%rax)
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovhps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vmovlpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlps %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vmovlps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
@@ -1287,43 +1287,43 @@ vzeroupper
# CHECK-NEXT: - - - - - 1.00 - - - - - - - - vmovmskps %ymm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovntdq %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 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 - - - 0.50 0.50 - vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vmovntdqa (%rax), %ymm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovntpd %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 2.00 - - - vmovntpd %ymm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovntps %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 2.00 - - - vmovntps %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vmovq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - 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 - 1.00 - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovsd %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovsd (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovshdup %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vmovshdup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 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 - 1.00 - - - - - - - - vmovsldup %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 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 - 1.00 - - - - - - - - vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 1.00 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: - - - 1.00 - 1.00 - - - - - - - - vmovupd %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovupd %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovupd (%rax), %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovupd %ymm0, %ymm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vmovupd %ymm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmovupd (%rax), %ymm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovups %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - 1.00 - - - - vmovups %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vmovups (%rax), %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vmovups %ymm0, %ymm2
+# CHECK-NEXT: - - - - 1.00 1.00 - - - 1.00 - - - - vmovups %ymm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vmovups (%rax), %ymm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 2.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 2.00 vmpsadbw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vmulpd %xmm0, %xmm1, %xmm2
@@ -1338,76 +1338,76 @@ vzeroupper
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmulsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmulss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmulss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 2.00 - - 2.00 - - - - - - - vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - 2.00 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - - 2.00 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vorps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vorps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vorps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 2.00 - 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpabsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpabsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpabsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpabsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpackuswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpaddb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpalignr $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpalignr $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpand (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpandn %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpandn (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpavgb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpavgb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpavgw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpavgw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 4.00 - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 4.00 - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpblendw $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpabsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpabsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpabsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 2.00 2.00 - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 2.00 2.00 - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpblendw $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - 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 - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpeqb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpeqd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpeqd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpeqq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpeqq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpeqw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpeqw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpgtb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpgtb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpgtd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpgtd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpgtq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpgtq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpcmpgtw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vpermilpd $1, %xmm0, %xmm2
@@ -1426,89 +1426,89 @@ vzeroupper
# 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 - - - - - 1.00 - - vpextrb $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - vpextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpextrd $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - vpextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpextrq $1, %xmm0, %rcx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpextrw $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - 0.50 0.50 - vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vphminposuw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vphminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrb $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrb $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrd $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmaddubsw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmaddubsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmaddwd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmaddwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpmaxsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovmskb %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmuldq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmuldq (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmulhrsw %xmm0, %xmm1, %xmm2
@@ -1523,88 +1523,88 @@ vzeroupper
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmullw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmuludq %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmuludq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsadbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - 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 - - - - 1.00 - - vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsignb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsignb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsignd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsignd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsignw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsllw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsraw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsrlw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - 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 - - - - - 1.00 - vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpxor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vrcpps %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vrcpps (%rax), %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vrcpps %ymm0, %ymm2
Modified: 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=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s Fri Mar 23 04:27:31 2018
@@ -191,13 +191,13 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - minps (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - minss %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 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: - - - - 1.00 0.01 0.99 - - - - - - - movhlps %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - 0.99 0.01 - - - - - - - movaps %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - 1.00 - - - - movaps %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movaps (%rax), %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - movhlps %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - movlhps %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhps %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 0.99 0.01 1.00 - - - - - - movhps (%rax), %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movhps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlps %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - movlps (%rax), %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - movmskps %xmm0, %ecx
@@ -205,16 +205,16 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 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 - 1.00 - - - - - - - - movups %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - movups %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movups (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - mulps %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - mulps (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - mulss %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - mulss (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - orps %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - orps (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.01 0.99 - - - - 0.50 0.50 - pinsrw $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pinsrw $1, %eax, %xmm1
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pinsrw $1, (%rax), %xmm1
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - rcpps %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - rcpps (%rax), %xmm2
Modified: 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=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s Fri Mar 23 04:27:31 2018
@@ -401,8 +401,8 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - addsubpd (%rax), %xmm2
# CHECK-NEXT: - - - 0.99 0.01 1.00 - - - - - - - - andnpd %xmm0, %xmm2
# CHECK-NEXT: - - - 0.99 0.01 0.01 0.99 1.00 - - - - - - andnpd (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 0.01 0.99 - - - - - - - andpd %xmm0, %xmm2
-# CHECK-NEXT: - - - 0.99 0.01 1.00 - 1.00 - - - - - - andpd (%rax), %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - andpd %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.99 0.01 0.01 0.99 1.00 - - - - - - andpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - cmppd $0, %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - cmppd $0, (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - cmpsd $0, %xmm0, %xmm2
@@ -445,7 +445,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - divpd (%rax), %xmm2
# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - divsd %xmm0, %xmm2
# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - divsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - maskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - 1.00 - 0.50 0.50 - maskmovdqu %xmm0, %xmm1
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - maxpd %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - maxpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - maxsd %xmm0, %xmm2
@@ -454,27 +454,27 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - minpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - minsd %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 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 - 0.99 0.01 - - - - - - - movapd %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - movapd %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 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: - - - - - 0.99 0.01 - - - - 0.50 0.50 - movdqa %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - movdqa %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - movdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - movdqu %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - movdqu %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - movdqu (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhpd %xmm0, (%rax)
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movhpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - movlpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - movmskpd %xmm0, %ecx
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movlpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - movmskpd %xmm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntdq %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntpd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - movq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - movq %xmm0, %xmm2
# CHECK-NEXT: - 1.00 - - - - - - - - - - - - movq %rax, %xmm2
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movq (%rax), %xmm2
# CHECK-NEXT: 1.00 - - - - - - - - - - - - - movq %xmm0, %rcx
@@ -482,75 +482,75 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - 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: - - - - 1.00 - 1.00 - - - - - - - movupd %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - 1.00 - - - - movupd %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movupd (%rax), %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - mulpd %xmm0, %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - mulpd (%rax), %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - mulsd %xmm0, %xmm2
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - mulsd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - orpd %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - orpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pabsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pabsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pabsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pabsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pabsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pabsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - packssdw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - packssdw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - packsswb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - packsswb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - packuswb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - packuswb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddusb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddusb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddusw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddusw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - paddw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - paddw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pand %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pand (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pandn %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pandn (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pavgb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pavgb (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pavgw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pavgw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pcmpeqb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pcmpeqb (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pcmpeqd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pcmpeqd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pcmpeqw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pcmpeqw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pcmpgtb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pcmpgtb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pcmpgtd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pcmpgtd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pcmpgtw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pcmpgtw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pextrw $1, %xmm0, %ecx
+# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - orpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pabsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pabsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pabsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - packssdw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - packssdw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - packsswb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - packsswb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - packuswb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - packuswb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddusb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddusb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddusw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddusw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - paddw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - paddw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pand %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pand (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pandn %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pandn (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pavgb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pavgb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pavgw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pavgw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pcmpeqb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pcmpeqb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pcmpeqd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pcmpeqd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pcmpeqw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pcmpeqw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pcmpgtb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pcmpgtb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pcmpgtd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pcmpgtd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pcmpgtw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pcmpgtw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pextrw $1, %xmm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmaddwd %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmaddwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmaxsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmaxsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmaxub %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmaxub (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pminsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pminub %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminub (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovmskb %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pmaxsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmaxsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmaxub %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmaxub (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pminsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pminsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pminub %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pminub (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovmskb %xmm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhuw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmulhuw (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhw %xmm0, %xmm2
@@ -559,76 +559,76 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmullw (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmuludq %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmuludq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - por %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - por (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psadbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - psadbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pslld $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pslld %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pslld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pslldq $1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psllq $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psllq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - psllq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psllw $1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psllw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psllw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - psrad $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psrad %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - psrad (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psraw $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - psraw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - psraw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - psrld $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psrld %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - psrld (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psrldq $1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psrlq $1, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psrlq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - psrlq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - psrlw $1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psrlw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psrlw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubsw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubusb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubusb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubusw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubusw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - psubw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - psubw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - punpckhbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - punpckhbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - punpckhdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - punpckhdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - punpckhqdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - punpckhqdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - punpckhwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - punpckhwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - punpcklbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - punpcklbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - punpckldq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - punpckldq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - punpcklqdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - punpcklqdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - punpcklwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - punpcklwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pxor %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pxor (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - por %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - por (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psadbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - psadbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pslld $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pslld %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pslld (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pslldq $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psllq $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psllq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psllq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psllw $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psllw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psllw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrad $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrad %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - psrad (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psraw $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psraw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - psraw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrld $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrld %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - psrld (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrldq $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psrlq $1, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrlq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - psrlq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - psrlw $1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psrlw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psrlw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubsw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubusb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubusb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubusw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubusw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - psubw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - psubw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - punpckhbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - punpckhbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - punpckhdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - punpckhdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - punpckhqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - punpckhqdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - punpckhwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - punpckhwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - punpcklbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - punpcklbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - punpckldq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - punpckldq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - punpcklqdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - punpcklqdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - punpcklwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - punpcklwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pxor %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pxor (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - shufpd $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - shufpd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - sqrtpd %xmm0, %xmm2
Modified: 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=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s Fri Mar 23 04:27:31 2018
@@ -60,10 +60,10 @@ movsldup (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - hsubpd (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - hsubps %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - hsubps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - lddqu (%rax), %xmm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - movddup %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - lddqu (%rax), %xmm2
+# CHECK-NEXT: - - - - 1.00 0.01 0.99 - - - - - - - movddup %xmm0, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movddup (%rax), %xmm2
-# CHECK-NEXT: - - - 0.01 0.99 0.01 0.99 - - - - - - - movshdup %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movshdup (%rax), %xmm2
-# CHECK-NEXT: - - - 0.04 0.96 0.04 0.96 - - - - - - - movsldup %xmm0, %xmm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - movsldup (%rax), %xmm2
+# CHECK-NEXT: - - - 0.03 0.97 0.03 0.97 - - - - - - - movshdup %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.01 0.99 0.01 0.99 1.00 - - - - - - movshdup (%rax), %xmm2
+# CHECK-NEXT: - - - 0.03 0.97 0.03 0.97 - - - - - - - movsldup %xmm0, %xmm2
+# CHECK-NEXT: - - - 0.96 0.04 0.96 0.04 1.00 - - - - - - movsldup (%rax), %xmm2
Modified: 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=328304&r1=328303&r2=328304&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s Fri Mar 23 04:27:31 2018
@@ -169,8 +169,8 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - - 0.01 0.99 0.01 0.99 1.00 - - - - - - blendps $11, (%rax), %xmm2
# CHECK-NEXT: - - - 3.94 0.06 0.99 0.01 - - - - - - - blendvpd %xmm0, %xmm0, %xmm2
# CHECK-NEXT: - - - 0.06 3.94 0.01 0.99 1.00 - - - - - - blendvpd %xmm0, (%rax), %xmm2
-# CHECK-NEXT: - - - 0.06 3.94 0.01 0.99 - - - - - - - blendvps %xmm0, %xmm0, %xmm2
-# CHECK-NEXT: - - - 3.94 0.06 - 1.00 1.00 - - - - - - blendvps %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - 0.06 3.94 1.00 - - - - - - - - blendvps %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - 3.94 0.06 0.01 0.99 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
@@ -179,72 +179,72 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - - 0.01 0.99 - 1.00 1.00 - 1.00 - - - - extractps $1, %xmm0, (%rax)
# CHECK-NEXT: - - - 0.99 0.01 1.00 - - - - - - - - insertps $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 0.01 0.99 - 1.00 1.00 - - - - - - insertps $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movntdqa (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.99 0.01 - movntdqa (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 2.00 mpsadbw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 2.00 mpsadbw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 1.00 - - packusdw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - 1.00 - packusdw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 3.94 0.06 - pblendvb %xmm0, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 1.00 - - - 0.06 3.94 - pblendvb %xmm0, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pblendw $11, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pblendw $11, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pcmpeqq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pcmpeqq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pextrb $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - pextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 1.00 - - pextrd $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - 1.00 - - pextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - 1.00 - pextrq $1, %xmm0, %rcx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - pextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - pextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - packusdw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.01 0.99 - packusdw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 4.00 - - pblendvb %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - 4.00 - pblendvb %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pblendw $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pblendw $11, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pcmpeqq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pcmpeqq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.01 0.99 - pextrb $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - pextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - pextrd $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - - 1.00 - pextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.01 0.99 - pextrq $1, %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - pextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - pextrw $1, %xmm0, (%rax)
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 phminposuw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 phminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pinsrb $1, %eax, %xmm1
-# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.01 0.99 - pinsrb $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - 1.00 - pinsrd $1, %eax, %xmm1
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pinsrd $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pinsrq $1, %rax, %xmm1
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pinsrq $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 1.00 - - pmaxsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmaxsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmaxsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmaxsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmaxud %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmaxud (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmaxuw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmaxuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pminsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pminsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pminsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pminsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pminud %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pminud (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pminuw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pminuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - pinsrb $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - 1.00 - pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - 0.01 0.99 - pinsrd $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 1.00 - - pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pinsrq $1, %rax, %xmm1
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.99 0.01 - pmaxsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmaxsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmaxud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxud (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pmaxuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - pmaxuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pminsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminud (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pminuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pminuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmuldq %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmuldq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulld %xmm0, %xmm2
More information about the llvm-commits
mailing list