[llvm] 420d02b - [MCA][X86] Add test coverage for LOOP/LOOPE/LOOPNE instructions

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 20 03:35:35 PST 2022


Author: Simon Pilgrim
Date: 2022-11-20T11:35:21Z
New Revision: 420d02bb55d9deb0bf19c5c4deaf838380b51a06

URL: https://github.com/llvm/llvm-project/commit/420d02bb55d9deb0bf19c5c4deaf838380b51a06
DIFF: https://github.com/llvm/llvm-project/commit/420d02bb55d9deb0bf19c5c4deaf838380b51a06.diff

LOG: [MCA][X86] Add test coverage for LOOP/LOOPE/LOOPNE instructions

These were missed for some reason - only noticed this while investigating a FIXME in the SandyBridge model

Also sync the znver2/znver3 tests which had been missed when LOCK test coverage was added

Added: 
    

Modified: 
    llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s
    llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s
index 6640968ecd14c..b502ab3bf321d 100644
--- a/llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/AlderlakeP/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     0.60                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  3      5     0.40                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  3      5     0.40                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      3     2.00                  U     loop	0
+# CHECK-NEXT:  11     3     3.00                  U     loope	0
+# CHECK-NEXT:  11     2     3.00                  U     loopne	0
 # CHECK-NEXT:  7      8     0.80                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  7      7     0.80                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  7      7     0.80                  U     movsl	(%rsi), %es:(%rdi)
@@ -1958,7 +1965,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]
-# CHECK-NEXT: 939.92 789.58 213.00 213.00 202.50 597.75 783.42 203.00 203.00 202.50 189.33 213.00  -
+# CHECK-NEXT: 949.92 794.58 213.00 213.00 202.50 599.75 793.42 203.00 203.00 202.50 191.33 213.00  -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   Instructions:
@@ -2322,6 +2329,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.60   0.60   0.33   0.33    -     0.60   0.60    -      -      -     0.60   0.33    -     lodsw	(%rsi), %ax
 # CHECK-NEXT: 0.40   0.40   0.33   0.33    -     0.40   0.40    -      -      -     0.40   0.33    -     lodsl	(%rsi), %eax
 # CHECK-NEXT: 0.40   0.40   0.33   0.33    -     0.40   0.40    -      -      -     0.40   0.33    -     lodsq	(%rsi), %rax
+# CHECK-NEXT: 2.40   1.40    -      -      -     0.40   2.40    -      -      -     0.40    -      -     loop	0
+# CHECK-NEXT: 3.80   1.80    -      -      -     0.80   3.80    -      -      -     0.80    -      -     loope	0
+# CHECK-NEXT: 3.80   1.80    -      -      -     0.80   3.80    -      -      -     0.80    -      -     loopne	0
 # CHECK-NEXT: 0.80   0.80   0.33   0.33   0.50   0.80   0.80   0.50   0.50   0.50   0.80   0.33    -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 0.80   0.80   0.33   0.33   0.50   0.80   0.80   0.50   0.50   0.50   0.80   0.33    -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 0.80   0.80   0.33   0.33   0.50   0.80   0.80   0.50   0.50   0.50   0.80   0.33    -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
index 8a65c75e6e98e..befe09cf856c2 100644
--- a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      2     1.00                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      2     1.00                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      2     1.00                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      18    9.00                  U     loop	0
+# CHECK-NEXT:  1      8     4.00                  U     loope	0
+# CHECK-NEXT:  1      17    8.50                  U     loopne	0
 # CHECK-NEXT:  1      3     1.50                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      3     1.50                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      3     1.50                  U     movsl	(%rsi), %es:(%rdi)
@@ -1947,7 +1954,7 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 3712.50 3259.50
+# CHECK-NEXT: 3734.00 3281.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
@@ -2311,6 +2318,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00   lodsw	(%rsi), %ax
 # CHECK-NEXT: 1.00   1.00   lodsl	(%rsi), %eax
 # CHECK-NEXT: 1.00   1.00   lodsq	(%rsi), %rax
+# CHECK-NEXT: 9.00   9.00   loop	0
+# CHECK-NEXT: 4.00   4.00   loope	0
+# CHECK-NEXT: 8.50   8.50   loopne	0
 # CHECK-NEXT: 1.50   1.50   movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 1.50   1.50   movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 1.50   1.50   movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
index eec07637c2475..358a1aae4dacf 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      7     0.67                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  2      6     0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  2      6     0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     1.00                  U     loop	0
+# CHECK-NEXT:  1      1     1.00                  U     loope	0
+# CHECK-NEXT:  1      1     1.00                  U     loopne	0
 # CHECK-NEXT:  5      8     1.00                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsl	(%rsi), %es:(%rdi)
@@ -1953,7 +1960,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  -     658.17 310.67 361.00 683.17 455.50 455.50
+# CHECK-NEXT: 160.00  -     658.17 310.67 361.00 686.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2317,6 +2324,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loop	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loope	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loopne	0
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
index 20828a798b297..acd75d46fb23f 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     1.00                  U     loop	0
+# CHECK-NEXT:  1      1     1.00                  U     loope	0
+# CHECK-NEXT:  1      1     1.00                  U     loopne	0
 # CHECK-NEXT:  1      100   0.50                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     movsl	(%rsi), %es:(%rdi)
@@ -1968,7 +1975,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: 764.00 764.00  -      -     246.00 1804.50 2209.50  -    -      -      -      -      -      -      -      -      -      -      -     611.00 611.00 136.00 306.00
+# CHECK-NEXT: 764.00 764.00 3.00    -     246.00 1804.50 2212.50  -    -      -      -      -      -      -      -      -      -      -      -     611.00 611.00 136.00 306.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:
@@ -2332,6 +2339,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     1.00    -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loop	0
+# CHECK-NEXT:  -      -     1.00    -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loope	0
+# CHECK-NEXT:  -      -     1.00    -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loopne	0
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
index 21449cb85f63b..c68e2dd029135 100644
--- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      7     2.00                  U     loop	0
+# CHECK-NEXT:  11     11    2.75                  U     loope	0
+# CHECK-NEXT:  11     11    2.75                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1955,7 +1962,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   -     602.50 396.00 378.50 378.50 345.00 292.50 636.00 129.00
+# CHECK-NEXT: 50.00   -     610.50 401.50 378.50 378.50 345.00 298.00 646.00 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2319,6 +2326,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     1.50   1.00    -      -      -     1.00   3.50    -     loop	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loope	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loopne	0
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
index 6d750008119ad..a24bc33c5018b 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     0.50                  U     loop	0
+# CHECK-NEXT:  1      1     0.50                  U     loope	0
+# CHECK-NEXT:  1      1     0.50                  U     loopne	0
 # CHECK-NEXT:  1      100   0.50                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     movsl	(%rsi), %es:(%rdi)
@@ -1959,7 +1966,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: 717.00 767.00 380.00  -      -      -      -     992.00 80.00  893.00  -      -      -      -
+# CHECK-NEXT: 718.50 768.50 380.00  -      -      -      -     992.00 80.00  893.00  -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
@@ -2323,6 +2330,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     loop	0
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     loope	0
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     loopne	0
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
index eec07637c2475..358a1aae4dacf 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      7     0.67                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  2      6     0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  2      6     0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     1.00                  U     loop	0
+# CHECK-NEXT:  1      1     1.00                  U     loope	0
+# CHECK-NEXT:  1      1     1.00                  U     loopne	0
 # CHECK-NEXT:  5      8     1.00                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsl	(%rsi), %es:(%rdi)
@@ -1953,7 +1960,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  -     658.17 310.67 361.00 683.17 455.50 455.50
+# CHECK-NEXT: 160.00  -     658.17 310.67 361.00 686.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2317,6 +2324,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loop	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loope	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loopne	0
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
index b71906feb72ed..073e23d90fdb8 100644
--- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      1     0.50                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  2      1     0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  2      1     0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      7     2.00                  U     loop	0
+# CHECK-NEXT:  11     11    2.75                  U     loope	0
+# CHECK-NEXT:  11     11    2.75                  U     loopne	0
 # CHECK-NEXT:  5      4     1.00                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      4     1.00                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      4     1.00                  U     movsl	(%rsi), %es:(%rdi)
@@ -1955,7 +1962,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   -     655.50 419.00 371.50 371.50 331.00 317.50 718.00 123.00
+# CHECK-NEXT: 80.00   -     663.50 424.50 371.50 371.50 331.00 323.00 728.00 123.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2319,6 +2326,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     1.50   1.00    -      -      -     1.00   3.50    -     loop	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loope	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loopne	0
 # CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   1.00   0.50   0.50    -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   1.00   0.50   0.50    -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   1.00   0.50   0.50    -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
index 87e6d113b181d..178512d9be16a 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      7     2.00                  U     loop	0
+# CHECK-NEXT:  11     11    2.75                  U     loope	0
+# CHECK-NEXT:  11     11    2.75                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1957,7 +1964,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: 60.00   -     671.00 376.00 378.50 378.50 345.00 327.50 731.50 129.00  -      -
+# CHECK-NEXT: 60.00   -     679.50 381.50 378.50 378.50 345.00 333.00 741.00 129.00  -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -2321,6 +2328,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   3.00    -      -      -     loop	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -      -      -     loope	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -      -      -     loopne	0
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -      -      -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
index 1491da0f17a83..e1cc5bb3b169e 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   1.00                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   1.00                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     1.00                  U     loop	0
+# CHECK-NEXT:  1      1     1.00                  U     loope	0
+# CHECK-NEXT:  1      1     1.00                  U     loopne	0
 # CHECK-NEXT:  1      100   1.00                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   1.00                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   1.00                  U     movsl	(%rsi), %es:(%rdi)
@@ -1953,7 +1960,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   -     654.50 592.50 835.00
+# CHECK-NEXT: 400.00  -      -     49.00   -     654.50 595.50 835.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
@@ -2317,6 +2324,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     loop	0
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     loope	0
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     loopne	0
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
index 90d0a53840361..c56257b091112 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      7     0.67                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  2      6     0.50                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  2      6     0.50                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     1.00                  U     loop	0
+# CHECK-NEXT:  1      1     1.00                  U     loope	0
+# CHECK-NEXT:  1      1     1.00                  U     loopne	0
 # CHECK-NEXT:  5      8     1.00                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  5      8     1.00                  U     movsl	(%rsi), %es:(%rdi)
