]> granicus.if.org Git - llvm/commitdiff
[llvm-mca][X86] Add missing mfence/pinsrw tests
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 22 Jan 2019 16:01:08 +0000 (16:01 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 22 Jan 2019 16:01:08 +0000 (16:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351831 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-mca/X86/Atom/resources-sse2.s
test/tools/llvm-mca/X86/BdVer2/resources-sse2.s
test/tools/llvm-mca/X86/Broadwell/resources-sse2.s
test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
test/tools/llvm-mca/X86/Generic/resources-sse2.s
test/tools/llvm-mca/X86/Haswell/resources-sse2.s
test/tools/llvm-mca/X86/SLM/resources-sse2.s
test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s
test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
test/tools/llvm-mca/X86/Znver1/resources-sse2.s

index e1e903943ece8d75a4c7b6fc4bedc44074991956..3f65619e0f59f404e48f0be7c49c1c15915b1284 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      7     3.50    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      5     5.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  1      5     5.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      6     3.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     3.50    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      5     5.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  1      4     2.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  1      1     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      5     5.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  1      5     5.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -673,7 +681,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 868.50 638.50
+# CHECK-NEXT: 871.50 638.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -740,6 +748,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 3.50   3.50   maxpd      (%rax), %xmm2
 # CHECK-NEXT: 5.00    -     maxsd      %xmm0, %xmm2
 # CHECK-NEXT: 5.00    -     maxsd      (%rax), %xmm2
+# CHECK-NEXT: 1.00    -     mfence
 # CHECK-NEXT: 3.00   3.00   minpd      %xmm0, %xmm2
 # CHECK-NEXT: 3.50   3.50   minpd      (%rax), %xmm2
 # CHECK-NEXT: 5.00    -     minsd      %xmm0, %xmm2
@@ -830,6 +839,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50   pcmpgtw    %xmm0, %xmm2
 # CHECK-NEXT: 1.00    -     pcmpgtw    (%rax), %xmm2
 # CHECK-NEXT: 2.00   2.00   pextrw     $1, %xmm0, %ecx
+# CHECK-NEXT: 1.00    -     pinsrw     $1, %eax, %xmm0
+# CHECK-NEXT: 1.00    -     pinsrw     $1, (%rax), %xmm0
 # CHECK-NEXT: 5.00    -     pmaddwd    %xmm0, %xmm2
 # CHECK-NEXT: 5.00    -     pmaddwd    (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50   pmaxsw     %xmm0, %xmm2
index 84bf65664c86bb97905134f115e71cb3907f3066..792002e44184810d06292437c50a6af86c583451 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      2     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      2     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      13    1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     0.50                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      6     0.50    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      4     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  1      9     1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      2     0.50                        pmaxsw %xmm0, %xmm2
@@ -694,7 +702,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2]    [3]    [4]    [5]    [6]    [7.0]  [7.1]  [8.0]  [8.1]  [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16.0] [16.1] [17]   [18]
-# CHECK-NEXT: 66.00  66.00   -      -      -     17.00   -      -     124.50 124.50 66.50  66.50  12.00  50.00  119.50 140.50  -      -      -     58.50  58.50   -     15.00
+# CHECK-NEXT: 67.00  67.00   -      -      -     17.00   -      -     124.50 124.50 67.50  67.50  12.00  50.00  120.50 141.50  -      -      -     59.00  59.00   -     16.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2]    [3]    [4]    [5]    [6]    [7.0]  [7.1]  [8.0]  [8.1]  [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16.0] [16.1] [17]   [18]   Instructions:
@@ -761,6 +769,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     maxpd   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     maxsd   %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     maxsd   (%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     1.00   mfence
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     minpd   %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     minpd   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     minsd   %xmm0, %xmm2
@@ -851,6 +860,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -      -      -      -      -      -      -     pcmpgtw %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     pcmpgtw (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     pextrw  $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -      -      -      -      -      -      -     pinsrw  $1, %eax, %xmm0
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     pinsrw  $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     pmaddwd %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -     0.50   0.50    -      -     pmaddwd (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -      -      -      -      -      -      -     pmaxsw  %xmm0, %xmm2
index 26c3cd7565876363d52db5c1187f507c4e460e76..e4b2d680d0452fcc9d4bae267f6435173b9171d8 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      8     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      8     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  2      2     0.50    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      8     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      6     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     2.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      6     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      5     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      10    1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -681,7 +689,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     78.00  70.25  95.25  62.67  62.67  14.00  123.75 1.75   4.67
+# CHECK-NEXT:  -     78.00  70.75  95.75  63.17  63.17  14.00  127.25 2.25   4.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -748,6 +756,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     maxpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     maxsd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     maxsd      (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     mfence
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     minpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     minpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     minsd      %xmm0, %xmm2
@@ -838,6 +847,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     pcmpgtw    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     pcmpgtw    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     pextrw     $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -     2.00    -      -     pinsrw     $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pinsrw     $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmaddwd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmaddwd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     pmaxsw     %xmm0, %xmm2
index d22bc44740019921ac8f1aa7291def33b2cbb231..46f03ae9c1756722f76d1c9418e6115b19d5bbb8 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      2     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      7     0.50                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  1      4     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      2     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -685,7 +693,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 17.00   -      -     49.00  204.00 127.50 140.50 117.00  -     15.00  54.00  66.50  66.50  12.00
+# CHECK-NEXT: 17.00   -      -     49.00  204.00 128.50 141.50 118.00  -     16.00  54.00  67.50  67.50  12.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -752,6 +760,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     maxpd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     maxsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -     mfence
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     minpd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     minpd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     minsd  %xmm0, %xmm2
@@ -842,6 +851,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00    -      -      -     0.50   0.50    -     pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -      -      -      -      -      -     1.00   pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     1.00    -      -      -      -      -     1.00   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -     pmaxsw %xmm0, %xmm2
index 30534807cb31f3b3ca5e63c6051e58d7a32922c6..63a40d5c717145a87f97e73f9837bcb9f41b2b7e 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      3     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      7     0.50    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      5     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      11    1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -679,7 +687,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -     172.00 75.83  117.33 16.00  98.83  66.00  66.00
+# CHECK-NEXT:  -     172.00 75.83  118.33 17.00  100.83 67.00  67.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -746,6 +754,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     maxsd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxsd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   mfence
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   minpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minsd    %xmm0, %xmm2
@@ -836,6 +845,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpgtw  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpgtw  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     pextrw   $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -     0.50    -     1.50    -      -     pinsrw   $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pinsrw   $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmaddwd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmaddwd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pmaxsw   %xmm0, %xmm2
index 5f7881377103553d6b3fcb55b1c945fe89cb4f25..1a61240252d619233e0e5d4cb4d3c840eae4e6b2 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      8     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  2      2     0.50    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     2.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      6     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      5     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      11    1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -681,7 +689,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     112.00 70.25  95.25  62.67  62.67  14.00  123.75 1.75   4.67
+# CHECK-NEXT:  -     112.00 70.75  95.75  63.17  63.17  14.00  127.25 2.25   4.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -748,6 +756,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     maxpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     maxsd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     maxsd      (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     0.50   0.50    -     mfence
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     minpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     minpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     minsd      %xmm0, %xmm2
@@ -838,6 +847,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     pcmpgtw    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50    -     0.50    -      -     pcmpgtw    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     pextrw     $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -     2.00    -      -     pinsrw     $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pinsrw     $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmaddwd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmaddwd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -     pmaxsw     %xmm0, %xmm2
index 9ab05ee1083aff06e3c92f446a05420f5162b707..12b17629b8dfe1c84d884e13beb5ed86517196a2 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  1      4     1.00    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  1      4     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      4     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  1      7     1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -679,7 +687,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT:  -     412.00 8.00   150.50 86.50  3.00   3.00   132.00
+# CHECK-NEXT:  -     412.00 8.00   152.50 86.50  3.00   3.00   134.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -746,6 +754,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   maxpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     maxsd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   maxsd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   mfence
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     minpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   minpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     minsd    %xmm0, %xmm2
@@ -836,6 +845,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     pcmpgtw  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   pcmpgtw  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pextrw   $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pinsrw   $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   pinsrw   $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pmaddwd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00   pmaddwd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     pmaxsw   %xmm0, %xmm2
index d0e9437f5686f41d4c2aaa4e2dd925000c0e35e6..781ed65cd3d361d77d9bbf927820435ced0e1d61 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      3     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      7     0.50    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      5     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      11    1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -679,7 +687,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -     172.00 75.83  117.33 16.00  98.83  66.00  66.00
+# CHECK-NEXT:  -     172.00 75.83  118.33 17.00  100.83 67.00  67.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -746,6 +754,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     maxsd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxsd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   mfence
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   minpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minsd    %xmm0, %xmm2
@@ -836,6 +845,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpgtw  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpgtw  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     pextrw   $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -     0.50    -     1.50    -      -     pinsrw   $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pinsrw   $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmaddwd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmaddwd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pmaxsw   %xmm0, %xmm2
index f9cee78654bfc76a01cd9b6080c41ac1872ef8f8..8c30e781b3931e1351635f225ed51021104a967c 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      4     0.50                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     0.50    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  3      3     0.50    *      *      U     mfence
 # CHECK-NEXT:  1      4     0.50                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      4     0.50                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      3     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     2.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      6     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      4     0.50                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -681,7 +689,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     38.00  110.42 78.42  62.67  62.67  14.00  93.42  1.75   4.67
+# CHECK-NEXT:  -     38.00  110.92 78.92  63.50  63.50  14.00  96.92  2.25   5.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -748,6 +756,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     maxpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     maxsd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     maxsd      (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.33   0.33    -     0.50   0.50   0.33   mfence
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     minpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     minpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     minsd      %xmm0, %xmm2
@@ -838,6 +847,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pcmpgtw    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pcmpgtw    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     pextrw     $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -     2.00    -      -     pinsrw     $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pinsrw     $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmaddwd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pmaddwd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmaxsw     %xmm0, %xmm2
index 89f468e51b006bc078185e0648ad9b3ff50a5990..90e9b69a233d3b9ae166c73110f9a12546443382 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      4     0.50                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  2      9     0.50    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  3      3     0.50    *      *      U     mfence
 # CHECK-NEXT:  1      4     0.50                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      4     0.50                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  2      3     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     2.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  2      6     1.00    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      4     0.50                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  2      10    0.50    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pmaxsw %xmm0, %xmm2
@@ -681,7 +689,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     38.00  103.08 82.08  62.67  62.67  14.00  94.08  1.75   4.67
+# CHECK-NEXT:  -     38.00  103.58 82.58  63.50  63.50  14.00  97.58  2.25   5.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -748,6 +756,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     maxpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     maxsd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     maxsd      (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.33   0.33    -     0.50   0.50   0.33   mfence
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     minpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     minpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     minsd      %xmm0, %xmm2
@@ -838,6 +847,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pcmpgtw    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pcmpgtw    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     pextrw     $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -     2.00    -      -     pinsrw     $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     pinsrw     $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmaddwd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     pmaddwd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     pmaxsw     %xmm0, %xmm2
index a4ecff87ae196e3b24a025f9f0fc786aedd19485..d6b9c025766221460f07556b66607441dca715bb 100644 (file)
@@ -94,6 +94,8 @@ maxpd       (%rax), %xmm2
 maxsd       %xmm0, %xmm2
 maxsd       (%rax), %xmm2
 
+mfence
+
 minpd       %xmm0, %xmm2
 minpd       (%rax), %xmm2
 
@@ -229,6 +231,9 @@ pcmpgtw     (%rax), %xmm2
 
 pextrw      $1, %xmm0, %rcx
 
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
 pmaddwd     %xmm0, %xmm2
 pmaddwd     (%rax), %xmm2
 
@@ -465,6 +470,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      10    1.00    *                   maxpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        maxsd  %xmm0, %xmm2
 # CHECK-NEXT:  1      10    1.00    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50    *      *      U     mfence
 # CHECK-NEXT:  1      3     1.00                        minpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      10    1.00    *                   minpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        minsd  %xmm0, %xmm2
@@ -555,6 +561,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        pcmpgtw        %xmm0, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   pcmpgtw        (%rax), %xmm2
 # CHECK-NEXT:  1      2     2.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.25                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   pinsrw $1, (%rax), %xmm0
 # CHECK-NEXT:  1      4     1.00                        pmaddwd        %xmm0, %xmm2
 # CHECK-NEXT:  1      11    1.00    *                   pmaddwd        (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        pmaxsw %xmm0, %xmm2
@@ -683,7 +691,7 @@ xorpd       (%rax), %xmm2
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 65.50  65.50   -      -      -      -      -     72.42  39.92  71.25  153.42  -
+# CHECK-NEXT: 66.50  66.50   -      -      -      -      -     72.92  40.42  71.75  153.92  -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -750,6 +758,7 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     maxpd        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     maxsd        %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     maxsd        (%rax), %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     mfence
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     minpd        %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     minpd        (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     minsd        %xmm0, %xmm2
@@ -840,6 +849,8 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     pcmpgtw      %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     pcmpgtw      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   2.50    -      -     pextrw       $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     pinsrw       $1, %eax, %xmm0
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     pinsrw       $1, (%rax), %xmm0
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pmaddwd      %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     pmaddwd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     pmaxsw       %xmm0, %xmm2