]> granicus.if.org Git - llvm/commitdiff
[llvm-mca][X86] Add missing shuffle tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 25 Jan 2019 09:17:30 +0000 (09:17 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 25 Jan 2019 09:17:30 +0000 (09:17 +0000)
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352179 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-mca/X86/Generic/resources-avx512.s
test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s
test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s

index c9fcee8691443f698176408e48ffb741f94f1a13..68b4e5c6b0e356d8a8f1f0d263d4a2b332ab0f51 100644 (file)
@@ -101,6 +101,196 @@ vpaddq            %zmm16, %zmm17, %zmm19 {z}{k1}
 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 {z}{k1}
 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 
 # 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 # 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}
index 8d4091eb8c268cf69d75a062beafccf07bab023e..145192932f5bbba2d96710bdb88d3c36bb3aed81 100644 (file)
@@ -29,6 +29,34 @@ vpaddw            (%rax), %zmm17, %zmm19 {k1}
 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 {k1}
 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 {z}{k1}
 # 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 {z}{k1}
 # 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 {z}{k1}
 
 # 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 {z}{k1}
 # 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 {z}{k1}
 # 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}
index 5efa5a3cf1eccc718d1808a26d9606b53f290110..71c54b8f9411c112c01dc4c90bc8595ea2ea23f3 100644 (file)
@@ -57,6 +57,48 @@ vpaddw            (%rax), %ymm17, %ymm19 {k1}
 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 {k1}
 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 {z}{k1}
 # 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 {z}{k1}
 # 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 {z}{k1}
 
 # 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 {z}{k1}
 # 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 {z}{k1}
 # 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}
index 81358314d4a75dedf68f2ca9f443dbb2de002559..18d92507ed9854795818987f1d053f0dde4ef8ed 100644 (file)
@@ -121,6 +121,246 @@ vmulps            %ymm16, %ymm17, %ymm19 {z}{k1}
 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 {z}{k1}
 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 
 # 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 # 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}
index c2e955a61577a58a1e0fb511b8c0f99214dbe9dd..a9268b1cb1052dfb3037453528e71705d71fa5d0 100644 (file)
@@ -101,6 +101,196 @@ vpaddq            %zmm16, %zmm17, %zmm19 {z}{k1}
 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 {z}{k1}
 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 
 # 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, %zmm19 {z}{k1}
 # 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, %zmm19 {z}{k1}
 # 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}
index e9b502a6090b3b8ea274f218a61b161aaa5f1c20..a73e63c846f7264ea7214cae62b247687dcbbeee 100644 (file)
@@ -29,6 +29,34 @@ vpaddw            (%rax), %zmm17, %zmm19 {k1}
 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 {k1}
 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 {z}{k1}
 # 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 {z}{k1}
 # 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 {z}{k1}
 
 # 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 {z}{k1}
 # 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 {z}{k1}
 # 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}
index 0eedb6eaf2bdb0eae4c974119fbfc79e47743790..2939f1cbe4964173890a61594d9f4b2b726d0d05 100644 (file)
@@ -57,6 +57,48 @@ vpaddw            (%rax), %ymm17, %ymm19 {k1}
 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 {k1}
 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 {z}{k1}
 # 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 {z}{k1}
 # 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 {z}{k1}
 
 # 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 {z}{k1}
 # 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 {z}{k1}
 # 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}
index 3ec9efc028af568d98ae5c2650ca007313d8ba6a..44b26d7ca2631e0089621fd508b2e475fe1ceb6c 100644 (file)
@@ -121,6 +121,246 @@ vmulps            %ymm16, %ymm17, %ymm19 {z}{k1}
 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 {z}{k1}
 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 
 # 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, %ymm19 {z}{k1}
 # 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, %ymm19 {z}{k1}
 # 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}