@@ -1953,7 +1960,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  -     658.17 310.67 361.00 683.17 455.50 455.50
+# CHECK-NEXT: 160.00  -     658.17 310.67 361.00 686.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2317,6 +2324,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loop	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loope	0
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     loopne	0
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
index 9dc08a736fc0c..4f8743eb080c4 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      7     2.00                  U     loop	0
+# CHECK-NEXT:  11     11    2.75                  U     loope	0
+# CHECK-NEXT:  11     11    2.75                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1955,7 +1962,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   -     674.75 375.75 378.50 378.50 345.00 327.25 735.25 129.00
+# CHECK-NEXT: 60.00   -     683.25 381.25 378.50 378.50 345.00 332.75 744.75 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2319,6 +2326,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   3.00    -     loop	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loope	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loopne	0
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
index ce2a7c6b9cf2c..a47f6203423be 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  7      7     2.00                  U     loop	0
+# CHECK-NEXT:  11     11    2.75                  U     loope	0
+# CHECK-NEXT:  11     11    2.75                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1955,7 +1962,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   -     675.00 376.00 378.50 378.50 345.00 327.50 735.50 129.00
+# CHECK-NEXT: 60.00   -     683.50 381.50 378.50 378.50 345.00 333.00 745.00 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2319,6 +2326,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     2.00   1.00    -      -      -     1.00   3.00    -     loop	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loope	0
+# CHECK-NEXT:  -      -     3.25   2.25    -      -      -     2.25   3.25    -     loopne	0
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
index 90e7553f092a7..b0449c04e68ca 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
@@ -408,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -1390,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     0.50                  U     loop	0
+# CHECK-NEXT:  1      1     0.50                  U     loope	0
+# CHECK-NEXT:  1      1     0.50                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1957,7 +1964,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: 233.00 233.00 228.75 262.75 244.75 228.75 392.00  -      -      -      -     34.00
+# CHECK-NEXT: 233.00 233.00 230.25 262.75 244.75 230.25 392.00  -      -      -      -     34.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -2321,6 +2328,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -      -      -      -      -     loop	0
+# CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -      -      -      -      -     loope	0
+# CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -      -      -      -      -     loopne	0
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     movsl	(%rsi), %es:(%rdi)

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s
index 2bef39cec5598..e2c2d0bf31684 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s
@@ -4,115 +4,152 @@
 adcb $0, %al
 adcb $0, %dil
 adcb $0, (%rax)
+lock adcb $0, (%rax)
 adcb $7, %al
 adcb $7, %dil
 adcb $7, (%rax)
+lock adcb $7, (%rax)
 adcb %sil, %dil
 adcb %sil, (%rax)
+lock adcb %sil, (%rax)
 adcb (%rax), %dil
 
 adcw $0, %ax
 adcw $0, %di
 adcw $0, (%rax)
+lock adcw $0, (%rax)
 adcw $511, %ax
 adcw $511, %di
 adcw $511, (%rax)
+lock adcw $511, (%rax)
 adcw $7, %di
 adcw $7, (%rax)
+lock adcw $7, (%rax)
 adcw %si, %di
 adcw %si, (%rax)
+lock adcw %si, (%rax)
 adcw (%rax), %di
 
 adcl $0, %eax
 adcl $0, %edi
 adcl $0, (%rax)
+lock adcl $0, (%rax)
 adcl $665536, %eax
 adcl $665536, %edi
 adcl $665536, (%rax)
+lock adcl $665536, (%rax)
 adcl $7, %edi
 adcl $7, (%rax)
+lock adcl $7, (%rax)
 adcl %esi, %edi
 adcl %esi, (%rax)
+lock adcl %esi, (%rax)
 adcl (%rax), %edi
 
 adcq $0, %rax
 adcq $0, %rdi
 adcq $0, (%rax)
+lock adcq $0, (%rax)
 adcq $665536, %rax
 adcq $665536, %rdi
 adcq $665536, (%rax)
+lock adcq $665536, (%rax)
 adcq $7, %rdi
 adcq $7, (%rax)
+lock adcq $7, (%rax)
 adcq %rsi, %rdi
 adcq %rsi, (%rax)
+lock adcq %rsi, (%rax)
 adcq (%rax), %rdi
 
 addb $7, %al
 addb $7, %dil
 addb $7, (%rax)
+lock addb $7, (%rax)
 addb %sil, %dil
 addb %sil, (%rax)
+lock addb %sil, (%rax)
 addb (%rax), %dil
 
 addw $511, %ax
 addw $511, %di
 addw $511, (%rax)
+lock addw $511, (%rax)
 addw $7, %di
 addw $7, (%rax)
+lock addw $7, (%rax)
 addw %si, %di
 addw %si, (%rax)
+lock addw %si, (%rax)
 addw (%rax), %di
 
 addl $665536, %eax
 addl $665536, %edi
 addl $665536, (%rax)
+lock addl $665536, (%rax)
 addl $7, %edi
 addl $7, (%rax)
+lock addl $7, (%rax)
 addl %esi, %edi
 addl %esi, (%rax)
+lock addl %esi, (%rax)
 addl (%rax), %edi
 
 addq $665536, %rax
 addq $665536, %rdi
 addq $665536, (%rax)
+lock addq $665536, (%rax)
 addq $7, %rdi
 addq $7, (%rax)
+lock addq $7, (%rax)
 addq %rsi, %rdi
 addq %rsi, (%rax)
+lock addq %rsi, (%rax)
 addq (%rax), %rdi
 
 andb $7, %al
 andb $7, %dil
 andb $7, (%rax)
+lock andb $7, (%rax)
 andb %sil, %dil
 andb %sil, (%rax)
+lock andb %sil, (%rax)
 andb (%rax), %dil
 
 andw $511, %ax
 andw $511, %di
 andw $511, (%rax)
+lock andw $511, (%rax)
 andw $7, %di
 andw $7, (%rax)
+lock andw $7, (%rax)
 andw %si, %di
 andw %si, (%rax)
+lock andw %si, (%rax)
 andw (%rax), %di
 
 andl $665536, %eax
 andl $665536, %edi
 andl $665536, (%rax)
+lock andl $665536, (%rax)
 andl $7, %edi
 andl $7, (%rax)
+lock andl $7, (%rax)
 andl %esi, %edi
 andl %esi, (%rax)
+lock andl %esi, (%rax)
 andl (%rax), %edi
 
 andq $665536, %rax
 andq $665536, %rdi
 andq $665536, (%rax)
+lock andq $665536, (%rax)
 andq $7, %rdi
 andq $7, (%rax)
+lock andq $7, (%rax)
 andq %rsi, %rdi
 andq %rsi, (%rax)
+lock andq %rsi, (%rax)
 andq (%rax), %rdi
 
 bsfw %si, %di
@@ -141,6 +178,9 @@ btw  %si, (%rax)
 btcw %si, (%rax)
 btrw %si, (%rax)
 btsw %si, (%rax)
+lock btcw %si, (%rax)
+lock btrw %si, (%rax)
+lock btsw %si, (%rax)
 btw  $7, %di
 btcw $7, %di
 btrw $7, %di
@@ -149,6 +189,9 @@ btw  $7, (%rax)
 btcw $7, (%rax)
 btrw $7, (%rax)
 btsw $7, (%rax)
+lock btcw $7, (%rax)
+lock btrw $7, (%rax)
+lock btsw $7, (%rax)
 
 btl  %esi, %edi
 btcl %esi, %edi
@@ -158,6 +201,9 @@ btl  %esi, (%rax)
 btcl %esi, (%rax)
 btrl %esi, (%rax)
 btsl %esi, (%rax)
+lock btcl %esi, (%rax)
+lock btrl %esi, (%rax)
+lock btsl %esi, (%rax)
 btl  $7, %edi
 btcl $7, %edi
 btrl $7, %edi
@@ -166,6 +212,9 @@ btl  $7, (%rax)
 btcl $7, (%rax)
 btrl $7, (%rax)
 btsl $7, (%rax)
+lock btcl $7, (%rax)
+lock btrl $7, (%rax)
+lock btsl $7, (%rax)
 
 btq  %rsi, %rdi
 btcq %rsi, %rdi
@@ -175,6 +224,9 @@ btq  %rsi, (%rax)
 btcq %rsi, (%rax)
 btrq %rsi, (%rax)
 btsq %rsi, (%rax)
+lock btcq %rsi, (%rax)
+lock btrq %rsi, (%rax)
+lock btsq %rsi, (%rax)
 btq  $7, %rdi
 btcq $7, %rdi
 btrq $7, %rdi
@@ -183,6 +235,9 @@ btq  $7, (%rax)
 btcq $7, (%rax)
 btrq $7, (%rax)
 btsq $7, (%rax)
+lock btcq $7, (%rax)
+lock btrq $7, (%rax)
+lock btsq $7, (%rax)
 
 cbw
 cwde
@@ -236,26 +291,34 @@ 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
 
 decb %dil
 decb (%rax)
+lock decb (%rax)
 decw %di
 decw (%rax)
+lock decw (%rax)
 decl %edi
 decl (%rax)
+lock decl (%rax)
 decq %rdi
 decq (%rax)
+lock decq (%rax)
 
 divb %dil
 divb (%rax)
@@ -316,12 +379,16 @@ inl %dx, %eax
 
 incb %dil
 incb (%rax)
+lock incb (%rax)
 incw %di
 incw (%rax)
+lock incw (%rax)
 incl %edi
 incl (%rax)
+lock incl (%rax)
 incq %rdi
 incq (%rax)
+lock incq (%rax)
 
 insb
 insw
@@ -341,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -382,12 +453,16 @@ mulq (%rax)
 
 negb %dil
 negb (%r8)
+lock negb (%r8)
 negw %si
 negw (%r9)
+lock negw (%r9)
 negl %edx
 negl (%rax)
+lock negl (%rax)
 negq %rcx
 negq (%r10)
+lock negq (%r10)
 
 nop
 nopw %di
@@ -399,45 +474,60 @@ nopq (%r9)
 
 notb %dil
 notb (%r8)
+lock notb (%r8)
 notw %si
 notw (%r9)
+lock notw (%r9)
 notl %edx
 notl (%rax)
+lock notl (%rax)
 notq %rcx
 notq (%r10)
+lock notq (%r10)
 
 orb $7, %al
 orb $7, %dil
 orb $7, (%rax)
+lock orb $7, (%rax)
 orb %sil, %dil
 orb %sil, (%rax)
+lock orb %sil, (%rax)
 orb (%rax), %dil
 
 orw $511, %ax
 orw $511, %di
 orw $511, (%rax)
+lock orw $511, (%rax)
 orw $7, %di
 orw $7, (%rax)
+lock orw $7, (%rax)
 orw %si, %di
 orw %si, (%rax)
+lock orw %si, (%rax)
 orw (%rax), %di
 
 orl $665536, %eax
 orl $665536, %edi
 orl $665536, (%rax)
+lock orl $665536, (%rax)
 orl $7, %edi
 orl $7, (%rax)
+lock orl $7, (%rax)
 orl %esi, %edi
 orl %esi, (%rax)
+lock orl %esi, (%rax)
 orl (%rax), %edi
 
 orq $665536, %rax
 orq $665536, %rdi
 orq $665536, (%rax)
