[MCA][X86] Add missing PACKSS/PACKUS from AVX512BW/AVX512BWVL tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 10 Dec 2021 15:18:30 +0000 (15:18 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 10 Dec 2021 15:59:51 +0000 (15:59 +0000)
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s

index 152aa4a..699fc76 100644 (file)
@@ -34,6 +34,34 @@ vpabsw            (%rax), %zmm19 {k1}
 vpabsw            %zmm16, %zmm19 {z}{k1}
 vpabsw            (%rax), %zmm19 {z}{k1}
 
+vpackssdw         %zmm16, %zmm17, %zmm19
+vpackssdw         (%rax), %zmm17, %zmm19
+vpackssdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {k1}
+vpackssdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpacksswb         %zmm16, %zmm17, %zmm19
+vpacksswb         (%rax), %zmm17, %zmm19
+vpacksswb         %zmm16, %zmm17, %zmm19 {k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {k1}
+vpacksswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackusdw         %zmm16, %zmm17, %zmm19
+vpackusdw         (%rax), %zmm17, %zmm19
+vpackusdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {k1}
+vpackusdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackuswb         %zmm16, %zmm17, %zmm19
+vpackuswb         (%rax), %zmm17, %zmm19
+vpackuswb         %zmm16, %zmm17, %zmm19 {k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {k1}
+vpackuswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
 vpaddb            %zmm16, %zmm17, %zmm19
 vpaddb            (%rax), %zmm17, %zmm19
 vpaddb            %zmm16, %zmm17, %zmm19 {k1}
@@ -223,6 +251,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  1      1     0.50                        vpabsw %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.50                        vpaddb %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  2      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  1      1     0.50                        vpaddb %zmm16, %zmm17, %zmm19 {%k1}
@@ -360,7 +412,7 @@ vpmovw2m          %zmm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     10.67  47.67   -     95.67  33.00  33.00
+# CHECK-NEXT:  -      -     10.67  47.67   -     119.67 39.00  39.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -394,6 +446,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw   (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsw   %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb   %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddb   (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb   %zmm16, %zmm17, %zmm19 {%k1}
index 459b994..a1e8b43 100644 (file)
@@ -29,6 +29,62 @@ vpabsw            (%rax), %ymm19 {k1}
 vpabsw            %ymm16, %ymm19 {z}{k1}
 vpabsw            (%rax), %ymm19 {z}{k1}
 
+vpackssdw         %xmm16, %xmm17, %xmm19
+vpackssdw         (%rax), %xmm17, %xmm19
+vpackssdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {k1}
+vpackssdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackssdw         %ymm16, %ymm17, %ymm19
+vpackssdw         (%rax), %ymm17, %ymm19
+vpackssdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {k1}
+vpackssdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpacksswb         %xmm16, %xmm17, %xmm19
+vpacksswb         (%rax), %xmm17, %xmm19
+vpacksswb         %xmm16, %xmm17, %xmm19 {k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {k1}
+vpacksswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpacksswb         %ymm16, %ymm17, %ymm19
+vpacksswb         (%rax), %ymm17, %ymm19
+vpacksswb         %ymm16, %ymm17, %ymm19 {k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {k1}
+vpacksswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackusdw         %xmm16, %xmm17, %xmm19
+vpackusdw         (%rax), %xmm17, %xmm19
+vpackusdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {k1}
+vpackusdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackusdw         %ymm16, %ymm17, %ymm19
+vpackusdw         (%rax), %ymm17, %ymm19
+vpackusdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {k1}
+vpackusdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackuswb         %xmm16, %xmm17, %xmm19
+vpackuswb         (%rax), %xmm17, %xmm19
+vpackuswb         %xmm16, %xmm17, %xmm19 {k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {k1}
+vpackuswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackuswb         %ymm16, %ymm17, %ymm19
+vpackuswb         (%rax), %ymm17, %ymm19
+vpackuswb         %ymm16, %ymm17, %ymm19 {k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {k1}
+vpackuswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
 vpaddb            %xmm16, %xmm17, %xmm19
 vpaddb            (%rax), %xmm17, %xmm19
 vpaddb            %xmm16, %xmm17, %xmm19 {k1}
@@ -362,6 +418,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  1      1     0.50                        vpabsw %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpackssdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpacksswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpackusdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpackuswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.50                        vpaddb %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  2      7     0.50    *                   vpaddb (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  1      1     0.50                        vpaddb %xmm16, %xmm17, %xmm19 {%k1}
@@ -623,7 +727,7 @@ vpmovw2m          %ymm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     13.33  105.33  -     153.33 66.00  66.00
+# CHECK-NEXT:  -      -     13.33  117.33  -     189.33 78.00  78.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -651,6 +755,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw   (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpabsw   %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpabsw   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackssdw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackssdw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackssdw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackssdw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackssdw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackssdw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackssdw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackssdw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpacksswb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpacksswb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpacksswb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpacksswb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpacksswb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpacksswb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpacksswb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpacksswb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackusdw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackusdw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackusdw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackusdw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackusdw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackusdw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackusdw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackusdw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackuswb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackuswb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackuswb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackuswb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpackuswb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpackuswb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpackuswb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vpackuswb        (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb   %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpaddb   (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpaddb   %xmm16, %xmm17, %xmm19 {%k1}
index 5e76341..d90d605 100644 (file)
@@ -34,6 +34,34 @@ vpabsw            (%rax), %zmm19 {k1}
 vpabsw            %zmm16, %zmm19 {z}{k1}
 vpabsw            (%rax), %zmm19 {z}{k1}
 
+vpackssdw         %zmm16, %zmm17, %zmm19
+vpackssdw         (%rax), %zmm17, %zmm19
+vpackssdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {k1}
+vpackssdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpacksswb         %zmm16, %zmm17, %zmm19
+vpacksswb         (%rax), %zmm17, %zmm19
+vpacksswb         %zmm16, %zmm17, %zmm19 {k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {k1}
+vpacksswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackusdw         %zmm16, %zmm17, %zmm19
+vpackusdw         (%rax), %zmm17, %zmm19
+vpackusdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {k1}
+vpackusdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackuswb         %zmm16, %zmm17, %zmm19
+vpackuswb         (%rax), %zmm17, %zmm19
+vpackuswb         %zmm16, %zmm17, %zmm19 {k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {k1}
+vpackuswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
 vpaddb            %zmm16, %zmm17, %zmm19
 vpaddb            (%rax), %zmm17, %zmm19
 vpaddb            %zmm16, %zmm17, %zmm19 {k1}
@@ -223,6 +251,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  2      8     1.00    *                   vpabsw (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  1      1     1.00                        vpabsw %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      8     1.00    *                   vpabsw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.33                        vpaddb %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  2      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  1      1     0.33                        vpaddb %zmm16, %zmm17, %zmm19 {%k1}
@@ -364,7 +416,7 @@ vpmovw2m          %zmm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT:  -      -     32.50  8.50   33.00  33.00   -     118.50 0.50    -      -      -
+# CHECK-NEXT:  -      -     32.50  8.50   39.00  39.00   -     142.50 0.50    -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -398,6 +450,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vpabsw       (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -      -      -     vpabsw       %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vpabsw       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -      -      -     vpaddb       %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vpaddb       (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -      -      -     vpaddb       %zmm16, %zmm17, %zmm19 {%k1}
index f66ad84..ff55711 100644 (file)
@@ -29,6 +29,62 @@ vpabsw            (%rax), %ymm19 {k1}
 vpabsw            %ymm16, %ymm19 {z}{k1}
 vpabsw            (%rax), %ymm19 {z}{k1}
 
+vpackssdw         %xmm16, %xmm17, %xmm19
+vpackssdw         (%rax), %xmm17, %xmm19
+vpackssdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {k1}
+vpackssdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackssdw         %ymm16, %ymm17, %ymm19
+vpackssdw         (%rax), %ymm17, %ymm19
+vpackssdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {k1}
+vpackssdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpacksswb         %xmm16, %xmm17, %xmm19
+vpacksswb         (%rax), %xmm17, %xmm19
+vpacksswb         %xmm16, %xmm17, %xmm19 {k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {k1}
+vpacksswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpacksswb         %ymm16, %ymm17, %ymm19
+vpacksswb         (%rax), %ymm17, %ymm19
+vpacksswb         %ymm16, %ymm17, %ymm19 {k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {k1}
+vpacksswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackusdw         %xmm16, %xmm17, %xmm19
+vpackusdw         (%rax), %xmm17, %xmm19
+vpackusdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {k1}
+vpackusdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackusdw         %ymm16, %ymm17, %ymm19
+vpackusdw         (%rax), %ymm17, %ymm19
+vpackusdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {k1}
+vpackusdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackuswb         %xmm16, %xmm17, %xmm19
+vpackuswb         (%rax), %xmm17, %xmm19
+vpackuswb         %xmm16, %xmm17, %xmm19 {k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {k1}
+vpackuswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackuswb         %ymm16, %ymm17, %ymm19
+vpackuswb         (%rax), %ymm17, %ymm19
+vpackuswb         %ymm16, %ymm17, %ymm19 {k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {k1}
+vpackuswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
 vpaddb            %xmm16, %xmm17, %xmm19
 vpaddb            (%rax), %xmm17, %xmm19
 vpaddb            %xmm16, %xmm17, %xmm19 {k1}
@@ -362,6 +418,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  1      1     0.50                        vpabsw %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.33                        vpaddb %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  2      7     0.50    *                   vpaddb (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  1      1     0.33                        vpaddb %xmm16, %xmm17, %xmm19 {%k1}
@@ -627,7 +731,7 @@ vpmovw2m          %ymm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT:  -      -     33.00  29.00  66.00  66.00   -     221.00 1.00    -      -      -
+# CHECK-NEXT:  -      -     33.00  29.00  78.00  78.00   -     269.00 1.00    -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -655,6 +759,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vpabsw       (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vpabsw       %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vpabsw       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackssdw    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackssdw    (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpacksswb    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpacksswb    (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackusdw    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackusdw    (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpackuswb    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -      -      -     vpackuswb    (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -      -      -     vpaddb       %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vpaddb       (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -      -      -     vpaddb       %xmm16, %xmm17, %xmm19 {%k1}
index b10a886..07bce68 100644 (file)
@@ -34,6 +34,34 @@ vpabsw            (%rax), %zmm19 {k1}
 vpabsw            %zmm16, %zmm19 {z}{k1}
 vpabsw            (%rax), %zmm19 {z}{k1}
 
+vpackssdw         %zmm16, %zmm17, %zmm19
+vpackssdw         (%rax), %zmm17, %zmm19
+vpackssdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {k1}
+vpackssdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpacksswb         %zmm16, %zmm17, %zmm19
+vpacksswb         (%rax), %zmm17, %zmm19
+vpacksswb         %zmm16, %zmm17, %zmm19 {k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {k1}
+vpacksswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackusdw         %zmm16, %zmm17, %zmm19
+vpackusdw         (%rax), %zmm17, %zmm19
+vpackusdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {k1}
+vpackusdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackuswb         %zmm16, %zmm17, %zmm19
+vpackuswb         (%rax), %zmm17, %zmm19
+vpackuswb         %zmm16, %zmm17, %zmm19 {k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {k1}
+vpackuswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
 vpaddb            %zmm16, %zmm17, %zmm19
 vpaddb            (%rax), %zmm17, %zmm19
 vpaddb            %zmm16, %zmm17, %zmm19 {k1}
@@ -223,6 +251,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  2      8     1.00    *                   vpabsw (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  1      1     1.00                        vpabsw %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      8     1.00    *                   vpabsw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.33                        vpaddb %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  2      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  1      1     0.33                        vpaddb %zmm16, %zmm17, %zmm19 {%k1}
@@ -362,7 +414,7 @@ vpmovw2m          %zmm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     32.50  8.50   33.00  33.00   -     118.50 0.50    -
+# CHECK-NEXT:  -      -     32.50  8.50   39.00  39.00   -     142.50 0.50    -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -396,6 +448,30 @@ vpmovw2m          %zmm0, %k0
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vpabsw     (%rax), %zmm19 {%k1}
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     vpabsw     %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vpabsw     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %zmm17, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     vpaddb     %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vpaddb     (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     vpaddb     %zmm16, %zmm17, %zmm19 {%k1}
index 5534212..966c879 100644 (file)
@@ -29,6 +29,62 @@ vpabsw            (%rax), %ymm19 {k1}
 vpabsw            %ymm16, %ymm19 {z}{k1}
 vpabsw            (%rax), %ymm19 {z}{k1}
 
+vpackssdw         %xmm16, %xmm17, %xmm19
+vpackssdw         (%rax), %xmm17, %xmm19
+vpackssdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {k1}
+vpackssdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackssdw         %ymm16, %ymm17, %ymm19
+vpackssdw         (%rax), %ymm17, %ymm19
+vpackssdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {k1}
+vpackssdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpacksswb         %xmm16, %xmm17, %xmm19
+vpacksswb         (%rax), %xmm17, %xmm19
+vpacksswb         %xmm16, %xmm17, %xmm19 {k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {k1}
+vpacksswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpacksswb         %ymm16, %ymm17, %ymm19
+vpacksswb         (%rax), %ymm17, %ymm19
+vpacksswb         %ymm16, %ymm17, %ymm19 {k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {k1}
+vpacksswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackusdw         %xmm16, %xmm17, %xmm19
+vpackusdw         (%rax), %xmm17, %xmm19
+vpackusdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {k1}
+vpackusdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackusdw         %ymm16, %ymm17, %ymm19
+vpackusdw         (%rax), %ymm17, %ymm19
+vpackusdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {k1}
+vpackusdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackuswb         %xmm16, %xmm17, %xmm19
+vpackuswb         (%rax), %xmm17, %xmm19
+vpackuswb         %xmm16, %xmm17, %xmm19 {k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {k1}
+vpackuswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackuswb         %ymm16, %ymm17, %ymm19
+vpackuswb         (%rax), %ymm17, %ymm19
+vpackuswb         %ymm16, %ymm17, %ymm19 {k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {k1}
+vpackuswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
 vpaddb            %xmm16, %xmm17, %xmm19
 vpaddb            (%rax), %xmm17, %xmm19
 vpaddb            %xmm16, %xmm17, %xmm19 {k1}
@@ -362,6 +418,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  1      1     0.50                        vpabsw %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  2      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      7     1.00    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  1      1     0.33                        vpaddb %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  2      7     0.50    *                   vpaddb (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  1      1     0.33                        vpaddb %xmm16, %xmm17, %xmm19 {%k1}
@@ -625,7 +729,7 @@ vpmovw2m          %ymm0, %k0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     33.00  29.00  66.00  66.00   -     221.00 1.00    -
+# CHECK-NEXT:  -      -     33.00  29.00  78.00  78.00   -     269.00 1.00    -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -653,6 +757,54 @@ vpmovw2m          %ymm0, %k0
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpabsw     (%rax), %ymm19 {%k1}
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpabsw     %ymm16, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpabsw     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackssdw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackssdw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpacksswb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpacksswb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackusdw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackusdw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpackuswb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpackuswb  (%rax), %ymm17, %ymm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     vpaddb     %xmm16, %xmm17, %xmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     vpaddb     (%rax), %xmm17, %xmm19
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     vpaddb     %xmm16, %xmm17, %xmm19 {%k1}