[llvm] r369279 - [X86] Added extensive scheduling model tests for all the CMPXCHG variants. NFC

Andrea Di Biagio via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 19 10:07:26 PDT 2019


Author: adibiagio
Date: Mon Aug 19 10:07:26 2019
New Revision: 369279

URL: http://llvm.org/viewvc/llvm-project?rev=369279&view=rev
Log:
[X86] Added extensive scheduling model tests for all the CMPXCHG variants. NFC

Addresses a review comment in D66424

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

Modified: llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  1      18    9.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -22,9 +53,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 20.00  20.00
+# CHECK-NEXT: 115.00 115.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
 # CHECK-NEXT: 9.00   9.00   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -28,9 +59,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     0.67   0.67   2.00   0.67   2.00   2.00
+# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  18     3     26.00   *      *            cmpxchg8b	(%rax)
 # 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
@@ -43,9 +74,23 @@ cmpxchg16b (%rax)
 
 # 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:  -      -      -      -      -      -     95.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+# CHECK-NEXT:  -      -      -      -      -      -     374.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:
 # CHECK-NEXT:  -      -      -      -      -      -     26.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  14     16    2.75    *      *            cmpxchg8b	(%rax)
 # 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
@@ -30,9 +61,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     8.75   3.75   1.67   1.67   2.00   7.75   6.75   0.67
+# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  2      4     1.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -34,9 +65,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]
-# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     2.00    -     2.00    -      -      -      -
+# CHECK-NEXT: 8.00   8.00    -      -      -      -      -     12.00   -     12.00   -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -28,9 +59,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     0.67   0.67   2.00   0.67   2.00   2.00
+# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  14     17    2.75    *      *            cmpxchg8b	(%rax)
 # 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
@@ -30,9 +61,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     8.75   3.75   1.67   1.67   2.00   7.75   6.75   0.67
+# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  2      4     2.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -28,9 +59,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT:  -      -      -      -      -     1.00   1.00   4.00
+# CHECK-NEXT:  -      -      -      -      -     8.00   8.00   24.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  3      6     1.00    *      *            cmpxchg8b	(%rax)
 # 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
@@ -28,9 +59,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     0.67   0.67   2.00   0.67   2.00   2.00
+# CHECK-NEXT:  -      -     10.00  8.00   12.00  26.00  12.00  12.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  14     16    2.75    *      *            cmpxchg8b	(%rax)
 # 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
@@ -30,9 +61,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     8.75   3.75   1.67   1.67   2.00   7.75   6.75   0.67
+# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  14     16    2.75    *      *            cmpxchg8b	(%rax)
 # 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
@@ -30,9 +61,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -      -     8.75   3.75   1.67   1.67   2.00   7.75   6.75   0.67
+# CHECK-NEXT:  -      -     34.50  12.50  10.00  10.00  12.00  20.50  30.50  4.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     3.25   2.25   0.83   0.83   1.00   2.25   3.25   0.33   cmpxchg8b	(%rax)
 # 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)

Modified: llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s?rev=369279&r1=369278&r2=369279&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s Mon Aug 19 10:07:26 2019
@@ -3,6 +3,23 @@
 
 cmpxchg8b  (%rax)
 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
@@ -15,6 +32,20 @@ cmpxchg16b (%rax)
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
 # CHECK-NEXT:  18     1     0.50    *      *            cmpxchg8b	(%rax)
 # 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
@@ -32,9 +63,23 @@ cmpxchg16b (%rax)
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -
+# CHECK-NEXT: 5.00   5.00   3.50   3.50   3.50   3.50    -      -      -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchg8b	(%rax)
 # 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)




More information about the llvm-commits mailing list