+lock orq $665536, (%rax)
 orq $7, %rdi
 orq $7, (%rax)
+lock orq $7, (%rax)
 orq %rsi, %rdi
 orq %rsi, (%rax)
+lock orq %rsi, (%rax)
 orq (%rax), %rdi
 
 outb %al,  $7
@@ -643,47 +733,62 @@ shrq %cl, (%rax)
 sbbb $0, %al
 sbbb $0, %dil
 sbbb $0, (%rax)
+lock sbbb $0, (%rax)
 sbbb $7, %al
 sbbb $7, %dil
 sbbb $7, (%rax)
+lock sbbb $7, (%rax)
 sbbb %sil, %dil
 sbbb %sil, (%rax)
+lock sbbb %sil, (%rax)
 sbbb (%rax), %dil
 
 sbbw $0, %ax
 sbbw $0, %di
 sbbw $0, (%rax)
+lock sbbw $0, (%rax)
 sbbw $511, %ax
 sbbw $511, %di
 sbbw $511, (%rax)
+lock sbbw $511, (%rax)
 sbbw $7, %di
 sbbw $7, (%rax)
+lock sbbw $7, (%rax)
 sbbw %si, %di
 sbbw %si, (%rax)
+lock sbbw %si, (%rax)
 sbbw (%rax), %di
 
 sbbl $0, %eax
 sbbl $0, %edi
 sbbl $0, (%rax)
+lock sbbl $0, (%rax)
 sbbl $665536, %eax
 sbbl $665536, %edi
 sbbl $665536, (%rax)
+lock sbbl $665536, (%rax)
 sbbl $7, %edi
 sbbl $7, (%rax)
+lock sbbl $7, (%rax)
 sbbl %esi, %edi
 sbbl %esi, (%rax)
+lock sbbl %esi, (%rax)
 sbbl (%rax), %edi
 
 sbbq $0, %rax
 sbbq $0, %rdi
 sbbq $0, (%rax)
+lock sbbq $0, (%rax)
 sbbq $665536, %rax
 sbbq $665536, %rdi
 sbbq $665536, (%rax)
+lock sbbq $665536, (%rax)
 sbbq $7, %rdi
 sbbq $7, (%rax)
+lock sbbq $7, (%rax)
 sbbq %rsi, %rdi
 sbbq %rsi, (%rax)
+lock sbbq %rsi, (%rax)
 sbbq (%rax), %rdi
 
 scasb
@@ -762,35 +867,46 @@ stosq
 subb $7, %al
 subb $7, %dil
 subb $7, (%rax)
+lock subb $7, (%rax)
 subb %sil, %dil
 subb %sil, (%rax)
+lock subb %sil, (%rax)
 subb (%rax), %dil
 
 subw $511, %ax
 subw $511, %di
 subw $511, (%rax)
+lock subw $511, (%rax)
 subw $7, %di
 subw $7, (%rax)
+lock subw $7, (%rax)
 subw %si, %di
 subw %si, (%rax)
+lock subw %si, (%rax)
 subw (%rax), %di
 
 subl $665536, %eax
 subl $665536, %edi
 subl $665536, (%rax)
+lock subl $665536, (%rax)
 subl $7, %edi
 subl $7, (%rax)
+lock subl $7, (%rax)
 subl %esi, %edi
 subl %esi, (%rax)
+lock subl %esi, (%rax)
 subl (%rax), %edi
 
 subq $665536, %rax
 subq $665536, %rdi
 subq $665536, (%rax)
+lock subq $665536, (%rax)
 subq $7, %rdi
 subq $7, (%rax)
+lock subq $7, (%rax)
 subq %rsi, %rdi
 subq %rsi, (%rax)
+lock subq %rsi, (%rax)
 subq (%rax), %rdi
 
 testb $7, %al
@@ -829,65 +945,84 @@ wrmsr
 
 xaddb %bl, %cl
 xaddb %bl, (%rcx)
+lock xaddb %bl, (%rcx)
 
 xaddw %bx, %cx
 xaddw %ax, (%rbx)
+lock xaddw %ax, (%rbx)
 
 xaddl %ebx, %ecx
 xaddl %eax, (%rbx)
+lock xaddl %eax, (%rbx)
 
 xaddq %rbx, %rcx
 xaddq %rax, (%rbx)
+lock xaddq %rax, (%rbx)
 
 xchgb %bl, %cl
 xchgb %bl, (%rbx)
+lock xchgb %bl, (%rbx)
 
 xchgw %ax, %bx
 xchgw %bx, %cx
 xchgw %ax, (%rbx)
+lock xchgw %ax, (%rbx)
 
 xchgl %eax, %ebx
 xchgl %ebx, %ecx
 xchgl %eax, (%rbx)
+lock xchgl %eax, (%rbx)
 
 xchgq %rax, %rbx
 xchgq %rbx, %rcx
 xchgq %rax, (%rbx)
+lock xchgq %rax, (%rbx)
 
 xlatb
 
 xorb $7, %al
 xorb $7, %dil
 xorb $7, (%rax)
+lock xorb $7, (%rax)
 xorb %sil, %dil
 xorb %sil, (%rax)
+lock xorb %sil, (%rax)
 xorb (%rax), %dil
 
 xorw $511, %ax
 xorw $511, %di
 xorw $511, (%rax)
+lock xorw $511, (%rax)
 xorw $7, %di
 xorw $7, (%rax)
+lock xorw $7, (%rax)
 xorw %si, %di
 xorw %si, (%rax)
+lock xorw %si, (%rax)
 xorw (%rax), %di
 
 xorl $665536, %eax
 xorl $665536, %edi
 xorl $665536, (%rax)
+lock xorl $665536, (%rax)
 xorl $7, %edi
 xorl $7, (%rax)
+lock xorl $7, (%rax)
 xorl %esi, %edi
 xorl %esi, (%rax)
+lock xorl %esi, (%rax)
 xorl (%rax), %edi
 
 xorq $665536, %rax
 xorq $665536, %rdi
 xorq $665536, (%rax)
+lock xorq $665536, (%rax)
 xorq $7, %rdi
 xorq $7, (%rax)
+lock xorq $7, (%rax)
 xorq %rsi, %rdi
 xorq %rsi, (%rax)
+lock xorq %rsi, (%rax)
 xorq (%rax), %rdi
 
 # CHECK:      Instruction Info:
@@ -902,104 +1037,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        adcb	$0, %al
 # CHECK-NEXT:  1      1     0.25                        adcb	$0, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            adcb	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcb	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        adcb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            adcb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            adcb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   adcb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        adcw	$0, %ax
 # CHECK-NEXT:  1      1     0.25                        adcw	$0, %di
 # CHECK-NEXT:  2      5     0.33    *      *            adcw	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcw	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        adcw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            adcw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            adcw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            adcw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   adcw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        adcl	$0, %eax
 # CHECK-NEXT:  1      1     0.25                        adcl	$0, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            adcl	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcl	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        adcl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            adcl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            adcl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            adcl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   adcl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        adcq	$0, %rax
 # CHECK-NEXT:  1      1     0.25                        adcq	$0, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            adcq	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcq	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        adcq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            adcq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            adcq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            adcq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		adcq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   adcq	(%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        addb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        addb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            addb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            addb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   addb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        addw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            addw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            addw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            addw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   addw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        addl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            addl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            addl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            addl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   addl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        addq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            addq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            addq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            addq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		addq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   addq	(%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        andb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        andb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            andb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            andb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   andb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        andw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            andw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            andw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            andw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   andw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        andl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            andl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            andl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            andl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   andl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        andq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            andq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            andq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            andq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		andq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   andq	(%rax), %rdi
 # CHECK-NEXT:  6      3     3.00                        bsfw	%si, %di
 # CHECK-NEXT:  6      4     4.00                        bsrw	%si, %di
@@ -1023,6 +1195,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcw	%si, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrw	%si, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsw	%si, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcw	%si, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrw	%si, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsw	%si, (%rax)
 # CHECK-NEXT:  1      1     0.25                        btw	$7, %di
 # CHECK-NEXT:  2      2     0.25                        btcw	$7, %di
 # CHECK-NEXT:  2      2     0.25                        btrw	$7, %di
@@ -1031,6 +1206,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcw	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrw	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsw	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcw	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrw	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        btl	%esi, %edi
 # CHECK-NEXT:  2      2     0.25                        btcl	%esi, %edi
 # CHECK-NEXT:  2      2     0.25                        btrl	%esi, %edi
@@ -1039,6 +1217,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcl	%esi, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrl	%esi, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsl	%esi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcl	%esi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrl	%esi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsl	%esi, (%rax)
 # CHECK-NEXT:  1      1     0.25                        btl	$7, %edi
 # CHECK-NEXT:  2      2     0.25                        btcl	$7, %edi
 # CHECK-NEXT:  2      2     0.25                        btrl	$7, %edi
@@ -1047,6 +1228,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcl	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrl	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsl	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcl	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrl	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        btq	%rsi, %rdi
 # CHECK-NEXT:  2      2     0.25                        btcq	%rsi, %rdi
 # CHECK-NEXT:  2      2     0.25                        btrq	%rsi, %rdi
@@ -1055,6 +1239,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcq	%rsi, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrq	%rsi, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsq	%rsi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcq	%rsi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrq	%rsi, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsq	%rsi, (%rax)
 # CHECK-NEXT:  1      1     0.25                        btq	$7, %rdi
 # CHECK-NEXT:  2      2     0.25                        btcq	$7, %rdi
 # CHECK-NEXT:  2      2     0.25                        btrq	$7, %rdi
@@ -1063,6 +1250,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.33    *      *            btcq	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btrq	$7, (%rax)
 # CHECK-NEXT:  2      6     0.33    *      *            btsq	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btcq	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btrq	$7, (%rax)
+# CHECK-NEXT:  2      6     0.33    *      *            lock		btsq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        cbtw
 # CHECK-NEXT:  1      1     0.25                        cwtl
 # CHECK-NEXT:  1      1     0.25                        cltq
@@ -1108,21 +1298,29 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cmpsq	%es:(%rdi), (%rsi)
 # CHECK-NEXT:  1      3     0.25                        cmpxchgb	%cl, %bl
 # CHECK-NEXT:  5      8     0.33    *      *            cmpxchgb	%cl, (%rbx)
+# CHECK-NEXT:  5      8     0.33    *      *            lock		cmpxchgb	%cl, (%rbx)
 # CHECK-NEXT:  1      3     0.25                        cmpxchgw	%cx, %bx
 # CHECK-NEXT:  5      8     0.33    *      *            cmpxchgw	%cx, (%rbx)
+# CHECK-NEXT:  5      8     0.33    *      *            lock		cmpxchgw	%cx, (%rbx)
 # CHECK-NEXT:  1      3     0.25                        cmpxchgl	%ecx, %ebx
 # CHECK-NEXT:  5      8     0.33    *      *            cmpxchgl	%ecx, (%rbx)
