[llvm] r352179 - [llvm-mca][X86] Add missing shuffle tests
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 25 01:17:30 PST 2019
Author: rksimon
Date: Fri Jan 25 01:17:30 2019
New Revision: 352179
URL: http://llvm.org/viewvc/llvm-project?rev=352179&view=rev
Log:
[llvm-mca][X86] Add missing shuffle tests
Match the coverage of test\CodeGen\X86\avx512-shuffle-schedule.ll so we can get rid of -print-schedule (and fix PR37160) without losing schedule tests
Modified:
llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512.s
llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
Modified: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512.s Fri Jan 25 01:17:30 2019
@@ -101,6 +101,196 @@ vpaddq %zmm16, %zmm17, %zmm19
vpaddq (%rax), %zmm17, %zmm19 {z}{k1}
vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vpermd %zmm16, %zmm17, %zmm19
+vpermd (%rax), %zmm17, %zmm19
+vpermd (%rax){1to16}, %zmm17, %zmm19
+vpermd %zmm16, %zmm17, %zmm19 {k1}
+vpermd (%rax), %zmm17, %zmm19 {k1}
+vpermd (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermd (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermilpd $0, %zmm16, %zmm19
+vpermilpd $0, (%rax), %zmm19
+vpermilpd $0, (%rax){1to8}, %zmm19
+vpermilpd $0, %zmm16, %zmm19 {k1}
+vpermilpd $0, (%rax), %zmm19 {k1}
+vpermilpd $0, (%rax){1to8}, %zmm19 {k1}
+vpermilpd $0, %zmm16, %zmm19 {z}{k1}
+vpermilpd $0, (%rax), %zmm19 {z}{k1}
+vpermilpd $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermilpd %zmm16, %zmm17, %zmm19
+vpermilpd (%rax), %zmm17, %zmm19
+vpermilpd (%rax){1to8}, %zmm17, %zmm19
+vpermilpd %zmm16, %zmm17, %zmm19 {k1}
+vpermilpd (%rax), %zmm17, %zmm19 {k1}
+vpermilpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermilpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilpd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermilps $0, %zmm16, %zmm19
+vpermilps $0, (%rax), %zmm19
+vpermilps $0, (%rax){1to16}, %zmm19
+vpermilps $0, %zmm16, %zmm19 {k1}
+vpermilps $0, (%rax), %zmm19 {k1}
+vpermilps $0, (%rax){1to16}, %zmm19 {k1}
+vpermilps $0, %zmm16, %zmm19 {z}{k1}
+vpermilps $0, (%rax), %zmm19 {z}{k1}
+vpermilps $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpermilps %zmm16, %zmm17, %zmm19
+vpermilps (%rax), %zmm17, %zmm19
+vpermilps (%rax){1to16}, %zmm17, %zmm19
+vpermilps %zmm16, %zmm17, %zmm19 {k1}
+vpermilps (%rax), %zmm17, %zmm19 {k1}
+vpermilps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermilps %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilps (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermpd $0, %zmm16, %zmm19
+vpermpd $0, (%rax), %zmm19
+vpermpd $0, (%rax){1to8}, %zmm19
+vpermpd $0, %zmm16, %zmm19 {k1}
+vpermpd $0, (%rax), %zmm19 {k1}
+vpermpd $0, (%rax){1to8}, %zmm19 {k1}
+vpermpd $0, %zmm16, %zmm19 {z}{k1}
+vpermpd $0, (%rax), %zmm19 {z}{k1}
+vpermpd $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermpd %zmm16, %zmm17, %zmm19
+vpermpd (%rax), %zmm17, %zmm19
+vpermpd (%rax){1to8}, %zmm17, %zmm19
+vpermpd %zmm16, %zmm17, %zmm19 {k1}
+vpermpd (%rax), %zmm17, %zmm19 {k1}
+vpermpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermpd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermps %zmm16, %zmm17, %zmm19
+vpermps (%rax), %zmm17, %zmm19
+vpermps (%rax){1to16}, %zmm17, %zmm19
+vpermps %zmm16, %zmm17, %zmm19 {k1}
+vpermps (%rax), %zmm17, %zmm19 {k1}
+vpermps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermps %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermps (%rax), %zmm17, %zmm19 {z}{k1}
+vpermps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermq $0, %zmm16, %zmm19
+vpermq $0, (%rax), %zmm19
+vpermq $0, (%rax){1to8}, %zmm19
+vpermq $0, %zmm16, %zmm19 {k1}
+vpermq $0, (%rax), %zmm19 {k1}
+vpermq $0, (%rax){1to8}, %zmm19 {k1}
+vpermq $0, %zmm16, %zmm19 {z}{k1}
+vpermq $0, (%rax), %zmm19 {z}{k1}
+vpermq $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermq %zmm16, %zmm17, %zmm19
+vpermq (%rax), %zmm17, %zmm19
+vpermq (%rax){1to8}, %zmm17, %zmm19
+vpermq %zmm16, %zmm17, %zmm19 {k1}
+vpermq (%rax), %zmm17, %zmm19 {k1}
+vpermq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermq (%rax), %zmm17, %zmm19 {z}{k1}
+vpermq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpshufd $0, %zmm16, %zmm19
+vpshufd $0, (%rax), %zmm19
+vpshufd $0, (%rax){1to16}, %zmm19
+vpshufd $0, %zmm16, %zmm19 {k1}
+vpshufd $0, (%rax), %zmm19 {k1}
+vpshufd $0, (%rax){1to16}, %zmm19 {k1}
+vpshufd $0, %zmm16, %zmm19 {z}{k1}
+vpshufd $0, (%rax), %zmm19 {z}{k1}
+vpshufd $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpunpckhdq %zmm16, %zmm17, %zmm19
+vpunpckhdq (%rax), %zmm17, %zmm19
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+vpunpckhdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhdq (%rax), %zmm17, %zmm19 {k1}
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckhdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckhqdq %zmm16, %zmm17, %zmm19
+vpunpckhqdq (%rax), %zmm17, %zmm19
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+vpunpckhqdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhqdq (%rax), %zmm17, %zmm19 {k1}
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpckhqdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckldq %zmm16, %zmm17, %zmm19
+vpunpckldq (%rax), %zmm17, %zmm19
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+vpunpckldq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckldq (%rax), %zmm17, %zmm19 {k1}
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckldq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckldq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpcklqdq %zmm16, %zmm17, %zmm19
+vpunpcklqdq (%rax), %zmm17, %zmm19
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+vpunpcklqdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklqdq (%rax), %zmm17, %zmm19 {k1}
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpcklqdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+vshuff32x4 $0, (%rax), %zmm17, %zmm19
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff32x4 $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff32x4 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+vshuff64x2 $0, (%rax), %zmm17, %zmm19
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff64x2 $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+vshufi32x4 $0, (%rax), %zmm17, %zmm19
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi32x4 $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi32x4 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+vshufi64x2 $0, (%rax), %zmm17, %zmm19
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi64x2 $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
vpsubd %zmm16, %zmm17, %zmm19
vpsubd (%rax), %zmm17, %zmm19
vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -141,6 +331,46 @@ vsubps %zmm16, %zmm17, %zmm19
vsubps (%rax), %zmm17, %zmm19 {z}{k1}
vsubps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vunpckhpd %zmm16, %zmm17, %zmm19
+vunpckhpd (%rax), %zmm17, %zmm19
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+vunpckhpd %zmm16, %zmm17, %zmm19 {k1}
+vunpckhpd (%rax), %zmm17, %zmm19 {k1}
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpckhpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhpd (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpckhps %zmm16, %zmm17, %zmm19
+vunpckhps (%rax), %zmm17, %zmm19
+vunpckhps (%rax){1to16}, %zmm17, %zmm19
+vunpckhps %zmm16, %zmm17, %zmm19 {k1}
+vunpckhps (%rax), %zmm17, %zmm19 {k1}
+vunpckhps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpckhps %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhps (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklpd %zmm16, %zmm17, %zmm19
+vunpcklpd (%rax), %zmm17, %zmm19
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+vunpcklpd %zmm16, %zmm17, %zmm19 {k1}
+vunpcklpd (%rax), %zmm17, %zmm19 {k1}
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpcklpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklpd (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklps %zmm16, %zmm17, %zmm19
+vunpcklps (%rax), %zmm17, %zmm19
+vunpcklps (%rax){1to16}, %zmm17, %zmm19
+vunpcklps %zmm16, %zmm17, %zmm19 {k1}
+vunpcklps (%rax), %zmm17, %zmm19 {k1}
+vunpcklps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpcklps %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklps (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -240,6 +470,177 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: 1 1 0.50 vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpsubd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -276,6 +677,42 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: 1 3 1.00 vsubps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * vsubps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
@@ -289,7 +726,7 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 648.00 63.00 63.00 - 36.00 42.00 42.00
+# CHECK-NEXT: - 648.00 63.00 63.00 - 243.00 111.00 111.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -383,6 +820,177 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -419,3 +1027,39 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: - - - 1.00 - - - - vsubps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s Fri Jan 25 01:17:30 2019
@@ -29,6 +29,34 @@ vpaddw (%rax), %zmm17, %zmm19
vpaddw %zmm16, %zmm17, %zmm19 {z}{k1}
vpaddw (%rax), %zmm17, %zmm19 {z}{k1}
+vpermw %zmm16, %zmm17, %zmm19
+vpermw (%rax), %zmm17, %zmm19
+vpermw %zmm16, %zmm17, %zmm19 {k1}
+vpermw (%rax), %zmm17, %zmm19 {k1}
+vpermw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpshufb %zmm16, %zmm17, %zmm19
+vpshufb (%rax), %zmm17, %zmm19
+vpshufb %zmm16, %zmm17, %zmm19 {k1}
+vpshufb (%rax), %zmm17, %zmm19 {k1}
+vpshufb %zmm16, %zmm17, %zmm19 {z}{k1}
+vpshufb (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpshufhw $0, %zmm16, %zmm19
+vpshufhw $0, (%rax), %zmm19
+vpshufhw $0, %zmm16, %zmm19 {k1}
+vpshufhw $0, (%rax), %zmm19 {k1}
+vpshufhw $0, %zmm16, %zmm19 {z}{k1}
+vpshufhw $0, (%rax), %zmm19 {z}{k1}
+
+vpshuflw $0, %zmm16, %zmm19
+vpshuflw $0, (%rax), %zmm19
+vpshuflw $0, %zmm16, %zmm19 {k1}
+vpshuflw $0, (%rax), %zmm19 {k1}
+vpshuflw $0, %zmm16, %zmm19 {z}{k1}
+vpshuflw $0, (%rax), %zmm19 {z}{k1}
+
vpsubb %zmm16, %zmm17, %zmm19
vpsubb (%rax), %zmm17, %zmm19
vpsubb %zmm16, %zmm17, %zmm19 {k1}
@@ -43,6 +71,34 @@ vpsubw (%rax), %zmm17, %zmm19
vpsubw %zmm16, %zmm17, %zmm19 {z}{k1}
vpsubw (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhbw %zmm16, %zmm17, %zmm19
+vpunpckhbw (%rax), %zmm17, %zmm19
+vpunpckhbw %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhbw (%rax), %zmm17, %zmm19 {k1}
+vpunpckhbw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhbw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpckhwd %zmm16, %zmm17, %zmm19
+vpunpckhwd (%rax), %zmm17, %zmm19
+vpunpckhwd %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhwd (%rax), %zmm17, %zmm19 {k1}
+vpunpckhwd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhwd (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklbw %zmm16, %zmm17, %zmm19
+vpunpcklbw (%rax), %zmm17, %zmm19
+vpunpcklbw %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklbw (%rax), %zmm17, %zmm19 {k1}
+vpunpcklbw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklbw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklwd %zmm16, %zmm17, %zmm19
+vpunpcklwd (%rax), %zmm17, %zmm19
+vpunpcklwd %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklwd (%rax), %zmm17, %zmm19 {k1}
+vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -76,6 +132,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpsubb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 0.50 vpsubb %zmm16, %zmm17, %zmm19 {%k1}
@@ -88,6 +168,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
@@ -101,7 +205,7 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 18.00 - 18.00 9.00 9.00
+# CHECK-NEXT: - - - 21.00 - 63.00 21.00 21.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -129,6 +233,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshuflw $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshuflw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshuflw $0, (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1}
@@ -141,3 +269,27 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s Fri Jan 25 01:17:30 2019
@@ -57,6 +57,48 @@ vpaddw (%rax), %ymm17, %ymm19
vpaddw %ymm16, %ymm17, %ymm19 {z}{k1}
vpaddw (%rax), %ymm17, %ymm19 {z}{k1}
+vpermw %xmm16, %xmm17, %xmm19
+vpermw (%rax), %xmm17, %xmm19
+vpermw %xmm16, %xmm17, %xmm19 {k1}
+vpermw (%rax), %xmm17, %xmm19 {k1}
+vpermw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpermw %ymm16, %ymm17, %ymm19
+vpermw (%rax), %ymm17, %ymm19
+vpermw %ymm16, %ymm17, %ymm19 {k1}
+vpermw (%rax), %ymm17, %ymm19 {k1}
+vpermw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpshufb %xmm16, %xmm17, %xmm19
+vpshufb (%rax), %xmm17, %xmm19
+vpshufb %xmm16, %xmm17, %xmm19 {k1}
+vpshufb (%rax), %xmm17, %xmm19 {k1}
+vpshufb %xmm16, %xmm17, %xmm19 {z}{k1}
+vpshufb (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpshufb %ymm16, %ymm17, %ymm19
+vpshufb (%rax), %ymm17, %ymm19
+vpshufb %ymm16, %ymm17, %ymm19 {k1}
+vpshufb (%rax), %ymm17, %ymm19 {k1}
+vpshufb %ymm16, %ymm17, %ymm19 {z}{k1}
+vpshufb (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpshufhw $0, %xmm16, %xmm19
+vpshufhw $0, (%rax), %xmm19
+vpshufhw $0, %xmm16, %xmm19 {k1}
+vpshufhw $0, (%rax), %xmm19 {k1}
+vpshufhw $0, %xmm16, %xmm19 {z}{k1}
+vpshufhw $0, (%rax), %xmm19 {z}{k1}
+
+vpshufhw $0, %ymm16, %ymm19
+vpshufhw $0, (%rax), %ymm19
+vpshufhw $0, %ymm16, %ymm19 {k1}
+vpshufhw $0, (%rax), %ymm19 {k1}
+vpshufhw $0, %ymm16, %ymm19 {z}{k1}
+vpshufhw $0, (%rax), %ymm19 {z}{k1}
+
vpsubb %xmm16, %xmm17, %xmm19
vpsubb (%rax), %xmm17, %xmm19
vpsubb %xmm16, %xmm17, %xmm19 {k1}
@@ -85,6 +127,62 @@ vpsubw (%rax), %ymm17, %ymm19
vpsubw %ymm16, %ymm17, %ymm19 {z}{k1}
vpsubw (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckhbw %xmm16, %xmm17, %xmm19
+vpunpckhbw (%rax), %xmm17, %xmm19
+vpunpckhbw %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhbw (%rax), %xmm17, %xmm19 {k1}
+vpunpckhbw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhbw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhbw %ymm16, %ymm17, %ymm19
+vpunpckhbw (%rax), %ymm17, %ymm19
+vpunpckhbw %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhbw (%rax), %ymm17, %ymm19 {k1}
+vpunpckhbw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhbw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpckhwd %xmm16, %xmm17, %xmm19
+vpunpckhwd (%rax), %xmm17, %xmm19
+vpunpckhwd %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhwd (%rax), %xmm17, %xmm19 {k1}
+vpunpckhwd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhwd (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhwd %ymm16, %ymm17, %ymm19
+vpunpckhwd (%rax), %ymm17, %ymm19
+vpunpckhwd %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhwd (%rax), %ymm17, %ymm19 {k1}
+vpunpckhwd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhwd (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklbw %xmm16, %xmm17, %xmm19
+vpunpcklbw (%rax), %xmm17, %xmm19
+vpunpcklbw %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklbw (%rax), %xmm17, %xmm19 {k1}
+vpunpcklbw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklbw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklbw %ymm16, %ymm17, %ymm19
+vpunpcklbw (%rax), %ymm17, %ymm19
+vpunpcklbw %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklbw (%rax), %ymm17, %ymm19 {k1}
+vpunpcklbw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklbw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklwd %xmm16, %xmm17, %xmm19
+vpunpcklwd (%rax), %xmm17, %xmm19
+vpunpcklwd %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklwd (%rax), %xmm17, %xmm19 {k1}
+vpunpcklwd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklwd (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklwd %ymm16, %ymm17, %ymm19
+vpunpcklwd (%rax), %ymm17, %ymm19
+vpunpcklwd %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklwd (%rax), %ymm17, %ymm19 {k1}
+vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -142,6 +240,42 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 0.50 vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -166,6 +300,54 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.50 vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
@@ -179,7 +361,7 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - - 36.00 - 36.00 18.00 18.00
+# CHECK-NEXT: - - - 57.00 - 99.00 39.00 39.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -231,6 +413,42 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufhw $0, (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -255,3 +473,51 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s Fri Jan 25 01:17:30 2019
@@ -121,6 +121,246 @@ vmulps %ymm16, %ymm17, %ymm19
vmulps (%rax), %ymm17, %ymm19 {z}{k1}
vmulps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vpermd %ymm16, %ymm17, %ymm19
+vpermd (%rax), %ymm17, %ymm19
+vpermd (%rax){1to8}, %ymm17, %ymm19
+vpermd %ymm16, %ymm17, %ymm19 {k1}
+vpermd (%rax), %ymm17, %ymm19 {k1}
+vpermd (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermd (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermilpd $0, %xmm16, %xmm19
+vpermilpd $0, (%rax), %xmm19
+vpermilpd $0, (%rax){1to2}, %xmm19
+vpermilpd $0, %xmm16, %xmm19 {k1}
+vpermilpd $0, (%rax), %xmm19 {k1}
+vpermilpd $0, (%rax){1to2}, %xmm19 {k1}
+vpermilpd $0, %xmm16, %xmm19 {z}{k1}
+vpermilpd $0, (%rax), %xmm19 {z}{k1}
+vpermilpd $0, (%rax){1to2}, %xmm19 {z}{k1}
+
+vpermilpd $0, %ymm16, %ymm19
+vpermilpd $0, (%rax), %ymm19
+vpermilpd $0, (%rax){1to4}, %ymm19
+vpermilpd $0, %ymm16, %ymm19 {k1}
+vpermilpd $0, (%rax), %ymm19 {k1}
+vpermilpd $0, (%rax){1to4}, %ymm19 {k1}
+vpermilpd $0, %ymm16, %ymm19 {z}{k1}
+vpermilpd $0, (%rax), %ymm19 {z}{k1}
+vpermilpd $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermilpd %xmm16, %xmm17, %xmm19
+vpermilpd (%rax), %xmm17, %xmm19
+vpermilpd (%rax){1to2}, %xmm17, %xmm19
+vpermilpd %xmm16, %xmm17, %xmm19 {k1}
+vpermilpd (%rax), %xmm17, %xmm19 {k1}
+vpermilpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpermilpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilpd (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vpermilpd %ymm16, %ymm17, %ymm19
+vpermilpd (%rax), %ymm17, %ymm19
+vpermilpd (%rax){1to4}, %ymm17, %ymm19
+vpermilpd %ymm16, %ymm17, %ymm19 {k1}
+vpermilpd (%rax), %ymm17, %ymm19 {k1}
+vpermilpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermilpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilpd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermilps $0, %xmm16, %xmm19
+vpermilps $0, (%rax), %xmm19
+vpermilps $0, (%rax){1to4}, %xmm19
+vpermilps $0, %xmm16, %xmm19 {k1}
+vpermilps $0, (%rax), %xmm19 {k1}
+vpermilps $0, (%rax){1to4}, %xmm19 {k1}
+vpermilps $0, %xmm16, %xmm19 {z}{k1}
+vpermilps $0, (%rax), %xmm19 {z}{k1}
+vpermilps $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpermilps $0, %ymm16, %ymm19
+vpermilps $0, (%rax), %ymm19
+vpermilps $0, (%rax){1to8}, %ymm19
+vpermilps $0, %ymm16, %ymm19 {k1}
+vpermilps $0, (%rax), %ymm19 {k1}
+vpermilps $0, (%rax){1to8}, %ymm19 {k1}
+vpermilps $0, %ymm16, %ymm19 {z}{k1}
+vpermilps $0, (%rax), %ymm19 {z}{k1}
+vpermilps $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpermilps %xmm16, %xmm17, %xmm19
+vpermilps (%rax), %xmm17, %xmm19
+vpermilps (%rax){1to4}, %xmm17, %xmm19
+vpermilps %xmm16, %xmm17, %xmm19 {k1}
+vpermilps (%rax), %xmm17, %xmm19 {k1}
+vpermilps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpermilps %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilps (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpermilps %ymm16, %ymm17, %ymm19
+vpermilps (%rax), %ymm17, %ymm19
+vpermilps (%rax){1to8}, %ymm17, %ymm19
+vpermilps %ymm16, %ymm17, %ymm19 {k1}
+vpermilps (%rax), %ymm17, %ymm19 {k1}
+vpermilps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermilps %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilps (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermpd $0, %ymm16, %ymm19
+vpermpd $0, (%rax), %ymm19
+vpermpd $0, (%rax){1to4}, %ymm19
+vpermpd $0, %ymm16, %ymm19 {k1}
+vpermpd $0, (%rax), %ymm19 {k1}
+vpermpd $0, (%rax){1to4}, %ymm19 {k1}
+vpermpd $0, %ymm16, %ymm19 {z}{k1}
+vpermpd $0, (%rax), %ymm19 {z}{k1}
+vpermpd $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermpd %ymm16, %ymm17, %ymm19
+vpermpd (%rax), %ymm17, %ymm19
+vpermpd (%rax){1to4}, %ymm17, %ymm19
+vpermpd %ymm16, %ymm17, %ymm19 {k1}
+vpermpd (%rax), %ymm17, %ymm19 {k1}
+vpermpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermpd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermps %ymm16, %ymm17, %ymm19
+vpermps (%rax), %ymm17, %ymm19
+vpermps (%rax){1to8}, %ymm17, %ymm19
+vpermps %ymm16, %ymm17, %ymm19 {k1}
+vpermps (%rax), %ymm17, %ymm19 {k1}
+vpermps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermps %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermps (%rax), %ymm17, %ymm19 {z}{k1}
+vpermps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermq $0, %ymm16, %ymm19
+vpermq $0, (%rax), %ymm19
+vpermq $0, (%rax){1to4}, %ymm19
+vpermq $0, %ymm16, %ymm19 {k1}
+vpermq $0, (%rax), %ymm19 {k1}
+vpermq $0, (%rax){1to4}, %ymm19 {k1}
+vpermq $0, %ymm16, %ymm19 {z}{k1}
+vpermq $0, (%rax), %ymm19 {z}{k1}
+vpermq $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermq %ymm16, %ymm17, %ymm19
+vpermq (%rax), %ymm17, %ymm19
+vpermq (%rax){1to4}, %ymm17, %ymm19
+vpermq %ymm16, %ymm17, %ymm19 {k1}
+vpermq (%rax), %ymm17, %ymm19 {k1}
+vpermq (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermq (%rax), %ymm17, %ymm19 {z}{k1}
+vpermq (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpshufd $0, %xmm16, %xmm19
+vpshufd $0, (%rax), %xmm19
+vpshufd $0, (%rax){1to4}, %xmm19
+vpshufd $0, %xmm16, %xmm19 {k1}
+vpshufd $0, (%rax), %xmm19 {k1}
+vpshufd $0, (%rax){1to4}, %xmm19 {k1}
+vpshufd $0, %xmm16, %xmm19 {z}{k1}
+vpshufd $0, (%rax), %xmm19 {z}{k1}
+vpshufd $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpshufd $0, %ymm16, %ymm19
+vpshufd $0, (%rax), %ymm19
+vpshufd $0, (%rax){1to8}, %ymm19
+vpshufd $0, %ymm16, %ymm19 {k1}
+vpshufd $0, (%rax), %ymm19 {k1}
+vpshufd $0, (%rax){1to8}, %ymm19 {k1}
+vpshufd $0, %ymm16, %ymm19 {z}{k1}
+vpshufd $0, (%rax), %ymm19 {z}{k1}
+vpshufd $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpunpckhdq %xmm16, %xmm17, %xmm19
+vpunpckhdq (%rax), %xmm17, %xmm19
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+vpunpckhdq %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhdq (%rax), %xmm17, %xmm19 {k1}
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckhdq %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhdq (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckhdq %ymm16, %ymm17, %ymm19
+vpunpckhdq (%rax), %ymm17, %ymm19
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+vpunpckhdq %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhdq (%rax), %ymm17, %ymm19 {k1}
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckhdq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhdq (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpunpckldq %xmm16, %xmm17, %xmm19
+vpunpckldq (%rax), %xmm17, %xmm19
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+vpunpckldq %xmm16, %xmm17, %xmm19 {k1}
+vpunpckldq (%rax), %xmm17, %xmm19 {k1}
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckldq %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckldq (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckldq %ymm16, %ymm17, %ymm19
+vpunpckldq (%rax), %ymm17, %ymm19
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+vpunpckldq %ymm16, %ymm17, %ymm19 {k1}
+vpunpckldq (%rax), %ymm17, %ymm19 {k1}
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckldq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckldq (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+vshuff32x4 $0, (%rax), %ymm17, %ymm19
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff32x4 $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff32x4 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+vshuff64x2 $0, (%rax), %ymm17, %ymm19
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff64x2 $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+vshufi32x4 $0, (%rax), %ymm17, %ymm19
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi32x4 $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi32x4 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+vshufi64x2 $0, (%rax), %ymm17, %ymm19
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi64x2 $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
vsubpd %xmm16, %xmm17, %xmm19
vsubpd (%rax), %xmm17, %xmm19
vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -161,6 +401,86 @@ vsubps %ymm16, %ymm17, %ymm19
vsubps (%rax), %ymm17, %ymm19 {z}{k1}
vsubps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vunpckhpd %xmm16, %xmm17, %xmm19
+vunpckhpd (%rax), %xmm17, %xmm19
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+vunpckhpd %xmm16, %xmm17, %xmm19 {k1}
+vunpckhpd (%rax), %xmm17, %xmm19 {k1}
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpckhpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhpd (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhpd %ymm16, %ymm17, %ymm19
+vunpckhpd (%rax), %ymm17, %ymm19
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+vunpckhpd %ymm16, %ymm17, %ymm19 {k1}
+vunpckhpd (%rax), %ymm17, %ymm19 {k1}
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpckhpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhpd (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpckhps %xmm16, %xmm17, %xmm19
+vunpckhps (%rax), %xmm17, %xmm19
+vunpckhps (%rax){1to4}, %xmm17, %xmm19
+vunpckhps %xmm16, %xmm17, %xmm19 {k1}
+vunpckhps (%rax), %xmm17, %xmm19 {k1}
+vunpckhps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpckhps %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhps (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhps %ymm16, %ymm17, %ymm19
+vunpckhps (%rax), %ymm17, %ymm19
+vunpckhps (%rax){1to8}, %ymm17, %ymm19
+vunpckhps %ymm16, %ymm17, %ymm19 {k1}
+vunpckhps (%rax), %ymm17, %ymm19 {k1}
+vunpckhps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpckhps %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhps (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklpd %xmm16, %xmm17, %xmm19
+vunpcklpd (%rax), %xmm17, %xmm19
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+vunpcklpd %xmm16, %xmm17, %xmm19 {k1}
+vunpcklpd (%rax), %xmm17, %xmm19 {k1}
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpcklpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklpd (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklpd %ymm16, %ymm17, %ymm19
+vunpcklpd (%rax), %ymm17, %ymm19
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+vunpcklpd %ymm16, %ymm17, %ymm19 {k1}
+vunpcklpd (%rax), %ymm17, %ymm19 {k1}
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpcklpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklpd (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklps %xmm16, %xmm17, %xmm19
+vunpcklps (%rax), %xmm17, %xmm19
+vunpcklps (%rax){1to4}, %xmm17, %xmm19
+vunpcklps %xmm16, %xmm17, %xmm19 {k1}
+vunpcklps (%rax), %xmm17, %xmm19 {k1}
+vunpcklps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpcklps %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklps (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklps %ymm16, %ymm17, %ymm19
+vunpcklps (%rax), %ymm17, %ymm19
+vunpcklps (%rax){1to8}, %ymm17, %ymm19
+vunpcklps %ymm16, %ymm17, %ymm19 {k1}
+vunpcklps (%rax), %ymm17, %ymm19 {k1}
+vunpcklps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpcklps %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklps (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -278,6 +598,222 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: 1 5 1.00 vmulps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 12 1.00 * vmulps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 12 1.00 * vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermq $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -314,6 +850,78 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: 1 3 1.00 vsubps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * vsubps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 10 1.00 * vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
@@ -327,7 +935,7 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 972.00 99.00 72.00 - 9.00 48.00 48.00
+# CHECK-NEXT: - 972.00 99.00 85.50 - 283.50 144.00 144.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -439,6 +1047,222 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: - - 1.00 - - - - - vmulps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - - - vsubpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -475,3 +1299,75 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: - - - 1.00 - - - - vsubps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s Fri Jan 25 01:17:30 2019
@@ -101,6 +101,196 @@ vpaddq %zmm16, %zmm17, %zmm19
vpaddq (%rax), %zmm17, %zmm19 {z}{k1}
vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+vpermd %zmm16, %zmm17, %zmm19
+vpermd (%rax), %zmm17, %zmm19
+vpermd (%rax){1to16}, %zmm17, %zmm19
+vpermd %zmm16, %zmm17, %zmm19 {k1}
+vpermd (%rax), %zmm17, %zmm19 {k1}
+vpermd (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermd (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermilpd $0, %zmm16, %zmm19
+vpermilpd $0, (%rax), %zmm19
+vpermilpd $0, (%rax){1to8}, %zmm19
+vpermilpd $0, %zmm16, %zmm19 {k1}
+vpermilpd $0, (%rax), %zmm19 {k1}
+vpermilpd $0, (%rax){1to8}, %zmm19 {k1}
+vpermilpd $0, %zmm16, %zmm19 {z}{k1}
+vpermilpd $0, (%rax), %zmm19 {z}{k1}
+vpermilpd $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermilpd %zmm16, %zmm17, %zmm19
+vpermilpd (%rax), %zmm17, %zmm19
+vpermilpd (%rax){1to8}, %zmm17, %zmm19
+vpermilpd %zmm16, %zmm17, %zmm19 {k1}
+vpermilpd (%rax), %zmm17, %zmm19 {k1}
+vpermilpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermilpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilpd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermilps $0, %zmm16, %zmm19
+vpermilps $0, (%rax), %zmm19
+vpermilps $0, (%rax){1to16}, %zmm19
+vpermilps $0, %zmm16, %zmm19 {k1}
+vpermilps $0, (%rax), %zmm19 {k1}
+vpermilps $0, (%rax){1to16}, %zmm19 {k1}
+vpermilps $0, %zmm16, %zmm19 {z}{k1}
+vpermilps $0, (%rax), %zmm19 {z}{k1}
+vpermilps $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpermilps %zmm16, %zmm17, %zmm19
+vpermilps (%rax), %zmm17, %zmm19
+vpermilps (%rax){1to16}, %zmm17, %zmm19
+vpermilps %zmm16, %zmm17, %zmm19 {k1}
+vpermilps (%rax), %zmm17, %zmm19 {k1}
+vpermilps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermilps %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilps (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermpd $0, %zmm16, %zmm19
+vpermpd $0, (%rax), %zmm19
+vpermpd $0, (%rax){1to8}, %zmm19
+vpermpd $0, %zmm16, %zmm19 {k1}
+vpermpd $0, (%rax), %zmm19 {k1}
+vpermpd $0, (%rax){1to8}, %zmm19 {k1}
+vpermpd $0, %zmm16, %zmm19 {z}{k1}
+vpermpd $0, (%rax), %zmm19 {z}{k1}
+vpermpd $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermpd %zmm16, %zmm17, %zmm19
+vpermpd (%rax), %zmm17, %zmm19
+vpermpd (%rax){1to8}, %zmm17, %zmm19
+vpermpd %zmm16, %zmm17, %zmm19 {k1}
+vpermpd (%rax), %zmm17, %zmm19 {k1}
+vpermpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermpd (%rax), %zmm17, %zmm19 {z}{k1}
+vpermpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermps %zmm16, %zmm17, %zmm19
+vpermps (%rax), %zmm17, %zmm19
+vpermps (%rax){1to16}, %zmm17, %zmm19
+vpermps %zmm16, %zmm17, %zmm19 {k1}
+vpermps (%rax), %zmm17, %zmm19 {k1}
+vpermps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermps %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermps (%rax), %zmm17, %zmm19 {z}{k1}
+vpermps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermq $0, %zmm16, %zmm19
+vpermq $0, (%rax), %zmm19
+vpermq $0, (%rax){1to8}, %zmm19
+vpermq $0, %zmm16, %zmm19 {k1}
+vpermq $0, (%rax), %zmm19 {k1}
+vpermq $0, (%rax){1to8}, %zmm19 {k1}
+vpermq $0, %zmm16, %zmm19 {z}{k1}
+vpermq $0, (%rax), %zmm19 {z}{k1}
+vpermq $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermq %zmm16, %zmm17, %zmm19
+vpermq (%rax), %zmm17, %zmm19
+vpermq (%rax){1to8}, %zmm17, %zmm19
+vpermq %zmm16, %zmm17, %zmm19 {k1}
+vpermq (%rax), %zmm17, %zmm19 {k1}
+vpermq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermq (%rax), %zmm17, %zmm19 {z}{k1}
+vpermq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpshufd $0, %zmm16, %zmm19
+vpshufd $0, (%rax), %zmm19
+vpshufd $0, (%rax){1to16}, %zmm19
+vpshufd $0, %zmm16, %zmm19 {k1}
+vpshufd $0, (%rax), %zmm19 {k1}
+vpshufd $0, (%rax){1to16}, %zmm19 {k1}
+vpshufd $0, %zmm16, %zmm19 {z}{k1}
+vpshufd $0, (%rax), %zmm19 {z}{k1}
+vpshufd $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpunpckhdq %zmm16, %zmm17, %zmm19
+vpunpckhdq (%rax), %zmm17, %zmm19
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+vpunpckhdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhdq (%rax), %zmm17, %zmm19 {k1}
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckhdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckhqdq %zmm16, %zmm17, %zmm19
+vpunpckhqdq (%rax), %zmm17, %zmm19
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+vpunpckhqdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhqdq (%rax), %zmm17, %zmm19 {k1}
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpckhqdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckldq %zmm16, %zmm17, %zmm19
+vpunpckldq (%rax), %zmm17, %zmm19
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+vpunpckldq %zmm16, %zmm17, %zmm19 {k1}
+vpunpckldq (%rax), %zmm17, %zmm19 {k1}
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckldq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckldq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpcklqdq %zmm16, %zmm17, %zmm19
+vpunpcklqdq (%rax), %zmm17, %zmm19
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+vpunpcklqdq %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklqdq (%rax), %zmm17, %zmm19 {k1}
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpcklqdq %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+vshuff32x4 $0, (%rax), %zmm17, %zmm19
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff32x4 $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff32x4 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+vshuff64x2 $0, (%rax), %zmm17, %zmm19
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff64x2 $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+vshufi32x4 $0, (%rax), %zmm17, %zmm19
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi32x4 $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi32x4 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+vshufi64x2 $0, (%rax), %zmm17, %zmm19
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi64x2 $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
vpsubd %zmm16, %zmm17, %zmm19
vpsubd (%rax), %zmm17, %zmm19
vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -141,6 +331,46 @@ vsubps %zmm16, %zmm17, %zmm19
vsubps (%rax), %zmm17, %zmm19 {z}{k1}
vsubps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vunpckhpd %zmm16, %zmm17, %zmm19
+vunpckhpd (%rax), %zmm17, %zmm19
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+vunpckhpd %zmm16, %zmm17, %zmm19 {k1}
+vunpckhpd (%rax), %zmm17, %zmm19 {k1}
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpckhpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhpd (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpckhps %zmm16, %zmm17, %zmm19
+vunpckhps (%rax), %zmm17, %zmm19
+vunpckhps (%rax){1to16}, %zmm17, %zmm19
+vunpckhps %zmm16, %zmm17, %zmm19 {k1}
+vunpckhps (%rax), %zmm17, %zmm19 {k1}
+vunpckhps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpckhps %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhps (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklpd %zmm16, %zmm17, %zmm19
+vunpcklpd (%rax), %zmm17, %zmm19
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+vunpcklpd %zmm16, %zmm17, %zmm19 {k1}
+vunpcklpd (%rax), %zmm17, %zmm19 {k1}
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpcklpd %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklpd (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklps %zmm16, %zmm17, %zmm19
+vunpcklps (%rax), %zmm17, %zmm19
+vunpcklps (%rax){1to16}, %zmm17, %zmm19
+vunpcklps %zmm16, %zmm17, %zmm19 {k1}
+vunpcklps (%rax), %zmm17, %zmm19 {k1}
+vunpcklps (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpcklps %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklps (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -240,6 +470,177 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: 1 1 0.33 vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vpermq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpsubd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -276,6 +677,42 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: 1 4 0.50 vsubps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vsubps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
@@ -291,7 +728,7 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 234.00 93.00 12.00 42.00 42.00 - 57.00 - -
+# CHECK-NEXT: - 234.00 93.00 12.00 111.00 111.00 - 264.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -385,6 +822,177 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklqdq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklqdq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to16}, %zmm17, %zmm19
@@ -421,3 +1029,39 @@ vsubps (%rax){1to16}, %zmm17,
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vsubps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vsubps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s Fri Jan 25 01:17:30 2019
@@ -29,6 +29,34 @@ vpaddw (%rax), %zmm17, %zmm19
vpaddw %zmm16, %zmm17, %zmm19 {z}{k1}
vpaddw (%rax), %zmm17, %zmm19 {z}{k1}
+vpermw %zmm16, %zmm17, %zmm19
+vpermw (%rax), %zmm17, %zmm19
+vpermw %zmm16, %zmm17, %zmm19 {k1}
+vpermw (%rax), %zmm17, %zmm19 {k1}
+vpermw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpshufb %zmm16, %zmm17, %zmm19
+vpshufb (%rax), %zmm17, %zmm19
+vpshufb %zmm16, %zmm17, %zmm19 {k1}
+vpshufb (%rax), %zmm17, %zmm19 {k1}
+vpshufb %zmm16, %zmm17, %zmm19 {z}{k1}
+vpshufb (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpshufhw $0, %zmm16, %zmm19
+vpshufhw $0, (%rax), %zmm19
+vpshufhw $0, %zmm16, %zmm19 {k1}
+vpshufhw $0, (%rax), %zmm19 {k1}
+vpshufhw $0, %zmm16, %zmm19 {z}{k1}
+vpshufhw $0, (%rax), %zmm19 {z}{k1}
+
+vpshuflw $0, %zmm16, %zmm19
+vpshuflw $0, (%rax), %zmm19
+vpshuflw $0, %zmm16, %zmm19 {k1}
+vpshuflw $0, (%rax), %zmm19 {k1}
+vpshuflw $0, %zmm16, %zmm19 {z}{k1}
+vpshuflw $0, (%rax), %zmm19 {z}{k1}
+
vpsubb %zmm16, %zmm17, %zmm19
vpsubb (%rax), %zmm17, %zmm19
vpsubb %zmm16, %zmm17, %zmm19 {k1}
@@ -43,6 +71,34 @@ vpsubw (%rax), %zmm17, %zmm19
vpsubw %zmm16, %zmm17, %zmm19 {z}{k1}
vpsubw (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhbw %zmm16, %zmm17, %zmm19
+vpunpckhbw (%rax), %zmm17, %zmm19
+vpunpckhbw %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhbw (%rax), %zmm17, %zmm19 {k1}
+vpunpckhbw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhbw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpckhwd %zmm16, %zmm17, %zmm19
+vpunpckhwd (%rax), %zmm17, %zmm19
+vpunpckhwd %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhwd (%rax), %zmm17, %zmm19 {k1}
+vpunpckhwd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhwd (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklbw %zmm16, %zmm17, %zmm19
+vpunpcklbw (%rax), %zmm17, %zmm19
+vpunpcklbw %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklbw (%rax), %zmm17, %zmm19 {k1}
+vpunpcklbw %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklbw (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklwd %zmm16, %zmm17, %zmm19
+vpunpcklwd (%rax), %zmm17, %zmm19
+vpunpcklwd %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklwd (%rax), %zmm17, %zmm19 {k1}
+vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -76,6 +132,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19
# CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 {%k1}
@@ -88,6 +168,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
@@ -103,7 +207,7 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 20.00 8.00 9.00 9.00 - 8.00 - -
+# CHECK-NEXT: - - 20.00 8.00 21.00 21.00 - 62.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -131,6 +235,30 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshuflw $0, (%rax), %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshuflw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshuflw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshuflw $0, (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %zmm16, %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1}
@@ -143,3 +271,27 @@ vpsubw (%rax), %zmm17, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s Fri Jan 25 01:17:30 2019
@@ -57,6 +57,48 @@ vpaddw (%rax), %ymm17, %ymm19
vpaddw %ymm16, %ymm17, %ymm19 {z}{k1}
vpaddw (%rax), %ymm17, %ymm19 {z}{k1}
+vpermw %xmm16, %xmm17, %xmm19
+vpermw (%rax), %xmm17, %xmm19
+vpermw %xmm16, %xmm17, %xmm19 {k1}
+vpermw (%rax), %xmm17, %xmm19 {k1}
+vpermw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpermw %ymm16, %ymm17, %ymm19
+vpermw (%rax), %ymm17, %ymm19
+vpermw %ymm16, %ymm17, %ymm19 {k1}
+vpermw (%rax), %ymm17, %ymm19 {k1}
+vpermw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpshufb %xmm16, %xmm17, %xmm19
+vpshufb (%rax), %xmm17, %xmm19
+vpshufb %xmm16, %xmm17, %xmm19 {k1}
+vpshufb (%rax), %xmm17, %xmm19 {k1}
+vpshufb %xmm16, %xmm17, %xmm19 {z}{k1}
+vpshufb (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpshufb %ymm16, %ymm17, %ymm19
+vpshufb (%rax), %ymm17, %ymm19
+vpshufb %ymm16, %ymm17, %ymm19 {k1}
+vpshufb (%rax), %ymm17, %ymm19 {k1}
+vpshufb %ymm16, %ymm17, %ymm19 {z}{k1}
+vpshufb (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpshufhw $0, %xmm16, %xmm19
+vpshufhw $0, (%rax), %xmm19
+vpshufhw $0, %xmm16, %xmm19 {k1}
+vpshufhw $0, (%rax), %xmm19 {k1}
+vpshufhw $0, %xmm16, %xmm19 {z}{k1}
+vpshufhw $0, (%rax), %xmm19 {z}{k1}
+
+vpshufhw $0, %ymm16, %ymm19
+vpshufhw $0, (%rax), %ymm19
+vpshufhw $0, %ymm16, %ymm19 {k1}
+vpshufhw $0, (%rax), %ymm19 {k1}
+vpshufhw $0, %ymm16, %ymm19 {z}{k1}
+vpshufhw $0, (%rax), %ymm19 {z}{k1}
+
vpsubb %xmm16, %xmm17, %xmm19
vpsubb (%rax), %xmm17, %xmm19
vpsubb %xmm16, %xmm17, %xmm19 {k1}
@@ -85,6 +127,62 @@ vpsubw (%rax), %ymm17, %ymm19
vpsubw %ymm16, %ymm17, %ymm19 {z}{k1}
vpsubw (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckhbw %xmm16, %xmm17, %xmm19
+vpunpckhbw (%rax), %xmm17, %xmm19
+vpunpckhbw %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhbw (%rax), %xmm17, %xmm19 {k1}
+vpunpckhbw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhbw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhbw %ymm16, %ymm17, %ymm19
+vpunpckhbw (%rax), %ymm17, %ymm19
+vpunpckhbw %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhbw (%rax), %ymm17, %ymm19 {k1}
+vpunpckhbw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhbw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpckhwd %xmm16, %xmm17, %xmm19
+vpunpckhwd (%rax), %xmm17, %xmm19
+vpunpckhwd %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhwd (%rax), %xmm17, %xmm19 {k1}
+vpunpckhwd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhwd (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhwd %ymm16, %ymm17, %ymm19
+vpunpckhwd (%rax), %ymm17, %ymm19
+vpunpckhwd %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhwd (%rax), %ymm17, %ymm19 {k1}
+vpunpckhwd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhwd (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklbw %xmm16, %xmm17, %xmm19
+vpunpcklbw (%rax), %xmm17, %xmm19
+vpunpcklbw %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklbw (%rax), %xmm17, %xmm19 {k1}
+vpunpcklbw %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklbw (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklbw %ymm16, %ymm17, %ymm19
+vpunpcklbw (%rax), %ymm17, %ymm19
+vpunpcklbw %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklbw (%rax), %ymm17, %ymm19 {k1}
+vpunpcklbw %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklbw (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklwd %xmm16, %xmm17, %xmm19
+vpunpcklwd (%rax), %xmm17, %xmm19
+vpunpcklwd %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklwd (%rax), %xmm17, %xmm19 {k1}
+vpunpcklwd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklwd (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklwd %ymm16, %ymm17, %ymm19
+vpunpcklwd (%rax), %ymm17, %ymm19
+vpunpcklwd %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklwd (%rax), %ymm17, %ymm19 {k1}
+vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -142,6 +240,42 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 6 2.00 vpermw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 3 12 2.00 * vpermw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 6 2.00 vpermw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 3 12 2.00 * vpermw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 6 2.00 vpermw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 3 12 2.00 * vpermw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -166,6 +300,54 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 0.33 vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
@@ -181,7 +363,7 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 28.00 28.00 18.00 18.00 - 16.00 - -
+# CHECK-NEXT: - - 28.00 28.00 39.00 39.00 - 112.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -233,6 +415,42 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 2.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufhw $0, (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %xmm16, %xmm17, %xmm19 {%k1}
@@ -257,3 +475,51 @@ vpsubw (%rax), %ymm17, %ymm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s?rev=352179&r1=352178&r2=352179&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s Fri Jan 25 01:17:30 2019
@@ -121,6 +121,246 @@ vmulps %ymm16, %ymm17, %ymm19
vmulps (%rax), %ymm17, %ymm19 {z}{k1}
vmulps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vpermd %ymm16, %ymm17, %ymm19
+vpermd (%rax), %ymm17, %ymm19
+vpermd (%rax){1to8}, %ymm17, %ymm19
+vpermd %ymm16, %ymm17, %ymm19 {k1}
+vpermd (%rax), %ymm17, %ymm19 {k1}
+vpermd (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermd (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermilpd $0, %xmm16, %xmm19
+vpermilpd $0, (%rax), %xmm19
+vpermilpd $0, (%rax){1to2}, %xmm19
+vpermilpd $0, %xmm16, %xmm19 {k1}
+vpermilpd $0, (%rax), %xmm19 {k1}
+vpermilpd $0, (%rax){1to2}, %xmm19 {k1}
+vpermilpd $0, %xmm16, %xmm19 {z}{k1}
+vpermilpd $0, (%rax), %xmm19 {z}{k1}
+vpermilpd $0, (%rax){1to2}, %xmm19 {z}{k1}
+
+vpermilpd $0, %ymm16, %ymm19
+vpermilpd $0, (%rax), %ymm19
+vpermilpd $0, (%rax){1to4}, %ymm19
+vpermilpd $0, %ymm16, %ymm19 {k1}
+vpermilpd $0, (%rax), %ymm19 {k1}
+vpermilpd $0, (%rax){1to4}, %ymm19 {k1}
+vpermilpd $0, %ymm16, %ymm19 {z}{k1}
+vpermilpd $0, (%rax), %ymm19 {z}{k1}
+vpermilpd $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermilpd %xmm16, %xmm17, %xmm19
+vpermilpd (%rax), %xmm17, %xmm19
+vpermilpd (%rax){1to2}, %xmm17, %xmm19
+vpermilpd %xmm16, %xmm17, %xmm19 {k1}
+vpermilpd (%rax), %xmm17, %xmm19 {k1}
+vpermilpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpermilpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilpd (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vpermilpd %ymm16, %ymm17, %ymm19
+vpermilpd (%rax), %ymm17, %ymm19
+vpermilpd (%rax){1to4}, %ymm17, %ymm19
+vpermilpd %ymm16, %ymm17, %ymm19 {k1}
+vpermilpd (%rax), %ymm17, %ymm19 {k1}
+vpermilpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermilpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilpd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermilps $0, %xmm16, %xmm19
+vpermilps $0, (%rax), %xmm19
+vpermilps $0, (%rax){1to4}, %xmm19
+vpermilps $0, %xmm16, %xmm19 {k1}
+vpermilps $0, (%rax), %xmm19 {k1}
+vpermilps $0, (%rax){1to4}, %xmm19 {k1}
+vpermilps $0, %xmm16, %xmm19 {z}{k1}
+vpermilps $0, (%rax), %xmm19 {z}{k1}
+vpermilps $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpermilps $0, %ymm16, %ymm19
+vpermilps $0, (%rax), %ymm19
+vpermilps $0, (%rax){1to8}, %ymm19
+vpermilps $0, %ymm16, %ymm19 {k1}
+vpermilps $0, (%rax), %ymm19 {k1}
+vpermilps $0, (%rax){1to8}, %ymm19 {k1}
+vpermilps $0, %ymm16, %ymm19 {z}{k1}
+vpermilps $0, (%rax), %ymm19 {z}{k1}
+vpermilps $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpermilps %xmm16, %xmm17, %xmm19
+vpermilps (%rax), %xmm17, %xmm19
+vpermilps (%rax){1to4}, %xmm17, %xmm19
+vpermilps %xmm16, %xmm17, %xmm19 {k1}
+vpermilps (%rax), %xmm17, %xmm19 {k1}
+vpermilps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpermilps %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilps (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpermilps %ymm16, %ymm17, %ymm19
+vpermilps (%rax), %ymm17, %ymm19
+vpermilps (%rax){1to8}, %ymm17, %ymm19
+vpermilps %ymm16, %ymm17, %ymm19 {k1}
+vpermilps (%rax), %ymm17, %ymm19 {k1}
+vpermilps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermilps %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilps (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermpd $0, %ymm16, %ymm19
+vpermpd $0, (%rax), %ymm19
+vpermpd $0, (%rax){1to4}, %ymm19
+vpermpd $0, %ymm16, %ymm19 {k1}
+vpermpd $0, (%rax), %ymm19 {k1}
+vpermpd $0, (%rax){1to4}, %ymm19 {k1}
+vpermpd $0, %ymm16, %ymm19 {z}{k1}
+vpermpd $0, (%rax), %ymm19 {z}{k1}
+vpermpd $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermpd %ymm16, %ymm17, %ymm19
+vpermpd (%rax), %ymm17, %ymm19
+vpermpd (%rax){1to4}, %ymm17, %ymm19
+vpermpd %ymm16, %ymm17, %ymm19 {k1}
+vpermpd (%rax), %ymm17, %ymm19 {k1}
+vpermpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermpd (%rax), %ymm17, %ymm19 {z}{k1}
+vpermpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermps %ymm16, %ymm17, %ymm19
+vpermps (%rax), %ymm17, %ymm19
+vpermps (%rax){1to8}, %ymm17, %ymm19
+vpermps %ymm16, %ymm17, %ymm19 {k1}
+vpermps (%rax), %ymm17, %ymm19 {k1}
+vpermps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermps %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermps (%rax), %ymm17, %ymm19 {z}{k1}
+vpermps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermq $0, %ymm16, %ymm19
+vpermq $0, (%rax), %ymm19
+vpermq $0, (%rax){1to4}, %ymm19
+vpermq $0, %ymm16, %ymm19 {k1}
+vpermq $0, (%rax), %ymm19 {k1}
+vpermq $0, (%rax){1to4}, %ymm19 {k1}
+vpermq $0, %ymm16, %ymm19 {z}{k1}
+vpermq $0, (%rax), %ymm19 {z}{k1}
+vpermq $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermq %ymm16, %ymm17, %ymm19
+vpermq (%rax), %ymm17, %ymm19
+vpermq (%rax){1to4}, %ymm17, %ymm19
+vpermq %ymm16, %ymm17, %ymm19 {k1}
+vpermq (%rax), %ymm17, %ymm19 {k1}
+vpermq (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermq (%rax), %ymm17, %ymm19 {z}{k1}
+vpermq (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpshufd $0, %xmm16, %xmm19
+vpshufd $0, (%rax), %xmm19
+vpshufd $0, (%rax){1to4}, %xmm19
+vpshufd $0, %xmm16, %xmm19 {k1}
+vpshufd $0, (%rax), %xmm19 {k1}
+vpshufd $0, (%rax){1to4}, %xmm19 {k1}
+vpshufd $0, %xmm16, %xmm19 {z}{k1}
+vpshufd $0, (%rax), %xmm19 {z}{k1}
+vpshufd $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpshufd $0, %ymm16, %ymm19
+vpshufd $0, (%rax), %ymm19
+vpshufd $0, (%rax){1to8}, %ymm19
+vpshufd $0, %ymm16, %ymm19 {k1}
+vpshufd $0, (%rax), %ymm19 {k1}
+vpshufd $0, (%rax){1to8}, %ymm19 {k1}
+vpshufd $0, %ymm16, %ymm19 {z}{k1}
+vpshufd $0, (%rax), %ymm19 {z}{k1}
+vpshufd $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpunpckhdq %xmm16, %xmm17, %xmm19
+vpunpckhdq (%rax), %xmm17, %xmm19
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+vpunpckhdq %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhdq (%rax), %xmm17, %xmm19 {k1}
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckhdq %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhdq (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckhdq %ymm16, %ymm17, %ymm19
+vpunpckhdq (%rax), %ymm17, %ymm19
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+vpunpckhdq %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhdq (%rax), %ymm17, %ymm19 {k1}
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckhdq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhdq (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpunpckldq %xmm16, %xmm17, %xmm19
+vpunpckldq (%rax), %xmm17, %xmm19
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+vpunpckldq %xmm16, %xmm17, %xmm19 {k1}
+vpunpckldq (%rax), %xmm17, %xmm19 {k1}
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckldq %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckldq (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckldq %ymm16, %ymm17, %ymm19
+vpunpckldq (%rax), %ymm17, %ymm19
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+vpunpckldq %ymm16, %ymm17, %ymm19 {k1}
+vpunpckldq (%rax), %ymm17, %ymm19 {k1}
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckldq %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckldq (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+vshuff32x4 $0, (%rax), %ymm17, %ymm19
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff32x4 $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff32x4 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+vshuff64x2 $0, (%rax), %ymm17, %ymm19
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff64x2 $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+vshufi32x4 $0, (%rax), %ymm17, %ymm19
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi32x4 $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi32x4 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+vshufi64x2 $0, (%rax), %ymm17, %ymm19
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi64x2 $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
vsubpd %xmm16, %xmm17, %xmm19
vsubpd (%rax), %xmm17, %xmm19
vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -161,6 +401,86 @@ vsubps %ymm16, %ymm17, %ymm19
vsubps (%rax), %ymm17, %ymm19 {z}{k1}
vsubps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vunpckhpd %xmm16, %xmm17, %xmm19
+vunpckhpd (%rax), %xmm17, %xmm19
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+vunpckhpd %xmm16, %xmm17, %xmm19 {k1}
+vunpckhpd (%rax), %xmm17, %xmm19 {k1}
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpckhpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhpd (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhpd %ymm16, %ymm17, %ymm19
+vunpckhpd (%rax), %ymm17, %ymm19
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+vunpckhpd %ymm16, %ymm17, %ymm19 {k1}
+vunpckhpd (%rax), %ymm17, %ymm19 {k1}
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpckhpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhpd (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpckhps %xmm16, %xmm17, %xmm19
+vunpckhps (%rax), %xmm17, %xmm19
+vunpckhps (%rax){1to4}, %xmm17, %xmm19
+vunpckhps %xmm16, %xmm17, %xmm19 {k1}
+vunpckhps (%rax), %xmm17, %xmm19 {k1}
+vunpckhps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpckhps %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhps (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhps %ymm16, %ymm17, %ymm19
+vunpckhps (%rax), %ymm17, %ymm19
+vunpckhps (%rax){1to8}, %ymm17, %ymm19
+vunpckhps %ymm16, %ymm17, %ymm19 {k1}
+vunpckhps (%rax), %ymm17, %ymm19 {k1}
+vunpckhps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpckhps %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhps (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklpd %xmm16, %xmm17, %xmm19
+vunpcklpd (%rax), %xmm17, %xmm19
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+vunpcklpd %xmm16, %xmm17, %xmm19 {k1}
+vunpcklpd (%rax), %xmm17, %xmm19 {k1}
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpcklpd %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklpd (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklpd %ymm16, %ymm17, %ymm19
+vunpcklpd (%rax), %ymm17, %ymm19
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+vunpcklpd %ymm16, %ymm17, %ymm19 {k1}
+vunpcklpd (%rax), %ymm17, %ymm19 {k1}
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpcklpd %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklpd (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklps %xmm16, %xmm17, %xmm19
+vunpcklps (%rax), %xmm17, %xmm19
+vunpcklps (%rax){1to4}, %xmm17, %xmm19
+vunpcklps %xmm16, %xmm17, %xmm19 {k1}
+vunpcklps (%rax), %xmm17, %xmm19 {k1}
+vunpcklps (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpcklps %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklps (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklps (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklps %ymm16, %ymm17, %ymm19
+vunpcklps (%rax), %ymm17, %ymm19
+vunpcklps (%rax){1to8}, %ymm17, %ymm19
+vunpcklps %ymm16, %ymm17, %ymm19 {k1}
+vunpcklps (%rax), %ymm17, %ymm19 {k1}
+vunpcklps (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpcklps %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklps (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
@@ -278,6 +598,222 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: 1 4 0.50 vmulps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vmulps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpermilps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermq $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vpermq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 4 0.50 vsubpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 10 0.50 * vsubpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 10 0.50 * vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -314,6 +850,78 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: 1 4 0.50 vsubps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vsubps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpckhps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 1 1.00 vunpcklps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 8 1.00 * vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
@@ -329,7 +937,7 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 180.00 90.00 54.00 48.00 48.00 - - - -
+# CHECK-NEXT: - 180.00 90.00 54.00 144.00 144.00 - 288.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -441,6 +1049,222 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmulps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermilps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermilps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshuff64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshuff64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi32x4 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi32x4 $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vsubpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubpd (%rax){1to2}, %xmm17, %xmm19
@@ -477,3 +1301,75 @@ vsubps (%rax){1to8}, %ymm17,
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vsubps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpckhps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpckhps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vunpcklps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vunpcklps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
More information about the llvm-commits
mailing list