[X86] Move scheduling tests for CMPXCHG to the corresponding resources-x86_64.s files...
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 19 Aug 2019 18:20:30 +0000 (18:20 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 19 Aug 2019 18:20:30 +0000 (18:20 +0000)
In D66424 it has been requested to move all the new tests added by r369278 into
resources-x86_64.s. That is because only the 8b/16 ops should be tested by
resources-cmpxchg.s. This partially reverts r369278.

llvm-svn: 369288

24 files changed:
llvm/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s

index d5c9093..966e78a 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  1      22    11.00   *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  1      18    9.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  1      22    11.00   *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  1      9     4.50                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  1      15    7.50                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  1      15    7.50                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  1      15    7.50                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  1      6     3.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  1      6     3.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - AtomPort0
@@ -53,7 +26,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 115.00 115.00
+# CHECK-NEXT: 40.00  40.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -61,15 +34,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT: 11.00  11.00  cmpxchg16b (%rax)
 # CHECK-NEXT: 9.00   9.00   lock               cmpxchg8b       (%rax)
 # CHECK-NEXT: 11.00  11.00  lock               cmpxchg16b      (%rax)
-# CHECK-NEXT: 4.50   4.50   cmpxchgb   %bl, %cl
-# CHECK-NEXT: 7.50   7.50   cmpxchgw   %bx, %cx
-# CHECK-NEXT: 7.50   7.50   cmpxchgl   %ebx, %ecx
-# CHECK-NEXT: 7.50   7.50   cmpxchgq   %rbx, %rcx
-# CHECK-NEXT: 3.00   3.00   cmpxchgb   %bl, (%rsi)
-# CHECK-NEXT: 7.00   7.00   cmpxchgw   %bx, (%rsi)
-# CHECK-NEXT: 7.00   7.00   cmpxchgl   %ebx, (%rsi)
-# CHECK-NEXT: 7.00   7.00   cmpxchgq   %rbx, (%rsi)
-# CHECK-NEXT: 3.00   3.00   lock               cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT: 7.00   7.00   lock               cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT: 7.00   7.00   lock               cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT: 7.00   7.00   lock               cmpxchgq        %rbx, (%rsi)
index b7bb8e2..894292b 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb  %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw  %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl  %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq  %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      3     1.50                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  1      9     4.50                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  1      6     3.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  1      6     3.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  1      15    7.50                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  1      14    7.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  1      15    7.50                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  1      14    7.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  1      15    7.50                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  1      14    7.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  1      14    7.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      121   60.50                 U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  1      1     1.00    *      *            decb   (%rax)
@@ -1685,7 +1693,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 2690.50 2338.50
+# CHECK-NEXT: 2714.50 2362.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -1898,12 +1906,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.50   1.50   cmpsq      %es:(%rdi), (%rsi)
 # CHECK-NEXT: 4.50   4.50   cmpxchgb   %cl, %bl
 # CHECK-NEXT: 3.00   3.00   cmpxchgb   %cl, (%rbx)
+# CHECK-NEXT: 3.00   3.00   lock               cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT: 7.50   7.50   cmpxchgw   %cx, %bx
 # CHECK-NEXT: 7.00   7.00   cmpxchgw   %cx, (%rbx)
+# CHECK-NEXT: 7.00   7.00   lock               cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT: 7.50   7.50   cmpxchgl   %ecx, %ebx
 # CHECK-NEXT: 7.00   7.00   cmpxchgl   %ecx, (%rbx)
+# CHECK-NEXT: 7.00   7.00   lock               cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT: 7.50   7.50   cmpxchgq   %rcx, %rbx
 # CHECK-NEXT: 7.00   7.00   cmpxchgq   %rcx, (%rbx)
+# CHECK-NEXT: 7.00   7.00   lock               cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT: 60.50  60.50  cpuid
 # CHECK-NEXT: 0.50   0.50   decb       %dil
 # CHECK-NEXT: 1.00    -     decb       (%rax)
index 8966e1a..8173c77 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  4      5     1.33                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  4      5     1.33                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -59,7 +32,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
+# CHECK-NEXT:  -      -     1.33   1.33   4.00   1.33   4.00   4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -67,15 +40,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg16b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %bl, %cl
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %bx, %cx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ebx, %ecx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rbx, %rcx
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rbx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rbx, (%rsi)
index 194e257..8bf04e2 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb  %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw  %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl  %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq  %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  5      8     1.00                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1691,7 +1699,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     596.50 238.00 230.00 596.50 324.50 324.50
+# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -1904,12 +1912,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00   1.00   1.00   cmpsq    %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %cl, %bl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %cl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %cx, %bx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %cx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ecx, %ebx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ecx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rcx, %rbx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rcx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
index b135bc4..fb72e5f 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  22     3     69.00   *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  18     3     26.00   *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  22     3     69.00   *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  3      3     3.00                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  5      3     3.00                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  5      3     3.00                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  5      3     3.00                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  5      3     23.00   *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  5      3     23.00   *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0.0] - PdAGLU01
@@ -74,7 +47,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # 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:  -      -      -      -      -      -     374.00  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+# CHECK-NEXT:  -      -      -      -      -      -     190.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:
@@ -82,15 +55,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -      -      -      -      -     69.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchg16b      (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -     26.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -     69.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb        %bl, %cl
-# CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %bx, %cx
-# CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ebx, %ecx
-# CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rbx, %rcx
-# CHECK-NEXT:  -      -      -      -      -      -     23.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rbx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     23.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgq        %rbx, (%rsi)
index 0711fd7..d3c1d9a 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  3      3     3.00                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  5      3     23.00   *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  5      3     23.00   *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      3     21.00   *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      3     21.00   *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      3     21.00   *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      3     21.00   *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.50                  U     cpuid
 # CHECK-NEXT:  1      1     1.00                        decb   %dil
 # CHECK-NEXT:  1      6     2.00    *      *            decb   (%rax)
@@ -1706,7 +1714,7 @@ xorq (%rax), %rdi
 
 # 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: 550.50 550.50  -      -     246.00 1323.50 1562.50  -    -      -      -      -      -      -      -      -      -      -      -     450.00 450.00 136.00 201.00
+# CHECK-NEXT: 550.50 550.50  -      -     246.00 1323.50 1648.50  -    -      -      -      -      -      -      -      -      -      -      -     450.00 450.00 136.00 201.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:
@@ -1919,12 +1927,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsq   %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb        %cl, %bl
 # CHECK-NEXT:  -      -      -      -      -      -     23.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb        %cl, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     23.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %cx, %bx
 # CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %cx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ecx, %ebx
 # CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ecx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rcx, %rbx
 # CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rcx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     21.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decb    %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   decb    (%rax)
index b0de687..1d42922 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  19     21    4.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  14     16    2.75    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  19     21    4.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  5      5     1.25                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  5      5     1.25                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - BWDivider
@@ -61,7 +34,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
+# CHECK-NEXT:  -      -     17.50  7.50   3.33   3.33   4.00   15.50  13.50  1.33
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -69,15 +42,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   cmpxchg16b (%rax)
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   lock               cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   lock               cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %bl, %cl
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %bx, %cx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ebx, %ecx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rbx, %rcx
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rbx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rbx, (%rsi)
index 642e73a..4240d52 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1693,7 +1701,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 50.00   -     518.50 346.50 269.33 269.33 214.00 259.00 552.00 85.33
+# CHECK-NEXT: 50.00   -     523.50 347.50 272.67 272.67 218.00 260.00 557.00 86.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -1906,12 +1914,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     cmpsq      %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %cl, %bl
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %cl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %cx, %bx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %cx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ecx, %ebx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ecx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rcx, %rbx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rcx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
index ba54f22..9882a53 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  1      1     0.50                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  1      1     0.50                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  1      1     0.50                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  1      1     0.50                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  2      4     1.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - JALU0
@@ -65,7 +38,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 8.00   8.00    -      -      -      -      -     12.00   -     12.00   -      -      -      -
+# CHECK-NEXT: 2.00   2.00    -      -      -      -      -     4.00    -     4.00    -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -73,15 +46,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchg16b     (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchg8b       (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchg16b      (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb       %bl, %cl
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw       %bx, %cx
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl       %ebx, %ecx
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq       %rbx, %rcx
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgq        %rbx, (%rsi)
index d467752..5fae0f6 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  2      4     1.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.50                  U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  1      5     1.00    *      *            decb   (%rax)
@@ -1697,7 +1705,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 610.00 660.00 380.00  -      -      -      -     330.00 64.00  231.00  -      -      -      -
+# CHECK-NEXT: 612.00 662.00 380.00  -      -      -      -     334.00 64.00  235.00  -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -1910,12 +1918,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb       %cl, %bl
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw       %cx, %bx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl       %ecx, %ebx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq       %rcx, %rbx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     decb   %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     decb   (%rax)
index 8966e1a..8173c77 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  4      5     1.33                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  4      5     1.33                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -59,7 +32,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
+# CHECK-NEXT:  -      -     1.33   1.33   4.00   1.33   4.00   4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -67,15 +40,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg16b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %bl, %cl
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %bx, %cx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ebx, %ecx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rbx, %rcx
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rbx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rbx, (%rsi)
index 194e257..8bf04e2 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb  %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw  %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl  %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq  %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  5      8     1.00                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1691,7 +1699,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     596.50 238.00 230.00 596.50 324.50 324.50
+# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -1904,12 +1912,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00   1.00   1.00   cmpsq    %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %cl, %bl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %cl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %cx, %bx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %cx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ecx, %ebx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ecx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rcx, %rbx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rcx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
index f6255c9..3ce1b57 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  19     22    4.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  14     17    2.75    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  19     22    4.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  5      5     1.25                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  5      5     1.25                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      9     1.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - HWDivider
@@ -61,7 +34,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
+# CHECK-NEXT:  -      -     17.50  7.50   3.33   3.33   4.00   15.50  13.50  1.33
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -69,15 +42,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   cmpxchg16b (%rax)
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   lock               cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   lock               cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %bl, %cl
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %bx, %cx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ebx, %ecx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rbx, %rcx
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rbx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rbx, (%rsi)
index 5153adc..eb1d9e3 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  5      4     1.00                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      9     1.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      9     1.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      9     1.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      9     1.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1693,7 +1701,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 80.00   -     573.75 371.75 269.83 269.83 209.00 286.25 636.25 82.33
+# CHECK-NEXT: 80.00   -     578.75 372.75 273.17 273.17 213.00 287.25 641.25 83.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -1906,12 +1914,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.75   0.75   1.00   1.00    -     0.75   0.75    -     cmpsq      %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %cl, %bl
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %cl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %cx, %bx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %cx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ecx, %ebx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ecx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rcx, %rbx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rcx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
index 25cdef9..f6636d3 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  1      1     0.50                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  1      1     0.50                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  1      1     0.50                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  1      1     0.50                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  2      4     2.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SLMDivider
@@ -59,7 +32,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT:  -      -      -      -      -     8.00   8.00   24.00
+# CHECK-NEXT:  -      -      -      -      -     2.00   2.00   8.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -67,15 +40,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchg16b       (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgb %bl, %cl
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgw %bx, %cx
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgl %ebx, %ecx
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgq %rbx, %rcx
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgb %bl, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgw %bx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgl %ebx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgq %rbx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgq        %rbx, (%rsi)
index 627010a..13081a1 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   1.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  2      5     2.00    *      *            decb   (%rax)
@@ -1691,7 +1699,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT: 400.00  -      -     49.00   -     561.50 403.50 573.00
+# CHECK-NEXT: 400.00  -      -     49.00   -     563.50 405.50 581.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -1904,12 +1912,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpsq    %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgb %cl, %bl
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgb %cl, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgw %cx, %bx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgw %cx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgl %ecx, %ebx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgl %ecx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cmpxchgq %rcx, %rbx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchgq %rcx, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cpuid
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     decb     %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   decb     (%rax)
index f25bce3..5300792 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  4      5     1.33                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  4      5     1.33                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -59,7 +32,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
+# CHECK-NEXT:  -      -     1.33   1.33   4.00   1.33   4.00   4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -67,15 +40,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg16b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %bl, %cl
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %bx, %cx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ebx, %ecx
-# CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rbx, %rcx
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rbx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rbx, (%rsi)
index 2019dfc..937bce7 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  5      8     1.00                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  4      5     1.33                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     2.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     2.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1691,7 +1699,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     596.50 238.00 230.00 596.50 324.50 324.50
+# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -1904,12 +1912,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00   1.00   1.00   cmpsq    %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgb %cl, %bl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgb %cl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgw %cx, %bx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgw %cx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgl %ecx, %ebx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgl %ecx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.50   1.00    -     1.50    -      -     cmpxchgq %rcx, %rbx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   cmpxchgq %rcx, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   2.33   1.00   1.00   lock             cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
index d8ad4ce..4df459e 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  19     23    4.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  14     16    2.75    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  19     23    4.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  5      5     1.25                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  5      5     1.25                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SKLDivider
@@ -61,7 +34,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
+# CHECK-NEXT:  -      -     17.50  7.50   3.33   3.33   4.00   15.50  13.50  1.33
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -69,15 +42,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   cmpxchg16b (%rax)
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   lock               cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   lock               cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %bl, %cl
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %bx, %cx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ebx, %ecx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rbx, %rcx
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rbx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rbx, (%rsi)
index 7fc4419..1672bf8 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1693,7 +1701,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 60.00   -     588.75 326.25 269.33 269.33 214.00 293.75 645.25 85.33
+# CHECK-NEXT: 60.00   -     593.75 327.25 272.67 272.67 218.00 294.75 650.25 86.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -1906,12 +1914,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     cmpsq      %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %cl, %bl
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %cl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %cx, %bx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %cx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ecx, %ebx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ecx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rcx, %rbx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rcx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
index b3fc6fb..8c8181c 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  19     23    4.00    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  14     16    2.75    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  19     23    4.00    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  5      5     1.25                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  5      5     1.25                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SKXDivider
@@ -61,7 +34,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
+# CHECK-NEXT:  -      -     17.50  7.50   3.33   3.33   4.00   15.50  13.50  1.33
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -69,15 +42,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   cmpxchg16b (%rax)
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   lock               cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -     5.50   1.50   0.83   0.83   1.00   5.50   3.50   0.33   lock               cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %bl, %cl
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %bx, %cx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ebx, %ecx
-# CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rbx, %rcx
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rbx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rbx, (%rsi)
index 3b30da8..10530c4 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  5      5     1.25                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  6      8     1.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
@@ -1693,7 +1701,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 60.00   -     589.00 326.50 269.33 269.33 214.00 294.00 645.50 85.33
+# CHECK-NEXT: 60.00   -     594.00 327.50 272.67 272.67 218.00 295.00 650.50 86.67
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -1906,12 +1914,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     cmpsq      %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgb   %cl, %bl
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgb   %cl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgw   %cx, %bx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgw   %cx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgl   %ecx, %ebx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgl   %ecx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   0.75    -      -      -     0.75   1.75    -     cmpxchgq   %rcx, %rbx
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   cmpxchgq   %rcx, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
index db19950..68c8ebf 100644 (file)
@@ -6,21 +6,6 @@ cmpxchg16b (%rax)
 lock cmpxchg8b  (%rax)
 lock cmpxchg16b (%rax)
 
-cmpxchgb  %bl, %cl
-cmpxchgw  %bx, %cx
-cmpxchgl  %ebx, %ecx
-cmpxchgq  %rbx, %rcx
-
-cmpxchgb  %bl, (%rsi)
-cmpxchgw  %bx, (%rsi)
-cmpxchgl  %ebx, (%rsi)
-cmpxchgq  %rbx, (%rsi)
-
-lock cmpxchgb  %bl, (%rsi)
-lock cmpxchgw  %bx, (%rsi)
-lock cmpxchgl  %ebx, (%rsi)
-lock cmpxchgq  %rbx, (%rsi)
-
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
 # CHECK-NEXT: [2]: Latency
@@ -34,18 +19,6 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  1      100   0.25    *      *            cmpxchg16b     (%rax)
 # CHECK-NEXT:  18     1     0.50    *      *            lock           cmpxchg8b       (%rax)
 # CHECK-NEXT:  1      100   0.25    *      *            lock           cmpxchg16b      (%rax)
-# CHECK-NEXT:  1      1     0.25                        cmpxchgb       %bl, %cl
-# CHECK-NEXT:  1      1     0.25                        cmpxchgw       %bx, %cx
-# CHECK-NEXT:  1      1     0.25                        cmpxchgl       %ebx, %ecx
-# CHECK-NEXT:  1      1     0.25                        cmpxchgq       %rbx, %rcx
-# CHECK-NEXT:  5      8     0.50    *      *            cmpxchgb       %bl, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            cmpxchgw       %bx, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            cmpxchgl       %ebx, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            cmpxchgq       %rbx, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgq        %rbx, (%rsi)
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - ZnAGU0
@@ -63,7 +36,7 @@ lock cmpxchgq  %rbx, (%rsi)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 5.00   5.00   3.50   3.50   3.50   3.50    -      -      -      -      -      -
+# CHECK-NEXT: 1.00   1.00   0.50   0.50   0.50   0.50    -      -      -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -71,15 +44,3 @@ lock cmpxchgq  %rbx, (%rsi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     cmpxchg16b   (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchg8b       (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lock         cmpxchg16b      (%rax)
-# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgb     %bl, %cl
-# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgw     %bx, %cx
-# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgl     %ebx, %ecx
-# CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgq     %rbx, %rcx
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgb     %bl, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgw     %bx, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgl     %ebx, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgq     %rbx, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgb        %bl, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgw        %bx, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgl        %ebx, (%rsi)
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgq        %rbx, (%rsi)
index b3ed166..e71fc46 100644 (file)
@@ -236,15 +236,19 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
 
 cpuid
 
@@ -1108,12 +1112,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cmpsq  %es:(%rdi), (%rsi)
 # CHECK-NEXT:  1      1     0.25                        cmpxchgb       %cl, %bl
 # CHECK-NEXT:  5      8     0.50    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  1      1     0.25                        cmpxchgw       %cx, %bx
 # CHECK-NEXT:  5      8     0.50    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  1      1     0.25                        cmpxchgl       %ecx, %ebx
 # CHECK-NEXT:  5      8     0.50    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  1      1     0.25                        cmpxchgq       %rcx, %rbx
 # CHECK-NEXT:  5      8     0.50    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  5      8     0.50    *      *            lock           cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  1      100   0.25                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  2      5     0.50    *      *            decb   (%rax)
@@ -1695,7 +1703,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 169.50 169.50 159.75 193.75 175.75 159.75 392.00  -      -      -      -     34.00
+# CHECK-NEXT: 171.50 171.50 160.75 194.75 176.75 160.75 392.00  -      -      -      -     34.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -1908,12 +1916,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     cmpsq        %es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgb     %cl, %bl
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgb     %cl, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgb        %cl, (%rbx)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgw     %cx, %bx
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgw     %cx, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgw        %cx, (%rbx)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgl     %ecx, %ebx
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgl     %ecx, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgl        %ecx, (%rbx)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgq     %rcx, %rbx
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgq     %rcx, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         cmpxchgq        %rcx, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     decb %dil
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decb (%rax)