+# CHECK-NEXT:  5      8     0.33    *      *            lock		cmpxchgl	%ecx, (%rbx)
 # CHECK-NEXT:  1      3     0.25                        cmpxchgq	%rcx, %rbx
 # CHECK-NEXT:  5      8     0.33    *      *            cmpxchgq	%rcx, (%rbx)
+# CHECK-NEXT:  5      8     0.33    *      *            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.33    *      *            decb	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		decb	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decw	%di
 # CHECK-NEXT:  2      5     0.33    *      *            decw	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		decw	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decl	%edi
 # CHECK-NEXT:  2      5     0.33    *      *            decl	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		decl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decq	%rdi
 # CHECK-NEXT:  2      5     0.33    *      *            decq	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		decq	(%rax)
 # CHECK-NEXT:  1      15    15.00                 U     divb	%dil
 # CHECK-NEXT:  2      19    15.00   *             U     divb	(%rax)
 # CHECK-NEXT:  2      17    17.00                 U     divw	%si
@@ -1174,12 +1372,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     inl	%dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb	%dil
 # CHECK-NEXT:  2      5     0.33    *      *            incb	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		incb	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incw	%di
 # CHECK-NEXT:  2      5     0.33    *      *            incw	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		incw	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incl	%edi
 # CHECK-NEXT:  2      5     0.33    *      *            incl	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		incl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incq	%rdi
 # CHECK-NEXT:  2      5     0.33    *      *            incq	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		incq	(%rax)
 # CHECK-NEXT:  1      100   0.25                  U     insb	%dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     insw	%dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     insl	%dx, %es:(%rdi)
@@ -1192,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  1      100   0.25                  U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  1      100   0.25                  U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     0.50                  U     loop	0
+# CHECK-NEXT:  1      1     0.50                  U     loope	0
+# CHECK-NEXT:  1      1     0.50                  U     loopne	0
 # CHECK-NEXT:  1      100   0.25                  U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25                  U     movsl	(%rsi), %es:(%rdi)
@@ -1228,12 +1433,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      8     1.00    *                   mulq	(%rax)
 # CHECK-NEXT:  1      1     0.25                        negb	%dil
 # CHECK-NEXT:  2      5     0.33    *      *            negb	(%r8)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		negb	(%r8)
 # CHECK-NEXT:  1      1     0.25                        negw	%si
 # CHECK-NEXT:  2      5     0.33    *      *            negw	(%r9)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		negw	(%r9)
 # CHECK-NEXT:  1      1     0.25                        negl	%edx
 # CHECK-NEXT:  2      5     0.33    *      *            negl	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		negl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        negq	%rcx
 # CHECK-NEXT:  2      5     0.33    *      *            negq	(%r10)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		negq	(%r10)
 # CHECK-NEXT:  1      1     0.25                        nop
 # CHECK-NEXT:  1      1     0.25                        nopw	%di
 # CHECK-NEXT:  1      1     0.25                        nopw	(%rcx)
@@ -1243,41 +1452,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq	(%r9)
 # CHECK-NEXT:  1      1     0.25                        notb	%dil
 # CHECK-NEXT:  2      5     0.33    *      *            notb	(%r8)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		notb	(%r8)
 # CHECK-NEXT:  1      1     0.25                        notw	%si
 # CHECK-NEXT:  2      5     0.33    *      *            notw	(%r9)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		notw	(%r9)
 # CHECK-NEXT:  1      1     0.25                        notl	%edx
 # CHECK-NEXT:  2      5     0.33    *      *            notl	(%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		notl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        notq	%rcx
 # CHECK-NEXT:  2      5     0.33    *      *            notq	(%r10)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		notq	(%r10)
 # CHECK-NEXT:  1      1     0.25                        orb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        orb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            orb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            orb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   orb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        orw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            orw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            orw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            orw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   orw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        orl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            orl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            orl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            orl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   orl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        orq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            orq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            orq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            orq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		orq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   orq	(%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     outb	%al, $7
 # CHECK-NEXT:  1      100   0.25                  U     outb	%al, %dx
@@ -1465,44 +1689,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        sbbb	$0, %al
 # CHECK-NEXT:  1      1     0.25                        sbbb	$0, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            sbbb	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbb	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        sbbb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            sbbb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            sbbb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   sbbb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        sbbw	$0, %ax
 # CHECK-NEXT:  1      1     0.25                        sbbw	$0, %di
 # CHECK-NEXT:  2      5     0.33    *      *            sbbw	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbw	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        sbbw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            sbbw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            sbbw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            sbbw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   sbbw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        sbbl	$0, %eax
 # CHECK-NEXT:  1      1     0.25                        sbbl	$0, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbl	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbl	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        sbbl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   sbbl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        sbbq	$0, %rax
 # CHECK-NEXT:  1      1     0.25                        sbbq	$0, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbq	$0, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbq	$0, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        sbbq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            sbbq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		sbbq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   sbbq	(%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     scasb	%es:(%rdi), %al
 # CHECK-NEXT:  1      100   0.25                  U     scasw	%es:(%rdi), %ax
@@ -1573,32 +1812,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        subb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        subb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            subb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            subb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   subb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        subw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            subw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            subw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            subw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   subw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        subl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            subl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            subl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            subl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   subl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        subq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            subq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            subq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            subq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		subq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   subq	(%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        testb	$7, %dil
@@ -1630,53 +1880,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     wrmsr
 # CHECK-NEXT:  1      1     0.25                        xaddb	%bl, %cl
 # CHECK-NEXT:  1      100   0.25    *      *            xaddb	%bl, (%rcx)
+# CHECK-NEXT:  1      100   0.25    *      *            lock		xaddb	%bl, (%rcx)
 # CHECK-NEXT:  1      1     0.25                        xaddw	%bx, %cx
 # CHECK-NEXT:  1      100   0.25    *      *            xaddw	%ax, (%rbx)
+# CHECK-NEXT:  1      100   0.25    *      *            lock		xaddw	%ax, (%rbx)
 # CHECK-NEXT:  1      1     0.25                        xaddl	%ebx, %ecx
 # CHECK-NEXT:  1      100   0.25    *      *            xaddl	%eax, (%rbx)
+# CHECK-NEXT:  1      100   0.25    *      *            lock		xaddl	%eax, (%rbx)
 # CHECK-NEXT:  1      1     0.25                        xaddq	%rbx, %rcx
 # CHECK-NEXT:  1      100   0.25    *      *            xaddq	%rax, (%rbx)
+# CHECK-NEXT:  1      100   0.25    *      *            lock		xaddq	%rax, (%rbx)
 # CHECK-NEXT:  2      1     0.25                        xchgb	%bl, %cl
 # CHECK-NEXT:  2      5     0.33    *      *            xchgb	%bl, (%rbx)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xchgb	%bl, (%rbx)
 # CHECK-NEXT:  2      1     0.25                        xchgw	%bx, %ax
 # CHECK-NEXT:  2      1     0.25                        xchgw	%bx, %cx
 # CHECK-NEXT:  2      5     0.33    *      *            xchgw	%ax, (%rbx)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xchgw	%ax, (%rbx)
 # CHECK-NEXT:  2      1     0.25                        xchgl	%ebx, %eax
 # CHECK-NEXT:  2      1     0.25                        xchgl	%ebx, %ecx
 # CHECK-NEXT:  2      5     0.33    *      *            xchgl	%eax, (%rbx)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xchgl	%eax, (%rbx)
 # CHECK-NEXT:  2      1     0.25                        xchgq	%rbx, %rax
 # CHECK-NEXT:  2      1     0.25                        xchgq	%rbx, %rcx
 # CHECK-NEXT:  2      5     0.33    *      *            xchgq	%rax, (%rbx)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xchgq	%rax, (%rbx)
 # CHECK-NEXT:  1      100   0.25    *                   xlatb
 # CHECK-NEXT:  1      1     0.25                        xorb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb	$7, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            xorb	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb	%sil, %dil
 # CHECK-NEXT:  2      5     0.33    *      *            xorb	%sil, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorb	%sil, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   xorb	(%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        xorw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw	$511, %di
 # CHECK-NEXT:  2      5     0.33    *      *            xorw	$511, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw	$7, %di
 # CHECK-NEXT:  2      5     0.33    *      *            xorw	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw	%si, %di
 # CHECK-NEXT:  2      5     0.33    *      *            xorw	%si, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorw	%si, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   xorw	(%rax), %di
 # CHECK-NEXT:  1      1     0.25                        xorl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl	$665536, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            xorl	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl	$7, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            xorl	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl	%esi, %edi
 # CHECK-NEXT:  2      5     0.33    *      *            xorl	%esi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorl	%esi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   xorl	(%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        xorq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq	$665536, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            xorq	$665536, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq	$7, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            xorq	$7, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq	%rsi, %rdi
 # CHECK-NEXT:  2      5     0.33    *      *            xorq	%rsi, (%rax)
+# CHECK-NEXT:  2      5     0.33    *      *            lock		xorq	%rsi, (%rax)
 # CHECK-NEXT:  2      5     0.33    *                   xorq	(%rax), %rdi
 
 # CHECK:      Resources:
@@ -1696,111 +1965,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]
-# CHECK-NEXT: 116.00 116.00 116.00 195.25 229.25 211.25 195.25 392.00  -      -      -      -     34.00
+# CHECK-NEXT: 158.33 158.33 158.33 228.50 261.00 243.00 228.50 392.00  -      -      -      -     34.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   Instructions:
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$0, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$0, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcb	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$0, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$0, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcw	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$0, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$0, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcl	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$0, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$0, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcq	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		adcq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		addq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		andq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -     bsfw	%si, %di
 # CHECK-NEXT:  -      -      -     4.00   4.00   4.00   4.00    -      -      -      -      -      -     bsrw	%si, %di
