[LLVM-MCA][X86] Add missing VCMPESTR/VCMPESTR tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 30 Sep 2018 18:19:00 +0000 (18:19 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 30 Sep 2018 18:19:00 +0000 (18:19 +0000)
llvm-svn: 343421

llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s

index aa3a173..36ecc06 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      6     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      6     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      18    4.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      23    4.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  9      19    4.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  10     24    4.00    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      6     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      10    1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      6     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      9     1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1716,7 +1736,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     257.00 186.67 234.67 174.17 174.17 38.00  428.67 1.00   12.67
+# CHECK-NEXT:  -     257.00 216.33 236.33 176.17 176.17 38.00  442.33 2.00   12.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2103,6 +2123,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpeqq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpeqw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpeqw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25    -      -      -     3.25   0.25    -     vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25   0.50   0.50    -     3.25   0.25    -     vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58    -      -      -     3.58   0.25    -     vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58   0.50   0.50    -     3.58   0.25    -     vpcmpestrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtb   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpgtb   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtd   %xmm0, %xmm1, %xmm2
@@ -2111,6 +2135,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vpcmpgtq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpgtw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vperm2f128 $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vperm2f128 $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpermilpd  $1, %xmm0, %xmm2
index f74baec..149f2e4 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  1      6     1.00    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  9      14    5.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      19    5.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  9      14    5.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      19    5.00    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  1      6     1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      7     2.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  3      12    2.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      8     2.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  3      13    2.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  2      1     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      6     1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     0.50                        vpermilpd      $1, %xmm0, %xmm2
@@ -1720,7 +1740,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 48.00   -      -     357.00 915.00 419.50 425.50 382.00  -     43.00  132.00 119.50 119.50 38.00
+# CHECK-NEXT: 56.00   -      -     365.00 915.00 423.50 437.50 394.00  -     51.00  132.00 131.50 155.50 38.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -2107,6 +2127,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   2.00    -     2.00    -     3.00   7.00    -     vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   3.00    -     2.00    -     3.00   7.00    -     vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   2.00    -     2.00    -     3.00   7.00    -     vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -      -     1.00   3.00    -     2.00    -     3.00   7.00    -     vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -2115,6 +2139,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00   2.00    -      -      -      -      -     2.00    -     vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00   2.00   1.00    -      -      -      -     2.00    -     vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00   2.00    -      -      -      -      -     2.00    -     vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00    -      -     1.00    -     1.00   2.00   1.00    -      -      -      -     2.00    -     vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -     vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00   1.00    -      -      -      -      -      -     vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -     vpermilpd      $1, %xmm0, %xmm2
index a12ca5a..6e67fa8 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.67                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      4     2.33    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      11    2.67                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    2.33    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      11    1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      8     1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1714,7 +1734,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -     572.00 225.17 307.67 39.00  354.17 177.50 177.50
+# CHECK-NEXT:  -     572.00 247.17 317.67 39.00  364.17 179.50 179.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2101,6 +2121,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpeqq (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpeqw %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     2.67   2.67    -     2.67    -      -     vpcmpestri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     2.33   2.33    -     2.33   0.50   0.50   vpcmpestri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     2.67   2.67    -     2.67    -      -     vpcmpestrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     2.33   2.33    -     2.33   0.50   0.50   vpcmpestrm       $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtb %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpgtb (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtd %xmm0, %xmm1, %xmm2
@@ -2109,6 +2133,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpcmpgtq (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtw %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -     vpcmpistri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -     0.50   0.50   vpcmpistri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -     vpcmpistrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -     0.50   0.50   vpcmpistrm       $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vperm2f128       $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vperm2f128       $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermilpd        $1, %xmm0, %xmm2
index 3b16d35..0158e53 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      18    4.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      24    4.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  9      19    4.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  10     25    4.00    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      11    1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      10    1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1716,7 +1736,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     336.00 186.00 236.00 174.17 174.17 38.00  432.00 1.00   12.67
+# CHECK-NEXT:  -     336.00 215.67 237.67 176.17 176.17 38.00  445.67 2.00   12.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2103,6 +2123,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpeqq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpeqw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpeqw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25    -      -      -     3.25   0.25    -     vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25   0.50   0.50    -     3.25   0.25    -     vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58    -      -      -     3.58   0.25    -     vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58   0.50   0.50    -     3.58   0.25    -     vpcmpestrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtb   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpgtb   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtd   %xmm0, %xmm1, %xmm2
@@ -2111,6 +2135,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vpcmpgtq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     vpcmpgtw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     vpcmpgtw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vperm2f128 $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vperm2f128 $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpermilpd  $1, %xmm0, %xmm2
index 9b2d019..1620d8c 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.67                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      4     2.33    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      11    2.67                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    2.33    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      11    1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      11    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      17    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      8     1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1714,7 +1734,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -     572.00 225.17 307.67 39.00  354.17 177.50 177.50
+# CHECK-NEXT:  -     572.00 247.17 317.67 39.00  364.17 179.50 179.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2101,6 +2121,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpeqq (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpeqw %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     2.67   2.67    -     2.67    -      -     vpcmpestri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     2.33   2.33    -     2.33   0.50   0.50   vpcmpestri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     2.67   2.67    -     2.67    -      -     vpcmpestrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     2.33   2.33    -     2.33   0.50   0.50   vpcmpestrm       $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtb %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpgtb (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtd %xmm0, %xmm1, %xmm2
@@ -2109,6 +2133,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpcmpgtq (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     vpcmpgtw %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -     vpcmpistri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -     0.50   0.50   vpcmpistri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -     vpcmpistrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -     0.50   0.50   vpcmpistrm       $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vperm2f128       $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   vperm2f128       $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     vpermilpd        $1, %xmm0, %xmm2
index f93ef08..2acf109 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      18    4.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      24    4.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  9      19    4.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  10     25    4.00    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      9     1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      10    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      10    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      10    1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1716,7 +1736,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     123.00 303.50 202.50 171.17 171.17 34.00  311.00 5.00   12.67
+# CHECK-NEXT:  -     123.00 333.17 204.17 173.17 173.17 34.00  324.67 6.00   12.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2103,6 +2123,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpeqq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpeqw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpeqw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25    -      -      -     3.25   0.25    -     vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25   0.50   0.50    -     3.25   0.25    -     vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58    -      -      -     3.58   0.25    -     vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58   0.50   0.50    -     3.58   0.25    -     vpcmpestrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtb   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpgtb   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtd   %xmm0, %xmm1, %xmm2
@@ -2111,6 +2135,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpcmpgtq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpgtw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vperm2f128 $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vperm2f128 $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpermilpd  $1, %xmm0, %xmm2
index f62c1fc..07c4064 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      18    4.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  9      24    4.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  9      19    4.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  10     25    4.00    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  2      9     1.00    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      10    3.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      10    3.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      16    3.00    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  2      10    1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     1.00                        vpermilpd      $1, %xmm0, %xmm2
@@ -1716,7 +1736,7 @@ vzeroupper
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     123.00 290.83 198.83 171.17 171.17 34.00  327.33 5.00   12.67
+# CHECK-NEXT:  -     123.00 320.50 200.50 173.17 173.17 34.00  341.00 6.00   12.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2103,6 +2123,10 @@ vzeroupper
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpeqq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpeqw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpeqw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25    -      -      -     3.25   0.25    -     vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.25   0.25   0.50   0.50    -     3.25   0.25    -     vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58    -      -      -     3.58   0.25    -     vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     4.58   0.58   0.50   0.50    -     3.58   0.25    -     vpcmpestrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtb   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpgtb   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtd   %xmm0, %xmm1, %xmm2
@@ -2111,6 +2135,10 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vpcmpgtq   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vpcmpgtw   %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vpcmpgtw   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -     3.00    -      -      -      -      -      -      -     vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     3.00    -     0.50   0.50    -      -      -      -     vpcmpistrm $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vperm2f128 $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     vperm2f128 $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     vpermilpd  $1, %xmm0, %xmm2
index e9a9399..18befbf 100644 (file)
@@ -565,6 +565,12 @@ vpcmpeqq          (%rax), %xmm1, %xmm2
 vpcmpeqw          %xmm0, %xmm1, %xmm2
 vpcmpeqw          (%rax), %xmm1, %xmm2
 
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
 vpcmpgtb          %xmm0, %xmm1, %xmm2
 vpcmpgtb          (%rax), %xmm1, %xmm2
 
@@ -577,6 +583,12 @@ vpcmpgtq          (%rax), %xmm1, %xmm2
 vpcmpgtw          %xmm0, %xmm1, %xmm2
 vpcmpgtw          (%rax), %xmm1, %xmm2
 
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
 vperm2f128        $1, %ymm0, %ymm1, %ymm2
 vperm2f128        $1, (%rax), %ymm1, %ymm2
 
@@ -1401,6 +1413,10 @@ vzeroupper
 # CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      100   0.25                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      100   0.25    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      100   0.25                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      100   0.25    *                   vpcmpestrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %xmm0, %xmm1, %xmm2
@@ -1409,6 +1425,10 @@ vzeroupper
 # CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %xmm0, %xmm1, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      100   0.25                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      100   0.25    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      100   0.25                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      100   0.25    *                   vpcmpistrm     $1, (%rax), %xmm2
 # CHECK-NEXT:  1      100   0.25                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  1      100   0.25    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  1      1     0.50                        vpermilpd      $1, %xmm0, %xmm2
@@ -2105,6 +2125,10 @@ vzeroupper
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpeqq     (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpeqw     %xmm0, %xmm1, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpeqw     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpestri   $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpestri   $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpestrm   $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpestrm   $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpgtb     %xmm0, %xmm1, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpgtb     (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpgtd     %xmm0, %xmm1, %xmm2
@@ -2113,6 +2137,10 @@ vzeroupper
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.50    -      -     0.50    -     vpcmpgtq     (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpgtw     %xmm0, %xmm1, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     vpcmpgtw     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpistri   $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpistri   $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpistrm   $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vpcmpistrm   $1, (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vperm2f128   $1, %ymm0, %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     vperm2f128   $1, (%rax), %ymm1, %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     vpermilpd    $1, %xmm0, %xmm2