@@ -1824,6 +2130,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsw	%si, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btw	$7, %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcw	$7, %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrw	$7, %di
@@ -1832,6 +2141,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcw	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrw	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btl	%esi, %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl	%esi, %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl	%esi, %edi
@@ -1840,6 +2152,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsl	%esi, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btl	$7, %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl	$7, %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl	$7, %edi
@@ -1848,6 +2163,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btq	%rsi, %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq	%rsi, %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq	%rsi, %rdi
@@ -1856,6 +2174,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsq	%rsi, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btq	$7, %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq	$7, %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq	$7, %rdi
@@ -1864,6 +2185,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq	$7, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btcq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btrq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		btsq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cbtw
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cwtl
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     cltq
@@ -1909,21 +2233,29 @@ 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.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgb	%cl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   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.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgw	%cx, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   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.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgl	%ecx, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   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.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     cmpxchgq	%rcx, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   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.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decb	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		decb	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     decw	%di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decw	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		decw	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     decl	%edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decl	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		decl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     decq	%rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decq	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		decq	(%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     15.00   -      -      -      -      -     divb	%dil
 # CHECK-NEXT: 0.33   0.33   0.33    -      -     1.00    -     15.00   -      -      -      -      -     divb	(%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00    -     17.00   -      -      -      -      -     divw	%si
@@ -1975,12 +2307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     inl	%dx, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     incb	%dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incb	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		incb	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     incw	%di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incw	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		incw	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     incl	%edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incl	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		incl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     incq	%rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incq	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		incq	(%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     insb	%dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     insw	%dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     insl	%dx, %es:(%rdi)
@@ -1993,6 +2329,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -     loop	0
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -     loope	0
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -     loopne	0
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     movsl	(%rsi), %es:(%rdi)
@@ -2029,12 +2368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -     1.00   mulq	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     negb	%dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negb	(%r8)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		negb	(%r8)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     negw	%si
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negw	(%r9)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		negw	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     negl	%edx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negl	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		negl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     negq	%rcx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negq	(%r10)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		negq	(%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     nopw	%di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     nopw	(%rcx)
@@ -2044,41 +2387,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     nopq	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     notb	%dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notb	(%r8)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		notb	(%r8)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     notw	%si
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notw	(%r9)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		notw	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     notl	%edx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notl	(%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		notl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     notq	%rcx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notq	(%r10)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		notq	(%r10)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		orq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     outb	%al, $7
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     outb	%al, %dx
@@ -2266,44 +2624,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$0, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$0, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbb	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$0, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$0, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbw	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$0, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$0, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbl	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$0, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$0, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbq	$0, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		sbbq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     scasb	%es:(%rdi), %al
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     scasw	%es:(%rdi), %ax
@@ -2374,32 +2747,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		subq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     testb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     testb	$7, %dil
@@ -2431,51 +2815,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     wrmsr
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xaddb	%bl, %cl
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     xaddb	%bl, (%rcx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lock		xaddb	%bl, (%rcx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xaddw	%bx, %cx
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     xaddw	%ax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lock		xaddw	%ax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xaddl	%ebx, %ecx
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     xaddl	%eax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lock		xaddl	%eax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xaddq	%rbx, %rcx
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     xaddq	%rax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lock		xaddq	%rax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgb	%bl, %cl
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgb	%bl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xchgb	%bl, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgw	%bx, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgw	%bx, %cx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgw	%ax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xchgw	%ax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgl	%ebx, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgl	%ebx, %ecx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgl	%eax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xchgl	%eax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgq	%rbx, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgq	%rbx, %rcx
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgq	%rax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xchgq	%rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     xlatb
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	$7, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	$511, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	$511, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	$7, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	%si, %di
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	%si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw	(%rax), %di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	$665536, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	$7, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	%esi, %edi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	%esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	$665536, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	$665536, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	$7, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	$7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	%rsi, %rdi
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	%rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock		xorq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq	(%rax), %rdi

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
index 9a201b0219784..dca8fcce894c8 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
@@ -4,115 +4,152 @@
 adcb $0, %al
 adcb $0, %dil
 adcb $0, (%rax)
+lock adcb $0, (%rax)
 adcb $7, %al
 adcb $7, %dil
 adcb $7, (%rax)
+lock adcb $7, (%rax)
 adcb %sil, %dil
 adcb %sil, (%rax)
+lock adcb %sil, (%rax)
 adcb (%rax), %dil
 
 adcw $0, %ax
 adcw $0, %di
 adcw $0, (%rax)
+lock adcw $0, (%rax)
 adcw $511, %ax
 adcw $511, %di
 adcw $511, (%rax)
+lock adcw $511, (%rax)
 adcw $7, %di
 adcw $7, (%rax)
+lock adcw $7, (%rax)
 adcw %si, %di
 adcw %si, (%rax)
+lock adcw %si, (%rax)
 adcw (%rax), %di
 
 adcl $0, %eax
 adcl $0, %edi
 adcl $0, (%rax)
+lock adcl $0, (%rax)
 adcl $665536, %eax
 adcl $665536, %edi
 adcl $665536, (%rax)
+lock adcl $665536, (%rax)
 adcl $7, %edi
 adcl $7, (%rax)
+lock adcl $7, (%rax)
 adcl %esi, %edi
 adcl %esi, (%rax)
+lock adcl %esi, (%rax)
 adcl (%rax), %edi
 
 adcq $0, %rax
 adcq $0, %rdi
 adcq $0, (%rax)
+lock adcq $0, (%rax)
 adcq $665536, %rax
 adcq $665536, %rdi
 adcq $665536, (%rax)
+lock adcq $665536, (%rax)
 adcq $7, %rdi
 adcq $7, (%rax)
+lock adcq $7, (%rax)
 adcq %rsi, %rdi
 adcq %rsi, (%rax)
+lock adcq %rsi, (%rax)
 adcq (%rax), %rdi
 
 addb $7, %al
 addb $7, %dil
 addb $7, (%rax)
+lock addb $7, (%rax)
 addb %sil, %dil
 addb %sil, (%rax)
+lock addb %sil, (%rax)
 addb (%rax), %dil
 
 addw $511, %ax
 addw $511, %di
 addw $511, (%rax)
+lock addw $511, (%rax)
 addw $7, %di
 addw $7, (%rax)
+lock addw $7, (%rax)
 addw %si, %di
 addw %si, (%rax)
+lock addw %si, (%rax)
 addw (%rax), %di
 
 addl $665536, %eax
 addl $665536, %edi
 addl $665536, (%rax)
+lock addl $665536, (%rax)
 addl $7, %edi
 addl $7, (%rax)
+lock addl $7, (%rax)
 addl %esi, %edi
 addl %esi, (%rax)
+lock addl %esi, (%rax)
 addl (%rax), %edi
 
 addq $665536, %rax
 addq $665536, %rdi
 addq $665536, (%rax)
+lock addq $665536, (%rax)
 addq $7, %rdi
 addq $7, (%rax)
+lock addq $7, (%rax)
 addq %rsi, %rdi
 addq %rsi, (%rax)
+lock addq %rsi, (%rax)
 addq (%rax), %rdi
 
 andb $7, %al
 andb $7, %dil
 andb $7, (%rax)
+lock andb $7, (%rax)
 andb %sil, %dil
 andb %sil, (%rax)
+lock andb %sil, (%rax)
 andb (%rax), %dil
 
 andw $511, %ax
 andw $511, %di
 andw $511, (%rax)
+lock andw $511, (%rax)
 andw $7, %di
 andw $7, (%rax)
+lock andw $7, (%rax)
 andw %si, %di
 andw %si, (%rax)
+lock andw %si, (%rax)
 andw (%rax), %di
 
 andl $665536, %eax
 andl $665536, %edi
 andl $665536, (%rax)
+lock andl $665536, (%rax)
 andl $7, %edi
 andl $7, (%rax)
+lock andl $7, (%rax)
 andl %esi, %edi
 andl %esi, (%rax)
+lock andl %esi, (%rax)
 andl (%rax), %edi
 
 andq $665536, %rax
 andq $665536, %rdi
 andq $665536, (%rax)
+lock andq $665536, (%rax)
 andq $7, %rdi
 andq $7, (%rax)
+lock andq $7, (%rax)
 andq %rsi, %rdi
 andq %rsi, (%rax)
+lock andq %rsi, (%rax)
 andq (%rax), %rdi
 
 bsfw %si, %di
@@ -141,6 +178,9 @@ btw  %si, (%rax)
 btcw %si, (%rax)
 btrw %si, (%rax)
 btsw %si, (%rax)
+lock btcw %si, (%rax)
+lock btrw %si, (%rax)
+lock btsw %si, (%rax)
 btw  $7, %di
 btcw $7, %di
 btrw $7, %di
@@ -149,6 +189,9 @@ btw  $7, (%rax)
 btcw $7, (%rax)
 btrw $7, (%rax)
 btsw $7, (%rax)
+lock btcw $7, (%rax)
+lock btrw $7, (%rax)
+lock btsw $7, (%rax)
 
 btl  %esi, %edi
 btcl %esi, %edi
@@ -158,6 +201,9 @@ btl  %esi, (%rax)
 btcl %esi, (%rax)
 btrl %esi, (%rax)
 btsl %esi, (%rax)
+lock btcl %esi, (%rax)
+lock btrl %esi, (%rax)
+lock btsl %esi, (%rax)
 btl  $7, %edi
 btcl $7, %edi
 btrl $7, %edi
@@ -166,6 +212,9 @@ btl  $7, (%rax)
 btcl $7, (%rax)
 btrl $7, (%rax)
 btsl $7, (%rax)
+lock btcl $7, (%rax)
+lock btrl $7, (%rax)
+lock btsl $7, (%rax)
 
 btq  %rsi, %rdi
 btcq %rsi, %rdi
@@ -175,6 +224,9 @@ btq  %rsi, (%rax)
 btcq %rsi, (%rax)
 btrq %rsi, (%rax)
 btsq %rsi, (%rax)
+lock btcq %rsi, (%rax)
+lock btrq %rsi, (%rax)
+lock btsq %rsi, (%rax)
 btq  $7, %rdi
 btcq $7, %rdi
 btrq $7, %rdi
@@ -183,6 +235,9 @@ btq  $7, (%rax)
 btcq $7, (%rax)
 btrq $7, (%rax)
 btsq $7, (%rax)
+lock btcq $7, (%rax)
+lock btrq $7, (%rax)
+lock btsq $7, (%rax)
 
 cbw
 cwde
@@ -236,26 +291,34 @@ 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
 
 decb %dil
 decb (%rax)
+lock decb (%rax)
 decw %di
 decw (%rax)
+lock decw (%rax)
 decl %edi
 decl (%rax)
+lock decl (%rax)
 decq %rdi
 decq (%rax)
+lock decq (%rax)
 
 divb %dil
 divb (%rax)
@@ -316,12 +379,16 @@ inl %dx, %eax
 
 incb %dil
 incb (%rax)
+lock incb (%rax)
 incw %di
 incw (%rax)
+lock incw (%rax)
 incl %edi
 incl (%rax)
+lock incl (%rax)
 incq %rdi
 incq (%rax)
+lock incq (%rax)
 
 insb
 insw
@@ -341,6 +408,10 @@ lodsw
 lodsl
 lodsq
 
+loop 0
+loope 0
+loopne 0
+
 movsb
 movsw
 movsl
@@ -382,12 +453,16 @@ mulq (%rax)
 
 negb %dil
 negb (%r8)
+lock negb (%r8)
 negw %si
 negw (%r9)
+lock negw (%r9)
 negl %edx
 negl (%rax)
+lock negl (%rax)
 negq %rcx
 negq (%r10)
+lock negq (%r10)
 
 nop
 nopw %di
@@ -399,45 +474,60 @@ nopq (%r9)
 
 notb %dil
 notb (%r8)
+lock notb (%r8)
 notw %si
 notw (%r9)
+lock notw (%r9)
 notl %edx
 notl (%rax)
+lock notl (%rax)
 notq %rcx
 notq (%r10)
+lock notq (%r10)
 
 orb $7, %al
 orb $7, %dil
 orb $7, (%rax)
+lock orb $7, (%rax)
 orb %sil, %dil
 orb %sil, (%rax)
+lock orb %sil, (%rax)
 orb (%rax), %dil
 
 orw $511, %ax
 orw $511, %di
 orw $511, (%rax)
+lock orw $511, (%rax)
 orw $7, %di
 orw $7, (%rax)
+lock orw $7, (%rax)
 orw %si, %di
 orw %si, (%rax)
+lock orw %si, (%rax)
 orw (%rax), %di
 
 orl $665536, %eax
 orl $665536, %edi
 orl $665536, (%rax)
+lock orl $665536, (%rax)
 orl $7, %edi
 orl $7, (%rax)
+lock orl $7, (%rax)
 orl %esi, %edi
 orl %esi, (%rax)
+lock orl %esi, (%rax)
 orl (%rax), %edi
 
 orq $665536, %rax
 orq $665536, %rdi
 orq $665536, (%rax)
+lock orq $665536, (%rax)
 orq $7, %rdi
 orq $7, (%rax)
+lock orq $7, (%rax)
 orq %rsi, %rdi
 orq %rsi, (%rax)
+lock orq %rsi, (%rax)
 orq (%rax), %rdi
 
 outb %al,  $7
@@ -643,47 +733,62 @@ shrq %cl, (%rax)
 sbbb $0, %al
 sbbb $0, %dil
 sbbb $0, (%rax)
+lock sbbb $0, (%rax)
 sbbb $7, %al
 sbbb $7, %dil
 sbbb $7, (%rax)
+lock sbbb $7, (%rax)
 sbbb %sil, %dil
 sbbb %sil, (%rax)
+lock sbbb %sil, (%rax)
 sbbb (%rax), %dil
 
 sbbw $0, %ax
 sbbw $0, %di
 sbbw $0, (%rax)
+lock sbbw $0, (%rax)
 sbbw $511, %ax
 sbbw $511, %di
 sbbw $511, (%rax)
+lock sbbw $511, (%rax)
 sbbw $7, %di
 sbbw $7, (%rax)
+lock sbbw $7, (%rax)
 sbbw %si, %di
 sbbw %si, (%rax)
+lock sbbw %si, (%rax)
 sbbw (%rax), %di
 
 sbbl $0, %eax
 sbbl $0, %edi
 sbbl $0, (%rax)
+lock sbbl $0, (%rax)
 sbbl $665536, %eax
 sbbl $665536, %edi
 sbbl $665536, (%rax)
+lock sbbl $665536, (%rax)
 sbbl $7, %edi
 sbbl $7, (%rax)
+lock sbbl $7, (%rax)
 sbbl %esi, %edi
 sbbl %esi, (%rax)
+lock sbbl %esi, (%rax)
 sbbl (%rax), %edi
 
 sbbq $0, %rax
 sbbq $0, %rdi
 sbbq $0, (%rax)
+lock sbbq $0, (%rax)
 sbbq $665536, %rax
 sbbq $665536, %rdi
 sbbq $665536, (%rax)
+lock sbbq $665536, (%rax)
 sbbq $7, %rdi
 sbbq $7, (%rax)
+lock sbbq $7, (%rax)
 sbbq %rsi, %rdi
 sbbq %rsi, (%rax)
+lock sbbq %rsi, (%rax)
 sbbq (%rax), %rdi
 
 scasb
@@ -762,35 +867,46 @@ stosq
 subb $7, %al
 subb $7, %dil
 subb $7, (%rax)
+lock subb $7, (%rax)
 subb %sil, %dil
 subb %sil, (%rax)
+lock subb %sil, (%rax)
 subb (%rax), %dil
 
 subw $511, %ax
 subw $511, %di
 subw $511, (%rax)
+lock subw $511, (%rax)
 subw $7, %di
 subw $7, (%rax)
+lock subw $7, (%rax)
 subw %si, %di
 subw %si, (%rax)
+lock subw %si, (%rax)
 subw (%rax), %di
 
 subl $665536, %eax
 subl $665536, %edi
 subl $665536, (%rax)
+lock subl $665536, (%rax)
 subl $7, %edi
 subl $7, (%rax)
+lock subl $7, (%rax)
 subl %esi, %edi
 subl %esi, (%rax)
+lock subl %esi, (%rax)
 subl (%rax), %edi
 
 subq $665536, %rax
 subq $665536, %rdi
 subq $665536, (%rax)
+lock subq $665536, (%rax)
 subq $7, %rdi
 subq $7, (%rax)
+lock subq $7, (%rax)
 subq %rsi, %rdi
 subq %rsi, (%rax)
+lock subq %rsi, (%rax)
 subq (%rax), %rdi
 
 testb $7, %al
@@ -829,65 +945,84 @@ wrmsr
 
 xaddb %bl, %cl
 xaddb %bl, (%rcx)
+lock xaddb %bl, (%rcx)
 
 xaddw %bx, %cx
 xaddw %ax, (%rbx)
+lock xaddw %ax, (%rbx)
 
 xaddl %ebx, %ecx
 xaddl %eax, (%rbx)
+lock xaddl %eax, (%rbx)
 
 xaddq %rbx, %rcx
 xaddq %rax, (%rbx)
+lock xaddq %rax, (%rbx)
 
 xchgb %bl, %cl
 xchgb %bl, (%rbx)
+lock xchgb %bl, (%rbx)
 
 xchgw %ax, %bx
 xchgw %bx, %cx
 xchgw %ax, (%rbx)
+lock xchgw %ax, (%rbx)
 
 xchgl %eax, %ebx
 xchgl %ebx, %ecx
 xchgl %eax, (%rbx)
+lock xchgl %eax, (%rbx)
 
 xchgq %rax, %rbx
 xchgq %rbx, %rcx
 xchgq %rax, (%rbx)
+lock xchgq %rax, (%rbx)
 
 xlatb
 
 xorb $7, %al
 xorb $7, %dil
 xorb $7, (%rax)
+lock xorb $7, (%rax)
 xorb %sil, %dil
 xorb %sil, (%rax)
+lock xorb %sil, (%rax)
 xorb (%rax), %dil
 
 xorw $511, %ax
 xorw $511, %di
 xorw $511, (%rax)
+lock xorw $511, (%rax)
 xorw $7, %di
 xorw $7, (%rax)
+lock xorw $7, (%rax)
 xorw %si, %di
 xorw %si, (%rax)
+lock xorw %si, (%rax)
 xorw (%rax), %di
 
 xorl $665536, %eax
 xorl $665536, %edi
 xorl $665536, (%rax)
+lock xorl $665536, (%rax)
 xorl $7, %edi
 xorl $7, (%rax)
+lock xorl $7, (%rax)
 xorl %esi, %edi
 xorl %esi, (%rax)
+lock xorl %esi, (%rax)
 xorl (%rax), %edi
 
 xorq $665536, %rax
 xorq $665536, %rdi
 xorq $665536, (%rax)
+lock xorq $665536, (%rax)
 xorq $7, %rdi
 xorq $7, (%rax)
+lock xorq $7, (%rax)
 xorq %rsi, %rdi
 xorq %rsi, (%rax)
+lock xorq %rsi, (%rax)
 xorq (%rax), %rdi
 
 # CHECK:      Instruction Info:
@@ -902,104 +1037,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        adcb	$0, %al
 # CHECK-NEXT:  1      1     1.00                        adcb	$0, %dil
 # CHECK-NEXT:  1      6     1.00    *      *            adcb	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcb	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcb	$7, %al
 # CHECK-NEXT:  1      1     1.00                        adcb	$7, %dil
 # CHECK-NEXT:  1      6     1.00    *      *            adcb	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcb	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcb	%sil, %dil
 # CHECK-NEXT:  1      1     1.75    *      *            adcb	%sil, (%rax)
+# CHECK-NEXT:  1      1     1.75    *      *            lock		adcb	%sil, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   adcb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        adcw	$0, %ax
 # CHECK-NEXT:  1      1     1.00                        adcw	$0, %di
 # CHECK-NEXT:  1      6     1.00    *      *            adcw	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcw	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw	$511, %ax
 # CHECK-NEXT:  1      1     1.00                        adcw	$511, %di
 # CHECK-NEXT:  1      6     1.00    *      *            adcw	$511, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcw	$511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw	$7, %di
 # CHECK-NEXT:  1      6     1.00    *      *            adcw	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcw	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw	%si, %di
 # CHECK-NEXT:  1      6     1.00    *      *            adcw	%si, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcw	%si, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   adcw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        adcl	$0, %eax
 # CHECK-NEXT:  1      1     1.00                        adcl	$0, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            adcl	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcl	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl	$665536, %eax
 # CHECK-NEXT:  1      1     1.00                        adcl	$665536, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            adcl	$665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcl	$665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl	$7, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            adcl	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcl	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl	%esi, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            adcl	%esi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcl	%esi, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   adcl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        adcq	$0, %rax
 # CHECK-NEXT:  1      1     1.00                        adcq	$0, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            adcq	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcq	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq	$665536, %rax
 # CHECK-NEXT:  1      1     1.00                        adcq	$665536, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            adcq	$665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcq	$665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq	$7, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            adcq	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcq	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq	%rsi, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            adcq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		adcq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   adcq	(%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        addb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        addb	$7, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            addb	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb	%sil, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            addb	%sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addb	%sil, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   addb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        addw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw	$511, %di
 # CHECK-NEXT:  1      6     0.67    *      *            addw	$511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw	$7, %di
 # CHECK-NEXT:  1      6     0.67    *      *            addw	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw	%si, %di
 # CHECK-NEXT:  1      6     0.67    *      *            addw	%si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addw	%si, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   addw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        addl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl	$665536, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            addl	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl	$7, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            addl	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl	%esi, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            addl	%esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addl	%esi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   addl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        addq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq	$665536, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            addq	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq	$7, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            addq	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq	%rsi, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            addq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		addq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   addq	(%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        andb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        andb	$7, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            andb	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb	%sil, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            andb	%sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andb	%sil, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   andb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        andw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw	$511, %di
 # CHECK-NEXT:  1      6     0.67    *      *            andw	$511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw	$7, %di
 # CHECK-NEXT:  1      6     0.67    *      *            andw	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw	%si, %di
 # CHECK-NEXT:  1      6     0.67    *      *            andw	%si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andw	%si, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   andw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        andl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl	$665536, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            andl	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl	$7, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            andl	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl	%esi, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            andl	%esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andl	%esi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   andl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        andq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq	$665536, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            andq	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq	$7, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            andq	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq	%rsi, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            andq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		andq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   andq	(%rax), %rdi
 # CHECK-NEXT:  6      3     3.00                        bsfw	%si, %di
 # CHECK-NEXT:  6      4     4.00                        bsrw	%si, %di
@@ -1023,6 +1195,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  9      7     0.67    *      *            btcw	%si, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btrw	%si, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btsw	%si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btcw	%si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btrw	%si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btsw	%si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw	$7, %di
 # CHECK-NEXT:  2      2     1.00                        btcw	$7, %di
 # CHECK-NEXT:  2      2     1.00                        btrw	$7, %di
@@ -1031,6 +1206,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     0.67    *      *            btcw	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btrw	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btsw	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btcw	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btrw	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btsw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl	%esi, %edi
 # CHECK-NEXT:  2      2     1.00                        btcl	%esi, %edi
 # CHECK-NEXT:  2      2     1.00                        btrl	%esi, %edi
@@ -1039,6 +1217,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  9      7     0.67    *      *            btcl	%esi, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btrl	%esi, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btsl	%esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btcl	%esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btrl	%esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btsl	%esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl	$7, %edi
 # CHECK-NEXT:  2      2     1.00                        btcl	$7, %edi
 # CHECK-NEXT:  2      2     1.00                        btrl	$7, %edi
@@ -1047,6 +1228,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     0.67    *      *            btcl	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btrl	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btsl	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btcl	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btrl	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btsl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq	%rsi, %rdi
 # CHECK-NEXT:  2      2     1.00                        btcq	%rsi, %rdi
 # CHECK-NEXT:  2      2     1.00                        btrq	%rsi, %rdi
@@ -1055,6 +1239,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  9      7     0.67    *      *            btcq	%rsi, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btrq	%rsi, (%rax)
 # CHECK-NEXT:  9      7     0.67    *      *            btsq	%rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btcq	%rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btrq	%rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock		btsq	%rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq	$7, %rdi
 # CHECK-NEXT:  2      2     1.00                        btcq	$7, %rdi
 # CHECK-NEXT:  2      2     1.00                        btrq	$7, %rdi
@@ -1063,6 +1250,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     0.67    *      *            btcq	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btrq	$7, (%rax)
 # CHECK-NEXT:  4      7     0.67    *      *            btsq	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btcq	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btrq	$7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock		btsq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        cbtw
 # CHECK-NEXT:  1      1     0.25                        cwtl
 # CHECK-NEXT:  1      1     0.25                        cltq
@@ -1108,21 +1298,29 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     cmpsq	%es:(%rdi), (%rsi)
 # CHECK-NEXT:  3      3     3.00                        cmpxchgb	%cl, %bl
 # CHECK-NEXT:  5      7     3.00    *      *            cmpxchgb	%cl, (%rbx)
+# CHECK-NEXT:  5      7     3.00    *      *            lock		cmpxchgb	%cl, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgw	%cx, %bx
 # CHECK-NEXT:  6      3     3.00    *      *            cmpxchgw	%cx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock		cmpxchgw	%cx, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgl	%ecx, %ebx
 # CHECK-NEXT:  6      3     3.00    *      *            cmpxchgl	%ecx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock		cmpxchgl	%ecx, (%rbx)
 # CHECK-NEXT:  5      3     3.00                        cmpxchgq	%rcx, %rbx
 # CHECK-NEXT:  6      3     3.00    *      *            cmpxchgq	%rcx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock		cmpxchgq	%rcx, (%rbx)
 # CHECK-NEXT:  100    100   25.00                 U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb	%dil
 # CHECK-NEXT:  1      6     0.67    *      *            decb	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		decb	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decw	%di
 # CHECK-NEXT:  1      6     0.67    *      *            decw	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		decw	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decl	%edi
 # CHECK-NEXT:  1      6     0.67    *      *            decl	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		decl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        decq	%rdi
 # CHECK-NEXT:  1      6     0.67    *      *            decq	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		decq	(%rax)
 # CHECK-NEXT:  2      10    10.00                 U     divb	%dil
 # CHECK-NEXT:  2      14    10.00   *             U     divb	(%rax)
 # CHECK-NEXT:  2      11    11.00                 U     divw	%si
@@ -1174,12 +1372,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     inl	%dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb	%dil
 # CHECK-NEXT:  1      6     0.67    *      *            incb	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		incb	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incw	%di
 # CHECK-NEXT:  1      6     0.67    *      *            incw	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		incw	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incl	%edi
 # CHECK-NEXT:  1      6     0.67    *      *            incl	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		incl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        incq	%rdi
 # CHECK-NEXT:  1      6     0.67    *      *            incq	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		incq	(%rax)
 # CHECK-NEXT:  100    100   25.00                 U     insb	%dx, %es:(%rdi)
 # CHECK-NEXT:  100    100   25.00                 U     insw	%dx, %es:(%rdi)
 # CHECK-NEXT:  100    100   25.00                 U     insl	%dx, %es:(%rdi)
@@ -1192,6 +1394,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     lodsw	(%rsi), %ax
 # CHECK-NEXT:  100    100   25.00                 U     lodsl	(%rsi), %eax
 # CHECK-NEXT:  100    100   25.00                 U     lodsq	(%rsi), %rax
+# CHECK-NEXT:  1      1     0.50                  U     loop	0
+# CHECK-NEXT:  1      1     0.50                  U     loope	0
+# CHECK-NEXT:  1      1     0.50                  U     loopne	0
 # CHECK-NEXT:  100    100   25.00                 U     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  100    100   25.00                 U     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  100    100   25.00                 U     movsl	(%rsi), %es:(%rdi)
@@ -1228,12 +1433,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      7     3.00    *                   mulq	(%rax)
 # CHECK-NEXT:  1      1     0.25                        negb	%dil
 # CHECK-NEXT:  1      6     0.67    *      *            negb	(%r8)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		negb	(%r8)
 # CHECK-NEXT:  1      1     0.25                        negw	%si
 # CHECK-NEXT:  1      6     0.67    *      *            negw	(%r9)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		negw	(%r9)
 # CHECK-NEXT:  1      1     0.25                        negl	%edx
 # CHECK-NEXT:  1      6     0.67    *      *            negl	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		negl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        negq	%rcx
 # CHECK-NEXT:  1      6     0.67    *      *            negq	(%r10)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		negq	(%r10)
 # CHECK-NEXT:  1      0     0.25                        nop
 # CHECK-NEXT:  1      0     0.25                        nopw	%di
 # CHECK-NEXT:  1      0     0.25                        nopw	(%rcx)
@@ -1243,41 +1452,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      0     0.25                        nopq	(%r9)
 # CHECK-NEXT:  1      1     0.25                        notb	%dil
 # CHECK-NEXT:  1      6     0.67    *      *            notb	(%r8)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		notb	(%r8)
 # CHECK-NEXT:  1      1     0.25                        notw	%si
 # CHECK-NEXT:  1      6     0.67    *      *            notw	(%r9)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		notw	(%r9)
 # CHECK-NEXT:  1      1     0.25                        notl	%edx
 # CHECK-NEXT:  1      6     0.67    *      *            notl	(%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		notl	(%rax)
 # CHECK-NEXT:  1      1     0.25                        notq	%rcx
 # CHECK-NEXT:  1      6     0.67    *      *            notq	(%r10)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		notq	(%r10)
 # CHECK-NEXT:  1      1     1.00                        orb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        orb	$7, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            orb	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb	%sil, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            orb	%sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orb	%sil, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   orb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        orw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw	$511, %di
 # CHECK-NEXT:  1      6     0.67    *      *            orw	$511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw	$7, %di
 # CHECK-NEXT:  1      6     0.67    *      *            orw	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw	%si, %di
 # CHECK-NEXT:  1      6     0.67    *      *            orw	%si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orw	%si, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   orw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        orl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl	$665536, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            orl	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl	$7, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            orl	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl	%esi, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            orl	%esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orl	%esi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   orl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        orq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq	$665536, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            orq	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq	$7, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            orq	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq	%rsi, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            orq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		orq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   orq	(%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     outb	%al, $7
 # CHECK-NEXT:  100    100   25.00                 U     outb	%al, %dx
@@ -1465,44 +1689,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        sbbb	$0, %al
 # CHECK-NEXT:  1      1     1.00                        sbbb	$0, %dil
 # CHECK-NEXT:  1      6     1.00    *      *            sbbb	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbb	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbb	$7, %al
 # CHECK-NEXT:  1      1     1.00                        sbbb	$7, %dil
 # CHECK-NEXT:  1      6     1.00    *      *            sbbb	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbb	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbb	%sil, %dil
 # CHECK-NEXT:  1      1     1.75    *      *            sbbb	%sil, (%rax)
+# CHECK-NEXT:  1      1     1.75    *      *            lock		sbbb	%sil, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   sbbb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        sbbw	$0, %ax
 # CHECK-NEXT:  1      1     1.00                        sbbw	$0, %di
 # CHECK-NEXT:  1      6     1.00    *      *            sbbw	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbw	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw	$511, %ax
 # CHECK-NEXT:  1      1     1.00                        sbbw	$511, %di
 # CHECK-NEXT:  1      6     1.00    *      *            sbbw	$511, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbw	$511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw	$7, %di
 # CHECK-NEXT:  1      6     1.00    *      *            sbbw	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbw	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw	%si, %di
 # CHECK-NEXT:  1      6     1.00    *      *            sbbw	%si, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbw	%si, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   sbbw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        sbbl	$0, %eax
 # CHECK-NEXT:  1      1     1.00                        sbbl	$0, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbl	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbl	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl	$665536, %eax
 # CHECK-NEXT:  1      1     1.00                        sbbl	$665536, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbl	$665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbl	$665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl	$7, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbl	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbl	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl	%esi, %edi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbl	%esi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbl	%esi, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   sbbl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        sbbq	$0, %rax
 # CHECK-NEXT:  1      1     1.00                        sbbq	$0, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbq	$0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbq	$0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq	$665536, %rax
 # CHECK-NEXT:  1      1     1.00                        sbbq	$665536, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbq	$665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbq	$665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq	$7, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbq	$7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbq	$7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq	%rsi, %rdi
 # CHECK-NEXT:  1      6     1.00    *      *            sbbq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock		sbbq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     1.00    *                   sbbq	(%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     scasb	%es:(%rdi), %al
 # CHECK-NEXT:  100    100   25.00                 U     scasw	%es:(%rdi), %ax
@@ -1573,32 +1812,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        subb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        subb	$7, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            subb	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb	%sil, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            subb	%sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subb	%sil, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   subb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        subw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw	$511, %di
 # CHECK-NEXT:  1      6     0.67    *      *            subw	$511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw	$7, %di
 # CHECK-NEXT:  1      6     0.67    *      *            subw	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw	%si, %di
 # CHECK-NEXT:  1      6     0.67    *      *            subw	%si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subw	%si, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   subw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        subl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl	$665536, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            subl	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl	$7, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            subl	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl	%esi, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            subl	%esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subl	%esi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   subl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        subq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq	$665536, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            subq	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq	$7, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            subq	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq	%rsi, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            subq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		subq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   subq	(%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        testb	$7, %dil
@@ -1630,53 +1880,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  100    100   25.00                 U     wrmsr
 # CHECK-NEXT:  2      0     2.00                        xaddb	%bl, %cl
 # CHECK-NEXT:  1      5     0.67    *      *            xaddb	%bl, (%rcx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock		xaddb	%bl, (%rcx)
 # CHECK-NEXT:  2      0     2.00                        xaddw	%bx, %cx
 # CHECK-NEXT:  1      5     0.67    *      *            xaddw	%ax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock		xaddw	%ax, (%rbx)
 # CHECK-NEXT:  2      0     2.00                        xaddl	%ebx, %ecx
 # CHECK-NEXT:  1      5     0.67    *      *            xaddl	%eax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock		xaddl	%eax, (%rbx)
 # CHECK-NEXT:  2      0     2.00                        xaddq	%rbx, %rcx
 # CHECK-NEXT:  1      5     0.67    *      *            xaddq	%rax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock		xaddq	%rax, (%rbx)
 # CHECK-NEXT:  2      1     0.50                        xchgb	%bl, %cl
 # CHECK-NEXT:  5      7     0.50    *      *            xchgb	%bl, (%rbx)
+# CHECK-NEXT:  5      7     0.50    *      *            lock		xchgb	%bl, (%rbx)
 # CHECK-NEXT:  2      1     0.50                        xchgw	%bx, %ax
 # CHECK-NEXT:  2      1     0.50                        xchgw	%bx, %cx
 # CHECK-NEXT:  5      7     0.50    *      *            xchgw	%ax, (%rbx)
+# CHECK-NEXT:  5      7     0.50    *      *            lock		xchgw	%ax, (%rbx)
 # CHECK-NEXT:  2      0     0.33                        xchgl	%ebx, %eax
 # CHECK-NEXT:  2      0     0.33                        xchgl	%ebx, %ecx
 # CHECK-NEXT:  2      6     0.50    *      *            xchgl	%eax, (%rbx)
+# CHECK-NEXT:  2      6     0.50    *      *            lock		xchgl	%eax, (%rbx)
 # CHECK-NEXT:  2      0     0.33                        xchgq	%rbx, %rax
 # CHECK-NEXT:  2      0     0.33                        xchgq	%rbx, %rcx
 # CHECK-NEXT:  2      6     0.50    *      *            xchgq	%rax, (%rbx)
+# CHECK-NEXT:  2      6     0.50    *      *            lock		xchgq	%rax, (%rbx)
 # CHECK-NEXT:  1      5     0.33    *                   xlatb
 # CHECK-NEXT:  1      1     1.00                        xorb	$7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb	$7, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            xorb	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorb	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb	%sil, %dil
 # CHECK-NEXT:  1      6     0.67    *      *            xorb	%sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorb	%sil, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   xorb	(%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        xorw	$511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw	$511, %di
 # CHECK-NEXT:  1      6     0.67    *      *            xorw	$511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorw	$511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw	$7, %di
 # CHECK-NEXT:  1      6     0.67    *      *            xorw	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw	%si, %di
 # CHECK-NEXT:  1      6     0.67    *      *            xorw	%si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorw	%si, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   xorw	(%rax), %di
 # CHECK-NEXT:  1      1     1.00                        xorl	$665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl	$665536, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            xorl	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorl	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl	$7, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            xorl	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl	%esi, %edi
 # CHECK-NEXT:  1      6     0.67    *      *            xorl	%esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorl	%esi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   xorl	(%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        xorq	$665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq	$665536, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            xorq	$665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorq	$665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq	$7, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            xorq	$7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq	%rsi, %rdi
 # CHECK-NEXT:  1      6     0.67    *      *            xorq	%rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock		xorq	%rsi, (%rax)
 # CHECK-NEXT:  1      5     0.33    *                   xorq	(%rax), %rdi
 
 # CHECK:      Resources:
@@ -1706,111 +1975,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
-# CHECK-NEXT: 176.00 176.00 176.00 1667.25 1822.25 1702.25 1465.25  -   -     -      -      -      -      -      -     175.33 175.33 175.33 109.00 109.00 109.00 99.50  99.50
+# CHECK-NEXT: 259.00 259.00 259.00 1733.00 1895.50 1775.50 1529.50 1.50  -    -      -      -      -      -      -     259.00 259.00 259.00 151.67 151.67 151.67 161.00 161.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb	$0, %al
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb	$0, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcb	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb	$7, %al
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	$0, %ax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	$0, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcw	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	$511, %ax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	$0, %eax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	$0, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcl	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	$665536, %eax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	$0, %rax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	$0, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcq	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	$665536, %rax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		adcq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb	%sil, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addb	%sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		addq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb	%sil, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andb	%sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		andq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsfw	%si, %di
 # CHECK-NEXT:  -      -      -      -     4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsrw	%si, %di
@@ -1834,6 +2140,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcw	%si, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrw	%si, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsw	%si, (%rax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btw	$7, %di
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcw	$7, %di
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrw	$7, %di
@@ -1842,6 +2151,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcw	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrw	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsw	$7, (%rax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl	%esi, %edi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl	%esi, %edi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl	%esi, %edi
@@ -1850,6 +2162,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcl	%esi, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrl	%esi, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsl	%esi, (%rax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl	$7, %edi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl	$7, %edi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl	$7, %edi
@@ -1858,6 +2173,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcl	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrl	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsl	$7, (%rax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq	%rsi, %rdi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq	%rsi, %rdi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq	%rsi, %rdi
@@ -1866,6 +2184,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcq	%rsi, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrq	%rsi, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsq	%rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq	$7, %rdi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq	$7, %rdi
 # CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq	$7, %rdi
@@ -1874,6 +2195,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcq	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrq	$7, (%rax)
 # CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btcq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btrq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		btsq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cbtw
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cwtl
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cltq
@@ -1919,21 +2243,29 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsq	%es:(%rdi), (%rsi)
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb	%cl, %bl
 # CHECK-NEXT: 0.33   0.33   0.33   3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpxchgb	%cl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock		cmpxchgb	%cl, (%rbx)
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw	%cx, %bx
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw	%cx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock		cmpxchgw	%cx, (%rbx)
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl	%ecx, %ebx
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl	%ecx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock		cmpxchgl	%ecx, (%rbx)
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq	%rcx, %rbx
 # CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq	%rcx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock		cmpxchgq	%rcx, (%rbx)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decb	%dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decb	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		decb	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decw	%di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decw	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		decw	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decl	%edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decl	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		decl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decq	%rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decq	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		decq	(%rax)
 # CHECK-NEXT:  -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divb	%dil
 # CHECK-NEXT: 0.33   0.33   0.33   10.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divb	(%rax)
 # CHECK-NEXT:  -      -      -     11.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divw	%si
@@ -1985,12 +2317,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inl	%dx, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incb	%dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incb	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		incb	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incw	%di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incw	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		incw	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incl	%edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incl	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		incl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incq	%rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incq	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		incq	(%rax)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insb	%dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insw	%dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insl	%dx, %es:(%rdi)
@@ -2003,6 +2339,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsw	(%rsi), %ax
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsl	(%rsi), %eax
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsq	(%rsi), %rax
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loop	0
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loope	0
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loopne	0
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsb	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsw	(%rsi), %es:(%rdi)
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsl	(%rsi), %es:(%rdi)
@@ -2039,12 +2378,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulq	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negb	%dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negb	(%r8)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		negb	(%r8)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negw	%si
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negw	(%r9)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		negw	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negl	%edx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negl	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		negl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negq	%rcx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negq	(%r10)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		negq	(%r10)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw	%di
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw	(%rcx)
@@ -2054,41 +2397,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopq	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notb	%dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notb	(%r8)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		notb	(%r8)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notw	%si
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notw	(%r9)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		notw	(%r9)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notl	%edx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notl	(%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		notl	(%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notq	%rcx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notq	(%r10)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		notq	(%r10)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb	%sil, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orb	%sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		orq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb	%al, $7
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb	%al, %dx
@@ -2276,44 +2634,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb	$0, %al
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb	$0, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbb	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb	$7, %al
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb	%sil, %dil
 # CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb	%sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	$0, %ax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	$0, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbw	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	$511, %ax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	$0, %eax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	$0, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbl	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	$665536, %eax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	$0, %rax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	$0, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq	$0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbq	$0, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	$665536, %rax
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		sbbq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasb	%es:(%rdi), %al
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasw	%es:(%rdi), %ax
@@ -2384,32 +2757,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb	%sil, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subb	%sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		subq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subq	(%rax), %rdi
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb	$7, %dil
@@ -2441,51 +2825,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrmsr
 # CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddb	%bl, %cl
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddb	%bl, (%rcx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xaddb	%bl, (%rcx)
 # CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddw	%bx, %cx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddw	%ax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xaddw	%ax, (%rbx)
 # CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddl	%ebx, %ecx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddl	%eax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xaddl	%eax, (%rbx)
 # CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddq	%rbx, %rcx
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddq	%rax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xaddq	%rax, (%rbx)
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgb	%bl, %cl
 # CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgb	%bl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock		xchgb	%bl, (%rbx)
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw	%bx, %ax
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw	%bx, %cx
 # CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgw	%ax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock		xchgw	%ax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl	%ebx, %eax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl	%ebx, %ecx
 # CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgl	%eax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock		xchgl	%eax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq	%rbx, %rax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq	%rbx, %rcx
 # CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgq	%rax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock		xchgq	%rax, (%rbx)
 # CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xlatb
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb	$7, %al
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb	$7, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorb	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorb	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb	%sil, %dil
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorb	%sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorb	%sil, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorb	(%rax), %dil
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw	$511, %ax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw	$511, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw	$511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorw	$511, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw	$7, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorw	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw	%si, %di
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw	%si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorw	%si, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorw	(%rax), %di
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl	$665536, %eax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl	$665536, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorl	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl	$7, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorl	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl	%esi, %edi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl	%esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorl	%esi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorl	(%rax), %edi
 # CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq	$665536, %rax
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq	$665536, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq	$665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorq	$665536, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq	$7, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq	$7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorq	$7, (%rax)
 # CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq	%rsi, %rdi
 # CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq	%rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock		xorq	%rsi, (%rax)
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorq	(%rax), %rdi


        


More information about the llvm-commits mailing list